欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

大疆M210 V2无人机ROS实战教程:结合OSDK与ROS 4.0的实践指南

最编程 2024-07-27 13:03:07
...

一、先获取大疆SDK的开发包以及开发帐号

开发包下载:https://github.com/dji-sdk/Onboard-SDK-ROS

帐号申请:点击这里注册帐号  

注册好帐号后点击右上角进入用户中心,点击app 点击creat app创建OSDK APP

二、开始正式开发

新建工作空间并下载OSDK ROS开发包

mkdir -p ~/Desktop/catkin_ws/src
cd ~/Desktop/catkin_ws/src/
catkin_init_workspace 
git clone https://github.com/dji-sdk/Onboard-SDK-ROS.git

下载并安装OSDK核心包 (下载慢的一批,我喝口水去)

git clone https://github.com/dji-sdk/Onboard-SDK.git
cd Onboard-SDK
mkdir build
cd build
cmake ..
sudo make -j7 install

安装依赖nmea-comms

sudo apt install ros-kinetic-nmea-comms

安装FFmpeg及依赖

sudo apt install ffmpeg
sudo apt-get install libavcodec-dev libswresample-dev

安装opencv3.X 和对应的opencv_contrib

https://blog.****.net/qq_35781447/article/details/103277509

编译程序(注意自己先check out下开发包程序版本)

cd ../../..
catkin_make

配置环境变量

source devel/setup.bash

三 配置USB 串口以及硬件连接

(1) 添加UART 读写权限

请按如下步骤为Linux 中指定的用户添加UART 读写权限:

  1. 使用命令
    sudo usermod -a -G dialout $USER
    将本用户添加至dialout 组中。
  2. 重新登录所添加的账户后,该账户即可获取UART 读写权限。

(2) 安装LibUSB 并添加DJI USB 设备节点

  • 安装LibUSB
    安装LibUSB 后,开发者使用Manifold 和第三方开发平台能够获取无人机接收到的图像数据。
    使用如下命令安装LibUSB:1.0.17及更高版本。
sudo apt-get install libusb-1.0-0-dev
  • 添加DJI USB 设备节点
    如需在M210 系列的无人机上使用OSDK 中的视觉功能,使Linux 系统能够获取并标识DJI 的设备,请按如下步骤,在Linux 中添加DJI USB 设备节点:
  • /etc/udev/rules.d/目录下创建文件DJIDevice.rules
  • DJIDevice.rules文件中添加
    SUBSYSTEM=="usb", ATTRS{idVendor}=="2ca3", MODE="0666"

    重新启动电脑后,系统即可识别DJI USB 设备。

  • ROS 默认订阅的主题相对较多,为保证ROS 与基于OSDK 开发的应用程序间有足够的通信带宽,UART 的波特率应大于921600。
  • 无人机连接DJI Assistant 2 勾选使能OSDK,并设置波特率921600(盗用下图片 懒得P,自己勾选所有框框 把buadrate改成921600 谢谢)

(3) 硬件设备连接

飞机USB接电脑USB,设备端会多出ttyACM0

飞机串口接串口转USB接电脑,设备端会多出ttyUSB0

三 运行OSDK ROS 4.0

配置刚刚申请的OSDK APP 

cd ~/Desktop/catkin_ws/
source devel/setup.bash
rosed dji_osdk_ros dji_vehicle_node.launch

运行主节点 大功告成+

roslaunch dji_osdk_ros dji_vehicle_node.launch

Ctrl shift T打开新的终端 运行DJI给的sample

source devel/setup.bash
rosrun dji_osdk_ros flight_control_nod