之前写过一篇安装Crazyflie 2.0的博文,之后一直忘了补上关于实际实验的内容。
关于Crazyflie2.0的详细介绍,有个博主讲的很详细http://blog.sina.com.cn/s/articlelist_1076627230_0_1.html。
在安装完相关的功能包,以及设置好权限之后,我们便可以开始实验了。
1.搜索与控制
插上Crazyradio PA与遥控器之后,我们通过
rosrun crazyflie_tools scan
来搜寻可用的无人机。
通过遥控手柄建立连接
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
先修改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"/>
箭头会随着无人机的姿态改变而改变,另外可以在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的使用有以下几个注意点
对同一个无人机刚体,名称应与代码中的一致。
网络接口的选择,应与ROS所连接网络位于一个子网内。
应注意所标定的上方位时Z还是Y,最好利用实际无人机验证一下。
记得勾选Broadcast,端口选择应与代码内保持一致。
这样,就可以愉快地利用OptiTrack来确定位置信息,完成各种复杂的Crazyflie Demo了。