本文主要介绍使用DJI ROS SDK开发的教程和其中的一些说明
M00 and Onboard-SDK-ROS
MATRICE 100 被设计为可以使用遥控器、机载备和 移动 设备进行控制。如果遥控器让飞切换到 API控制模式,设备通过 Onboard API , Mobile API可以请求获得控制权。
启用 API控制 之后 ,将遥控器模式开关置为中位 (F档)。 编译 ROS package Onboard-SDK-ROS中的各package,如果在自己的package的launch文件中添加
<include file="$(find dji_sdk)/launch/sdk_manifold.launch" />
我们这里看一下这个launch文件,内容如下
<launch>
<node pkg="dji_sdk" type="dji_sdk_node" name="dji_sdk" output="screen">
<!-- node parameters -->
<param name="drone_version" type="string" value="M100"/>
<param name="serial_name" type="string" value="/dev/ttyTHS1"/>
<param name="baud_rate" type="int" value="230400"/>
<param name="app_id" type="int" value="1027749"/>
<param name="app_version" type="int" value="1"/>
<param name="app_bundle_id" type="string" value="Welcome to use dji-sdk"/>
<param name="enc_key" type="string" value="5de4dfff4bea190522bd6d9bb7da434a213c5e30611a8d5f01c8ed1146e1712a"/>
<param name="groundstation_enable" type="int" value="1"/>
</node>
</launch>
运行的节点是dji_sdk package中的sji_sdk_node,主要的参数是串口的设备号,串口波特率和app_id和enc-key.最后两个参数可以在dev.dji.org的网站上申请。
开发流程
设置
硬件设置
软件系统环境的配置
- 环境
- Operating System: Ubuntu 14.04, Manifold
- ROS version: ROS Indigo
- 软件要求
- Install C, C++ Compiler and Development Tools by installing build-essential
- Install CMake 2.8.3 or newer
- Install ROS and its dependencies
- 配置catkin环境
- 激活
注意
- 飞机起飞之后直到高于1.2m之后才可以被SDK控制,降落的时候也是这样。因此最好是自己arm或者disarm飞机,然后SDK控制可以实现坐姿态控制,起飞降落,以及自己的控制逻辑。
- 对于水平方向的姿态控制有三种控制模式,pitch和roll,x/y方向的速度,x/y方向的位置。位置控制需要一个稳定的GPS,速度控制需要一个稳定速度反馈(可以来自guidance或者GPS), pitch and roll控制可以在guidance未安装时仅有弱GPS情况下就可以。
- 从ROS传输的video有较大延时,因此最好在同一个节点中读取并处理,然后发布图像和处理结构。
We provided an appendix for developers to check the details of all published topics and services, together with the definition of corresponding msgs and srvs with parameter description.
Ros development
refer
This file subscribe all the information we need for development of the application with all kinds of mission of the flight.
so we just need to add (construct) an instance of the class DJIDrone,
also we need to pay attention that
we need to add a statement in the CMakeLists.txt
set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")
User Manual
1. 使用遥控器。
2. 使用DJI GO App