This ROS example implements functionality of the DJI Onboard-SDK. It consists of the core library and client packages demonstrating communication with Matrice 100 and A3/N3 flight controllers. The flight controller type can be defined in the launch file of the core package at any time. Onboard SDK functionality offered in a wrapped header file called dji_drone.h which user can include and use directly for his/her own demo applications. We also provide a python version called dji_drone.py. To have our samples run as quickly as possible, we implemented a sample code for hardware driver that you can use as is to ensure safe serial communication between your flight controller and an Onboard Embedded System (OES) of your choice.
Supported commands and actions:
New with OSDK 3.2.0 Advanced Features:
dji_drone.hfor future use
dji_drone.hto control the Matrice 100/A3/N3
The Hardware Setup guide talks about setting up your platform of choice. Make sure your setup matches that in the document before proceeding further.
Note: Onboard SDK ROS has also been beta tested with Ubuntu Xenial 16.04LTS and ROS Kinetic Kame. We currently do not support
apt-getfor this configuration.
Note: Onboard SDK ROS also supports N3 and A3 FW 18.104.22.168 and newer with OSDK 3.2.0. See Notes.
catkin_make. Make sure the source code is in the
srcdirectory of your catkin workspace.
catkin_makefrom catkin workspace.
-DUSE_COLLISION_AVOIDANCE=ONfor compiling with LiDAR Collision Avoidance and
-DUSE_POINTCLOUD2LAS=ONfor building with LiDAR Mapping.
Before you start exploring DJI Onboard SDK functionality via our ROS examples, you will need to go through the "Activation" process.
Now, after completing activation process, you can start exploring our ROS examples or start working on your own application demo.
Additionally, ROS functions can also be initiated from an iOS Mobile app that runs on your mobile device connected to the RC. This enables users to test the functions easily in the field. You can read about it here
Whenever you develop your own ROS package, include the
dji_sdk/include/dji_sdk into your package (there is also a python version
dji_sdk/src). Make sure to build and link your target package with DJI Onboard SDK library residing under
This is a communication example involving Simulator as part of the Assistant software.
roslaunch dji_sdk sdk_manifold.launch) and the client node (
rosrun dji_sdk_demo dji_sdk_client) in separate terminals
For further reading about Onboard SDK ROS, please refer to ROS OSDK Additional Info