项目简介
本项目是清华大学无人机赛课初赛提供的最小控制demo,代码改版自Tello官方SDK。通过ROS实现对Tello无人机的控制,能接收无人机的状态和图像信息,还具备识别定位毯并飞到其中心位置的功能。
项目的主要特性和功能
- 利用ROS话题通信对Tello无人机进行控制。
- 发布
/tello_state
和/tello_image
话题,便于获取无人机状态和图像信息。 - 提供最小控制程序,可识别1号定位毯并飞到其中心位置。
- 支持订阅
/command
话题的消息,用于快速调试。
安装使用步骤
安装
bash
pip install --upgrade pip
pip install pyyaml matplotlib opencv-python==3.4.0.12
cd ~/catkin_ws/src/
cd tello_control/h264decoder
mkdir build && cd build
cmake ..
make -j
cp libh264decoder.so ../../
cd ~/catkin_ws
catkin_make
使用
- 首次使用时,增加可执行权限:
bash chmod +x ~/catkin_ws/src/tello_control/tello_control.py chmod +x ~/catkin_ws/src/tello_control/tello_state.py
- 打开一个终端,启动ROS核心:
bash roscore
- 新打开终端,运行状态发布程序:
bash rosrun tello_control tello_state.py
- 新打开终端,运行控制程序:
bash rosrun tello_control tello_control.py
常见报错处理
- 报错
no module named rospkg
:bash conda activate tello conda install setuptools pip install -U rosdep rosinstall_generator wstool rosinstall six vcstools
- 报错
ImportError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so: undefined symbol: PyCObject_Type
,在报错的文件里加上:python sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
其他提示
- 接收视频流端口为11111(负责接收图像信息)。
- 接收状态端口为8890(负责接收状态信息)。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】