Introduction

psdk_ros2 wrapper is an open-source project that integrates the DJI’s Payload-SDK libraries with ROS 2 (Robot Operating System 2) ecosystem.

Key features

The psdk_ros2 wrapper currently supports the following features:

  1. Starting and Initializing PSDK Applications: psdk_ros2 allows you to initiate and configure a PSDK application from within ROS 2.

  2. Subscription to DJI Main Topics: You can easily subscribe to the main topics provided by DJI, getting access to essential data and information.

  3. Frequency Control for Topic Subscription: psdk_ros2 offers the capability to set the frequency of topic subscriptions, allowing you to tailor data retrieval as per your requirements.

  4. Copter Position and Velocity Commands: With psdk_ros2, you can conveniently send position and velocity commands to control a copter’s movement.

  5. Camera Management: psdk_ros2 provides functionalities to retrieve and update the main parameters of a mounted camera, giving you control over the camera settings. Moreover, you can take photos, videos and obtain the stream on a ROS 2 topic.

  6. Gimbal Control: You can manipulate gimbal parameters, adjusting the gimbal’s orientation and behavior.

Note: The PSDK libraries offer many other capabilities. If you are interested in enhancing the wrapper and adding further functionalities, please visit our Contribute page to discover how you can contribute to the community.

Compatibility

The current version supports PSDK v3.8 and it has been tested and built for ROS 2 Humble. For firmware and product compatibility, please check the page DJI Developer - PSDK.

Important Notice

Caution: This code has not undergone extensive testing with real hardware. Users are advised to exercise caution when using this repository.

While we strive to provide reliable and functional code, it’s important to note that the code in this repository is still a work in progress. As a result, potential bugs or compatibility issues might arise when using this code with specific hardware configurations.

We encourage users to:

  • Test the code in controlled environments before deploying it in critical or real-world scenarios.

  • Proceed with caution and monitor the system closely if integrating this code into operational hardware.

  • Provide feedback, report issues and open pull requests. Your input will help improve the reliability of this repository.

Remember that all users assume the responsibility for assessing the code’s suitability for their own applications and hardware.