Skip to main content

(一)虚拟机配置

一、 Nokov-vm虚拟机介绍

(一)简介

Nokov-vm虚拟机镜像是针对nokovflie无人机专属定制的虚拟机镜像文件,同时可兼容crazyflie无人机,虚拟机包含了nokovflie无人机的软硬件开发部署环境,集成了Ros平台以及crazyswarm平台,支持快速接入nokov光学动捕定位系统实现室内集群控制算法验证。

(二)镜像文件下载(推荐方式)

Nokov-vm虚拟机镜像文件采用的使用开放虚拟机格式ova存储,可支持市面上主流的虚拟机,包括VMware,VirtualBox等。

公开的镜像文件位于开源代码仓库的Release版本下:nokov-vm.ova

链接:https://share.weiyun.com/WLUKpGVE 密码:zm67f3

(三)定制镜像文件(高阶)

Nokov-vm虚拟机基于脚本创建,支持用户通过修改脚本的方式在此基础上定制增加软件包等功能,关于虚拟机镜像的生成可参考 如何创建Nokov VM image。

(四)公开代码仓库

https://github.com/NOKOV-MOCAP/nokov-vm

二、 虚拟机的使用

(一) VMWare WorkStation

使用vmware workerstation pro16正确配置并使用nokov-vm虚拟机。

  1. 导入虚拟机

1) 菜单栏点击文件->打开,勾选所有支持的文件并选中目标镜像文件,如下

2)根据需要设置虚拟机名称与存储路径,此处采用默认设置,点击导入如下

3)若弹出导入失败,点击重试

4)导入成功后打开虚拟机,启动后界面显示如下

5)方便外部复制粘贴以及全屏显示,安装VMWareTools,首先右键虚拟机设置,添加CD/DVD驱动器, 然后设置使用ISO镜像,选择vmware安装路径下的linux.iso, 并勾选启动时连接

6)点击桌面上的光盘图标,拷贝VMwareTools*.tar.gz到桌面上,在桌面上打开终端,即右键OpenTerminalHere, 输入tar -zxvf VMwareTools*.tar(其中*指代具体的文件名称),然后进入到解压好的目录之中,运行vmware-install.pl脚本,输入yes后全程默认回车即可,安装完成后界面会全屏显示,整个过程操作命令如下:

  1. 代码仓库

打开桌面上的projects快捷方式,里面包含无人机软硬件相关的源码工程

点击桌面上的Update all projcets图标,系统会自动更新projects下的仓库代码,可根据需要选择是否更新,建议使用科学上网

(二) Oracle VM VirtualBox

使用Oracle VM VirtualBox6.1正确配置并使用nokov-vm虚拟机

  1. 导入虚拟机

1) 菜单栏点击管理->导入虚拟电脑,设置来源为本地文件系统,选择要导入的虚拟机文件后,选择下一步

2) 核对虚拟电脑导入设置,设置默认虚拟电脑位置,其他配置参数保持默认即可,内存默认大小6GB,可根据主机情况适当调整,配置完成后,单击导入选项进行虚拟机的导入,等待导入操作完成

3) 可根据需要自行安装VirtualBox Extension PackVBox Guest Addistions

  1. 代码仓库

使用上同VMWare

三、 软件工具的使用

(一) cfclient

  1. 连接Radio PA

插入Radio PA USB设备,弹框提示如下,如下图所示,或选中菜单栏虚拟机->可移动设备->PA USB Dongle-> 连接,只有正确识别到PA设备后,cfclient工具才能正常工作

  1. 连接无人机

1) 使用usb数据线连接无人机:在初始使用,无人机通讯地址未知的情况下,可使用usb线连接无人机,并连接到虚拟机,并在cfClient界面中,点击Scan按钮,此时工具可识别出无人机设备

2) 单击Connect按钮,待无人机连接成功后,可观察到无人机面板上的位姿数值变化,以及无人机当前剩余电池电量等各种信息。点击菜单栏Connect-> Configure2.x,可在配置对话框观察到当前无人配置的通讯地址为0xE7E7E7E706,记录下此地址,后续便可直接使用Radio无线通讯连接无人机。同样,此处可以直接进行配置修改功通讯地址,修改对话框中的数值,点击Write写入后重启即生效

3) 使用无线连接无人机:在无人机通讯地址已知的情况下,在CfClient工具中,设置无人机通讯地址,例如此处的0xE7E7E7E706,在无人机正常运行的状态下,点击Scan,可检测到目标无人机,选中接口并点击connet按钮进行连接

  1. 固件在线升级

