Tello和ROS的一些資料
之前,一些博文給出了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.107.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
----
相關文章
- Tello無人機版之使用Scratch2和ROS進行機器人圖形化程式設計學習無人機ROS機器人程式設計
- Tello無人機的使用筆記之dji-sdk/Tello-Python無人機筆記Python
- ROS學習資料大全ROS
- Ros 自動避障和尋路相關資料ROS
- 為ROS建立的資源自動掛載資料盤ROS
- ros|TF工具獲取IMU資料ROS
- 有關 SCN 和 RESETLOG的一些資料
- 一些ASM 資料庫的測試和管理ASM資料庫
- Webots和ROS的使用說明(譯)WebROS
- ubuntu18.04下ros1和ros2的切換UbuntuROS
- vertica ROS和WOS錯誤ROS
- 關於資料庫事務和鎖的一些分析資料庫
- ROS2GO之TurtleBot學習與使用資料ROSGo
- oracle的一些資料收集Oracle
- pga使用的一些資料
- 【ROS教程】用CLion編譯和除錯ROS包的全流程及可能遇到的問題ROS編譯除錯
- 資料庫容量和記憶體測算的一些想法資料庫記憶體
- Julia語言的一些資料
- 資料庫的一些有關資料庫
- 資料庫的一些操作(Sql)資料庫SQL
- 一些db2的資料DB2
- ROS 和Web 帶來更智慧的機器人ROSWeb機器人
- 資料結構::一些經典的大資料題資料結構大資料
- 【ROS】從零開始學ROSROS
- 【ROS教程】ROS常用API講解ROSAPI
- 【ROS教程】ROS常用命令ROS
- 一些可用於研究的GIS資料資源
- Sql Server資料庫的一些知識點定義和總結SQLServer資料庫
- 分散式資料庫的一些重要概念和術語及誤區分散式資料庫
- ROS知識(20)----SLAM資源集合ROSSLAM
- 一些常用的Oacle資料庫操作資料庫
- 資料核對的一些體會
- DW資料倉儲的一些概念
- 在 ROS 中使用 Protobuf 替代 ros msgROS
- 【Zeekr_Tech】ROS/ROS 2介紹ROS
- Proguard整理一些資料
- oracle redo一些資料Oracle Redo
- ros imu tools的使用ROS