之前写过一篇安装Crazyflie 2.0的博文,之后一直忘了补上关于实际实验的内容。

关于Crazyflie2.0的详细介绍,有个博主讲的很详细http://blog.sina.com.cn/s/articlelist_1076627230_0_1.html。

在安装完相关的功能包,以及设置好权限之后,我们便可以开始实验了。

1.搜索与控制

插上Crazyradio PA与遥控器之后,我们通过

rosrun crazyflie_tools scan 

来搜寻可用的无人机。

Crazyflie 2.0初探

通过遥控手柄建立连接

roslaunch crazyflie_demo teleop_xbox360.launch uri:=radio://0/80/250K/E7E7E7E701

最后的10位为编号

2.分组和编号

在运行多个无人机时,势必要对不同无人机进行编号。那么如何对无人机进行编号呢

首先需要安装Bitcraze Crazyflie PC Client,Bitcraze SDK包含两个部分,一个是不支持用户图形界面

(crazyflie-lib-python),另一个支持(crazyflie-client-python)。

安装依赖项

$ sudo apt-get install git python3 python3-pip python3-pyqt4 python3-numpy python3-zmq
$ sudo pip3 install pyusb==1.0.0b2
$ sudo pip3 install pyqtgraph appdirs

安装crazyflie-lib-python

$ mkdir ~/crazyflie
$ cd ~/crazyflie
$ git clone https://github.com/bitcraze/crazyflie-lib-python.git
$ cd crazyflie-lib-python
$ pip3 install --user -e .(这个点一定不要忘了)

安装crazyflie-client-python

$ cd ~/crazyflie
$ git clone https://github.com/bitcraze/crazyflie-clients-python.git
$ cd crazyflie-clients-python
$ pip3 install --user -e .

运行

$ cd ~/crazyflie/crazyflie-clients-python
$ python3 bin/cfclient

Crazyflie 2.0初探

先修改Address为当前无人机(默认为E7E7E7E7E7),连接上后在菜单栏选择Connect--Configure 2.0,修改地址并写入,确认后断开重连即可。

3.Rviz

除了刚才的SDK之外,还可以利用Rviz来观测无人机的运动情况

先使能数据发送

<arg name="enable_logging" value="True" />

选择要广播的话题,如

<node pkg="rqt_plot" type="rqt_plot" name="rqt_plot2" args="/crazyflie/battery"/>

Crazyflie 2.0初探

箭头会随着无人机的姿态改变而改变,另外可以在rqt图中看到电量的变化情况。

4.与OptiTrack通信

通信主要通过两种方式,首先都需要安装vrpn

git clone https://github.com/clearpathrobotics/vrpn_client_ros.git
sudo apt-get install ros-indigo-vrpn

利用单台通过虚拟机需配置网络

http://blog.csdn.net/banzhuan133/article/details/77887599

利用两台笔记本则只需连接到同一个网络即可

下载并安装OptiTrack Motive,完成标定

http://blog.csdn.net/banzhuan133/article/details/77938083

对Motive的使用有以下几个注意点

Crazyflie 2.0初探

Crazyflie 2.0初探

对同一个无人机刚体,名称应与代码中的一致。

Crazyflie 2.0初探

网络接口的选择,应与ROS所连接网络位于一个子网内。


Crazyflie 2.0初探

应注意所标定的上方位时Z还是Y,最好利用实际无人机验证一下。

记得勾选Broadcast,端口选择应与代码内保持一致。


这样,就可以愉快地利用OptiTrack来确定位置信息,完成各种复杂的Crazyflie Demo了。

相关文章: