System Structure
- dji_sdk: the core package handling the communication with Matrice 100, which provides a header file
dji_drone.h
for future use - dji_sdk_demo: an example package of using
dji_drone.h
to control the Matrice 100 - dji_sdk_web_groundstation: a WebSocket example using ROS-bridge-suite, where a webpage groundstatino is provided
- dji_sdk_manifold_read_cam: a specifed X3 video reading package for Manifold, video stream will be published out in RGB, CATKIN_IGNOREd by defualt
- dji_sdk_manifold_read_cam_nv: same as the previous one, but use hardware decoding method and in Grayscale, CATKIN_IGNOREd by defualt
- dji_sdk_doc: all documents
DJI Onboard SDK ROS Package for Video Decoding on Manifold
This package is a specified video decoding package for Manifold.
How to use
- Install the necessary library: refer here
- Delete the
CATKIN_IGNORE
file inside package andcatkin_make
. rosrun dji_sdk_manifold_read_cam_nv dji_sdk_manifold_read_cam_nv
- The image will be published into topic
/dji_sdk/image_raw
Note:
- This package is specially designed for Manifold.
- The RC controller must be connected to Matrice 100 in order to get the video stream.
- This package does not provice video transparent transmission. You cannot see the video on DJI Go while running this package.
- This package uses hardware decoding method, while the other one uses FFMPEG.
- The image format is in Grayscale, while the other one publishes RGB image.
DJI Onboard SDK ROS Package for Video Decoding on Manifold
This package is a specified video decoding package for Manifold.
How to use
- Install the necessary library: it should be already there, try to run the project in the
demo
folder of your Manifold home directory. If not, please run theinstall_lib.sh
- Delete the
CATKIN_IGNORE
file inside package andcatkin_make
. rosrun dji_sdk_manifold_read_cam dji_sdk_manifold_read_cam
- The image will be published into topic
/dji_sdk/image_raw
Note:
- This package is specially designed for Manifold.
- The RC controller must be connected to Matrice 100 in order to get the video stream.
- This package does not provice video transparent transmission. You cannot see the video on DJI Go while running this package.
- This package uses FFMPENG for video decoding. while the _nv one uses hardware decoding method.
- The image format is RGB, while the _nv one publishes Grayscale image.
DJI_SDK_Node是这个ROS package的核心部分,可以看出它打包了DJI_LIB,向外展示了三个模块,一是dji_sdk_node_main.cpp(Publisher), dji_sdk_node_service.cpp(Service_Server), 以及dji_sdk_node_action.cpp(ActionLib Server).为了理解这三个文件我们首先看一下,他们构成了一个类就是DJISDKNode, 所以这里先看一下他的类头文件。
//# acceleration
Header header
int32 ts
float32 ax
float32 ay
float32 az
//#//#Gimbal
Header header
int32 ts
float32 pitch
float32 yaw
float32 roll
//#Compass
Header header
int32 ts
int8 x
int8 y
int8 z
//#FlightControlInfo
int8 cur_ctrl_dev_in_navi_mode
int8 serial_req_status
//#AttitudeQuaternion
//# The attitude in the aeronautical frame (right-handed, Z-down, X-front, Y-right), expressed as quaternion. Quaternion order is w, x, y, z and a zero rotation would be expressed as (1 0 0 0).
Header header
int32 ts
//# Quaternion component
float32 q0
float32 q1
float32 q2
float32 q3
//# Angular speed (rad/s)
float32 wx
float32 wy
float32 wz
//#GlobalPosition
Header header
int32 ts
//#latitud