本篇博客介绍了在使用Parrot-Sphinx进行Bebop 2的飞行仿真时,如何实时读取飞行信息。关于Parrot-Sphinx的安装和初步使用,参考:ROS + Parrot-Sphinx进行Bebop无人机仿真。
测试环境:
- Ubuntu 18.04
- ROS Melodic
使用步骤:
-
启动firmwared服务
打开一个终端,输入:$ sudo systemctl start firmwared.service
并检查是否启动成功:
$ fdc ping
若启动成功,将会得到PONG的响应。
-
运行Sphinx
打开一个终端,运行sphinx,如:$ cd ~/ROS/hai_ws/src/bebop2_toolbox/bebop2_sphinx/ $ ls $ sphinx --datalog ./worlds/empty.world ./drones/bebop2_eth0.drone
注意:为了使sphinx在运行时提供实时的数据记录,需要添加–datalog的选项,即:
$ sphinx --datalog my.world my.drone
上面执行的命令中,.world文件用的是sphinx默认的一个empty.world,而.drone文件进行了一些修改:
<?xml version="1.0" encoding="UTF-8"?> <drone name="Bebop1" firmware="/home/hai/ROS/hai_ws/src/bebop2_toolbox/bebop2_sphinx/firmware/ardrone3-milos_pc.ext2_latest.zip" hardware="milosboard"> <machine_params low_gpu="false" with_front_cam="false" with_hd_battery="false" with_flir="false" flir_pos="tilted"/> <pose>1 0 0.2 0 0 0</pose> <interface>eth1</interface> <!-- 'wlan0' may need to be replaced the actual wifi interface name --> <stolen_interface>eth0:eth0:192.168.42.1/24</stolen_interface> </drone>
注意其中的name定义了运行该文件后在gazebo中生成的无人机的名称。
-
查看无人机的飞行数据
打开一个终端,查