Tello和ROS的一些資料

zhangrelay發表於2019-01-01

之前,一些博文給出了Cozmo和Vector等地面小型機器人的資料,這篇博文,針對空中機器人---Tello。

github上有python等sdk的介紹和說明,這裡不再詳細介紹。

下載對應ros功能包,進行編譯即可使用。


tello_driver(github.com/anqixu/tello_driver


免責宣告:此套餐正在進行中。對於您使用此軟體的任何後果,我不承擔任何責任。文件可能會被破壞,功能和API目前被認為是VOLATILE。

DISCLAIMER: This package is an work-in-progress. I take no responsibility for any consequences of you using this software. The documentation might be broken, and features and API are considered VOLATILE presently.

適用於DJI / Ryze Tello無人機的ROS驅動程式包

ROS driver wrapper for DJI/Ryze Tello drone

節點Node:

src/tello_driver_node.py

主題Topics:

~cmd_vel: geometry_msgs/Twist
~fast_mode: std_msgs/Empty
~image_raw: sensor_msgs/Image
~takeoff: std_msgs/Empty
~throw_takeoff: std_msgs/Empty
~land: std_msgs/Empty
~palm_land: std_msgs/Empty
~flattrim: std_msgs/Empty
~flip: std_msgs/Uint8


引數Parameters:

~tello_ip
~tello_cmd_port
~client_port
~connect_timeout_sec


安裝Installation:
$ cd <CATKIN_WS/SRC>
$ git clone https://github.com/anqixu/TelloPy.git
$ cd TelloPy
$ sudo -H pip2 install -e .
$ cd ..
$ git clone https://github.com/anqixu/h264_image_transport.git
$ git clone https://github.com/anqixu/tello_driver.git
$ cd ..
$ rosdep install h264_image_transport
跳過此步驟: $ # rosdep install tello_driver # not working currently
$ catkin build tello_driver
(可選)為PS3遊戲手柄安裝以下udev規則 ; 請參閱檔案頂部的註釋中的說明。

$ cd <CATKIN_WS/SRC>
$ git clone https://github.com/anqixu/TelloPy.git
$ cd TelloPy
$ sudo -H pip2 install -e .
$ cd ..
$ git clone https://github.com/anqixu/h264_image_transport.git
$ git clone https://github.com/anqixu/tello_driver.git
$ cd ..
$ rosdep install h264_image_transport
skip this step: $ # rosdep install tello_driver # not working currently
$ catkin build tello_driver

 

執行驅動程式Running the driver:
開啟無人機,等待前燈琥珀色閃爍


將WiFi連線到無人機的接入點(例如TELLO_######)
$ roslaunch tello_driver launch/tello_node.launch

要檢視攝像頭:

$ rosrun rqt_image_view rqt_image_view /tello/image_raw/compressed

使用有線DualShock 3遊戲手柄遠端操作無人機
首先檢查以下內容並可能調整引數/程式碼/對映parameters / code / mappings:

launch/joy_teleop.launch
launch/logger.launch
src/gamepad_marshall_node.py


現在執行:

$ roslaunch tello_driver devel.launch

連線多個無人機
通過使用多個USB WiFi加密狗和執行UDP代理伺服器的Docker容器,可以連線到多個Tello無人機。

已知的錯誤
有時,也許在沒有移動遊戲手柄模擬棒/傳送命令的情況下起飛時/tello/cmd_vel,進一步的cmd_vel將無法工作; 通過重新啟動節點,移動遊戲手柄模擬棒/傳送訊息到/tello/cmd_velFIRST,然後起飛來修復



ROS2(github.com/clydemcqueen/tello_ros)

tello_ros 是Tello和Tello EDU無人機的ROS2驅動程式。

功能包
有3個ROS2包:

tello_driver 是連線到無人機的C ++ ROS2節點
tello_msgs 是一組ROS2訊息
tello_description 包含一個URDF和其他對rviz2和Gazebo有用的檔案
介面
許多Tello命令(例如,takeoff和land)都在長時間執行,客戶希望知道它們何時完成。在ROS1中,在這些情況下使用動作很常見,但ROS2 Bouncy中沒有動作。目前,介面使用ROS服務tello_command來啟動命令,並使用相應的ROS主題tello_response來指示命令完成。

一次只能啟用一個命令。命令完成後,可以啟動下一個命令。

如果在15秒內沒有收到任何命令,Tello無人機將自動著陸。驅動程式傳送適當的保持活動訊息以避免這種情況。

驅動程式啟用視訊併傳送有關image_raw主題的影象。在camera_info主題上傳送相機資訊。

服務
~tello_command tello_msgs / TelloCommand
釋出的主題
~tello_response std_msgs /字串
~flight_data tello_msgs / FlightData
~image_raw sensor_msgs /影象
~camera_info sensor_msgs / CameraInfo
安裝要求
Ubuntu 18.04
ROS2 Bouncy
libasio-dev 1.10.8-1
ffmpeg 3.4.4-0ubuntu0.18.04.1,包括這些庫:
libavcodec.so.57.1​​07.100
libavutil.so.55.78.100
libswscale.so.4.8.100
OpenCV 3
傳送命令
使用command主題將任意字串傳送到無人機。例子:

ros2 service call /tello_command tello_msgs/TelloCommand "{cmd: 'takeoff'}"
ros2 service call /tello_command tello_msgs/TelloCommand "{cmd: 'land'}"
ros2 service call /tello_command tello_msgs/TelloCommand "{cmd: 'rc 10 0 0 0'}"
ros2 service call /tello_command tello_msgs/TelloCommand "{cmd: 'battery?'}"
裝置經過測試
Tello
韌體v01.04.35.01,SDK v1.3
Tello EDU
韌體v02.04.69.03,SDK v2.0
在CLion中執行C ++節點
設定LD_LIBRARY_PATH以獲取已編譯的tello_msgs庫。例:

source /opt/ros/bouncy/setup.bash
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/ros2/flock2_ws/install/tello_msgs/lib
bash ~/.local/share/JetBrains/Toolbox/apps/CLion/ch-0/183.4588.63/bin/clion.sh
積分
h264decoder來自:https://github.com/DaWelter/h264decoder

資源
Tello使用者手冊1.4:解釋燈光等等。
Tello韌體版本:不包括Tello EDU韌體版本。
SDK 1.3:對於特洛。
SDK 2.0:對於Tello EDU。
Tello EDU Mission Pad指南(SDK 2.0)適用於Tello EDU。



重要步驟:

連線到Tello:

 

編譯ROS1和ROS2:

111:

222:

更多內容稍後補充。

----

Fin

----

 

相關文章