TELLO & rotors_simulator的仿真(ACURO目标跟随)
功能包说明
名称 | 功能 | 所含文件 |
---|---|---|
common | 包含公用的头文件 包含公用的消息(msg) |
include msgs |
drone_control | 用于rotors_simulator中仿真模型的控制 | |
drone_ground_station | 显示rotors_simulator仿真时的一些状态 | |
drone_simulator | 用于rotors_simulator中仿真模型的控制 | |
tello_contorl | TELLO的控制 | |
readme_image | 一些效果图片,某些会 |
本 ROS 包建立在非官方的TelloPy库之上。此时使用TelloPy库是因为它提供了比官方[Tello SDK](https://dl-cdn.ryzerobotics.com/downloads/Tello/Tello SDK 2.0 User Guide.pdf)或任何其他非官方库更多的功能。tellopy库的ROS封装使用Tello_driver 这个ROS包。这个 ROS 包的开发追求不修改 TelloPy 库,而是以封装的方式对 ros_driver 包进行任何修改或添加。这可以防止在更新 TelloPy 库时破坏功能。该包的详细介绍可在tello_driver的ROS页面
为了更好的适应控制,在原节点tello_driver_node基础上修改了控制部分的指令,自封装的节点名称为:
tello_cmd_node
修改内容如下:
tello_driver_node | tello_cmd_node |
---|---|
self.set_pitch | self.backward self.forward |
self.set_roll | self.right self.left |
self.set_throttle | self.down self.up |
改动原因:
本ROS功能包的算法、框架是基于promethues项目进行移植,由于TELLO与PX4/pixhawk有较大差别(体现在控制逻辑、数据回传),以及订阅的相机话题来源于TELLO的相机数据,而promethues的相机话题来源与机载计算机。因此主要修改节点为
a. sender(发送),estimator(位置、速度、姿态估计)
b. terminal(交互终端)
目前移植实现如下功能(按照launch文件说明):
序号 | 名称 | 功能 |
---|---|---|
1 | tello_estimator | 测试tello是否能够连接,查看相机是否正常 |
2 | tello_sender | 利用terminal交互节点,控制tello飞行(非指点飞行) |
3 | aruco_det_single web_cam0 |
利用usb相机测试aruco码的识别,本人使用奥比中光pro测试 |
4 | tello_track_test | tello的二维码跟踪测试 |
前置条件:
详细安装过程:https://github.com/hanyazou/TelloPy
建议源代码安装
$ git clone https://github.com/hanyazou/TelloPy
$ cd TelloPy
$ python setup.py bdist_wheel
$ pip install dist/tellopy-*.dev*.whl --upgrade
测试起飞:
这个例子让 Tello 起飞。Tello 将在几秒钟后自动着陆。
$ python -m tellopy.examples.simple_takeoff
测试视频显示:
$ pip install av
$ pip install image
$ python -m tellopy.examples.video_effect
【注意1】原安装过程中需要安装opencv,但ROS通常存在opencv版本,若opencv不可用,请按照ros的opencv安装方式进行配置
【注意2】在 Ubuntu 16.04 上安装 PyAV 需要至少版本 3 的 ffmpeg:
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-3`
`$ sudo apt update && sudo apt install ffmpeg
【注意3】pyav最新版可能无法安装,本人使用的是6.0,0
【注意1】该ROS包只有ros kinetic的二进制文件,而且需要加入修改节点,所以需要编译安装
$ cd {你的工作空间名}/src
$ git clone --recursive https://github.com/appie-17/tello_driver.git
$ cd ..
$ catkin_make
$ source devel/setup.bash
如果不想每次运行都运行source,可以修改.bashrc,在最后一行
source /home/{你的用户名}/{你的工作空间名}/devel/setup.bash
测试:
TELLO_XXXXXX)
$ roslaunch tello_driver tello_node.launch
此时可以使用rostopic pub向/tello/takeoff和/tello/land发送指令(按tab补全即可),TELLO可以起飞或者降落
将tello_cmd_node.py放到与tello_driver_node所在的文件夹即可
/homee/{你的用户名}/{你的工作空间名}/src/tello_driver/nodes
修改.bashrc,在最后一行加入
source /{你的用户名}/{你的工作空间名}/tello_fly/devel/setup.bash
下载项目:
git clone https://gitee.com/lanlanlanbenben/tello_fly.git
进入项目目录:
cd tello_fly
进行编译:
./compile_all.sh
运行各launch即可
目前只录制了Aruco跟随的视频,所以先说明该功能
【注意】无论是什么功能,都需要下面这两步(除了使用aruco_det_single,web_cam0两个launch文件 )
TELLO_XXXXXX)
【准备物体】:
启动功能节点:
roslaunch tello_control tello_track_test.launch
此时会额外弹出一个新的终端窗口
首先输入0,然后先输入1命令tello起飞,在输入6进入Aruco跟随模式
启动几个终端:
rostopic echo /tello/object_detection/aruco_det
动态效果图(如果不能显示,可查看 readme_image文件夹,后续增加功能后使用子文件夹进行细分)
promethues开源项目组
amov-lab阿木实验室
Tello_driverROS功能包开发者
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。