1) 在通过Radio PA成功连接上无人机且电量充足的情况下,可通过客户端工具进行在线固件升级,点击菜单栏Connect-> Bootloader,进入到固件更新界面,此时显示状态为在固件模式下连接,拉取下拉框,选择最新的更新包(带有cf2字样的),点击Program,等待固件下载与自动安装,安装过程中不要断开,完成好无人机会自动重启

4 其他功能

关于cfclient工具的其他功能使用,可参阅使用《说明文档》

四、 CrazySwarm平台的使用

(一)简介

Crazyswarm是一个适用于多架微型无人机(集群)紧密飞行控制平台,平台支持多种不同的定位系统,尤其对光学动捕定位系统作出优化,支持主流的动捕系统。

(二)工程介绍

Crazyswarm工程位于projects目录下,建议使用VSCode编辑器打开

Crazyswarm工程中有几个重要的文件目录与配置文件,下面进行逐一介绍

ros_ws目录:此目录是Ros的工作空间,基于catkin创建,对平台源码的编译以及运行均在此目录下完成

externalDependencies目录:此目录下存放的是外部动捕依赖相关的库,支持nokov光学定位动捕数据接入crazyswarm平台

Src目录:crazyswarm平台的源码目录,维护管理无人机群的通信控制

Launch目录:包含定义好的launch文件以及必要的关键配置文件

Hover_swarm.launch文件:负责建立无人机群与平台的通信连接,然后等待外部下达控制指令

Mocap_helper.launch: 专用于测试外部动捕系统工作是否正常,能否正确接收到动捕数据,包括未命名点以及刚体数据,以及直观观察检验数据

CrazyflieTypes.yaml: 用于配置无人机的类型以及各种固件参数

Crazyflies.yaml: 用于配置文件无人机的通讯连接地址以及初始位置等信息

(三)测试验证动捕定位系统

在无人机飞行前,除了完成必要的飞行检查外,还需要测试验证动捕定位系统的数据是否正常接入,下面演示测试过程,首先正确配置网络环境。

  1. NAT模式连接

1) VMWare菜单栏编辑->虚拟网络编辑器,查看NAT网段

2) 设置动捕软件中的广播网卡地址为主机虚拟适配器地址(同在此网段,可通过命令行查看IP),并勾选SDK Enable复选框

3) 设置修改mocap_helper.launch文件中的motion_capture_host_name参数,改为上述地址后,保存,运行roslaunch crazyswarm mocap_helper.launch命令如下,可正常接收到动捕数据

  1. 桥接模式连接

1) 虚拟机设置,添加网络适配器,选择桥接模式(自动)

2) 打开编辑->虚拟网路编辑器,检测桥接设置,默认自动桥接所有,可根据需要仅桥接到特定目标网卡

3) 点击桌面左上角,搜索ad,打开第一个推荐选项,高级网络配置器,选中新出现的wired connection1,双击进入比编辑状态, 选择目标新增加的Device

4) 点手动配置IP地址与动捕广播网卡接口同网段,下面配置为192.168.1.13,动捕广播网卡接口更换到192.168.1.12,点击保存,重启虚拟机后,查看网卡,地址生效

5) 配置mocap_helper.launch文件接口参数动捕广播网卡接口为192.168.1.12,运行roslaunch命令,输出如下

(四)无人机飞行控制

完成必要的飞行检查后,以及动捕系统定位的数据接入测试,接下来就可以在crazyswarm平台下,通过python脚本来控制单/多无人机飞行,以完成指定的编队动作或复杂的算法验证工作

CrazySwarm在动捕定位系统下,支持集中不同的对象追踪模式,分别是:

1)独一无二的点排列

2)重复点排列

3)单点,关于不同追踪模式以及飞行前的参数设置,可参考官方文档描述:《无人机飞行配置》 ,下面以简单的飞行试验为例讲解具体的操作过程

  1. 原地起飞升降

原地起飞升降实验是最基础的室内飞行测试实验,启动后,无人机将在固定放置点,完成(起飞->指定高度悬停-> 降落)等几个步骤,可快速测试在实验环境下单机/多机的稳定性,为后续实验做铺垫。

本次实验采用重复点排列的方式,具体的实验步骤可参考Nokov官方系列文档《悬停实验》

五、 友情提示

  1. Nokovflie系列无人机可与Crazyflie 2.X系列无人机混搭使用,均适用于此虚拟机
  2. 推荐使用VMWare虚拟机环境,在外部设备的连接上相较于VirtualBox会稳定一些
  3. 虚拟机使用过程中的问题可查看或反馈到公开仓库的Issues板块
  4. 虚拟机的用户名为:nokov 密码:nokovflie