Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro jazzy showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro lyrical showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro github showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).
No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Repo symbol

as2_platform_dji_osdk repository

as2_platform_dji_osdk

ROS Distro
humble

Repository Summary

Description
Checkout URI https://github.com/aerostack2/as2_platform_dji_osdk.git
VCS Type git
VCS Version main
Last Updated 2026-11-04
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Packages

Name Version
as2_platform_dji_osdk 1.1.0

README

as2_platform_dji_osdk

build ROS 2 Humble ROS 2 Jazzy License arXiv

Aerostack2 platform for DJI drones that use the DJI Onboard SDK (OSDK), such as the Matrice 210 V2 and Matrice 300 RTK.

[!WARNING] This package supports ROS 2 Humble only. It won’t be migrated to Jazzy.

  • OSDK is deprecated. DJI no longer develops it, and newer drones (Matrice 30, Matrice 350 RTK, Matrice 4) only support the Payload SDK. For those, use as2_platform_dji_psdk.
  • OSDK needs FFmpeg 4. Its camera stream decoder (osdk-core/advanced-sensing/camera_stream/src/dji_camera_stream_decoder.cpp) uses FFmpeg APIs that were removed in FFmpeg 5, such as avcodec_register_all, avcodec_decode_video2 and AVPicture.
  • Jazzy ships a newer FFmpeg. Ubuntu 22.04 (Humble) ships FFmpeg 4.4, so the build works. Ubuntu 24.04 (Jazzy) ships FFmpeg 6.1, so the build fails. The same applies to pixi and RoboStack, where conda-forge ships FFmpeg 8 and later.

Requirements

The OSDK itself is fetched at build time from aerostack2/Onboard-SDK. Its system dependencies (libusb-1.0-dev, ffmpeg, libopencv-dev) are declared in package.xml.

Build

From the root of your workspace:

rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_osdk
colcon build --packages-up-to as2_platform_dji_osdk

Usage

Set your app credentials and serial ports in config/user_config_file.txt:

app_id : 123456
app_key : 0123456789abcdefghijklmnopqrstuvwxyz
device : /dev/ttyUSBx
baudrate : 921600
acm_port : /dev/ttyACMx

Then launch the platform:

ros2 launch as2_platform_dji_osdk as2_platform_dji_osdk_launch.py namespace:=drone0

Argument Default Description
namespace $AEROSTACK2_SIMULATION_DRONE_ID Drone namespace
user_config_file config/user_config_file.txt DJI app credentials and serial ports
control_modes_file config/control_modes.yaml Platform control modes

Platform parameters (command and info rates, advanced sensing, camera, MOP channel) are in config/platform_config_file.yaml, and MOP channel parameters are in config/mop_handler_config_file.yaml.

Test

colcon test --packages-select as2_platform_dji_osdk
colcon test-result --verbose

Citation

If you use Aerostack2 in your research, please cite:

M. Fernandez-Cortizas, M. Molina, P. Arias-Perez, R. Perez-Segui, D. Perez-Saura and P. Campoy, 2023, “Aerostack2: A software framework for developing multi-robot aerial systems”, arXiv 2303.18237.

License

BSD 3-Clause

CONTRIBUTING

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that license.

Any contribution that you make to this repository will be under the 3-Clause BSD License, as dictated by that [license](https://opensource.org/licenses/BSD-3-Clause).