一、先获取大疆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.csdn.net/qq_35781447/article/details/103277509
编译程序(注意自己先check out下开发包程序版本)
cd ../../..
catkin_make
配置环境变量
source devel/setup.bash
三 配置USB 串口以及硬件连接
(1) 添加UART 读写权限
请按如下步骤为Linux 中指定的用户添加UART 读写权限:
- 使用命令
将本用户添加至sudo usermod -a -G dialout $USER
dialout
组中。 - 重新登录所添加的账户后,该账户即可获取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