|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged as2_platform_dji_psdk at Robotics Stack Exchange
|
as2_platform_dji_psdk package from as2_platform_dji_psdk repoas2_platform_dji_psdk |
ROS Distro
|
Package Summary
| Version | 1.1.0 |
| License | BSD-3-Clause |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/aerostack2/as2_platform_dji_psdk.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-11-05 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- CVAR-UPM
Authors
- Rafael Perez-Segui
- Santiago Tapia-Fernandez
as2_platform_dji_psdk
Aerostack2 platform for DJI drones that use the DJI Payload SDK (PSDK), such as the Matrice 30, Matrice 300 RTK and Matrice 350 RTK.
The platform talks to the drone through psdk_ros2, so a
running deployment has two nodes: the psdk_wrapper node, which owns the connection to the drone,
and the Aerostack2 platform node, which translates Aerostack2 commands into psdk_wrapper topics
and services.
[!NOTE] For older drones that only support the deprecated Onboard SDK, such as the Matrice 210 V2, use
as2_platform_dji_osdk.
[!IMPORTANT] This package can’t be released to the ROS build farm or listed on the ROS Index yet, because its
psdk_interfacesdependency isn’t released for any ROS 2 distribution newer than Humble. Building it from source, together withpsdk_ros2, works.
Requirements
- Ubuntu 22.04 with ROS 2 Humble
- Aerostack2
-
psdk_ros2, which providespsdk_interfacesand thepsdk_wrappernode - A DJI developer app (
app_name,app_id,app_keyandapp_license) from the DJI Developer Center
Build
From the root of your workspace:
rosdep install -y -r --ignore-src --from-paths src --packages-up-to as2_platform_dji_psdk
colcon build --packages-up-to as2_platform_dji_psdk
Usage
Set your DJI app credentials in config/psdk_authentication.yaml:
/**:
ros__parameters:
app_name: "YourPSDK"
app_id: "YourID"
app_key: "YourAppKey"
app_license: "YourAppLicense"
developer_account: "YourDeveloperAccount"
baudrate: "921600"
Set the serial, USB bulk or network devices that connect to the drone in
config/link_config.json.
Then launch the psdk_wrapper node and the platform:
ros2 launch as2_platform_dji_psdk psdk_wrapper.launch.py namespace:=drone0
ros2 launch as2_platform_dji_psdk as2_platform_dji_psdk.launch.py namespace:=drone0
psdk_wrapper.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
psdk_authentication_params_file |
config/psdk_authentication.yaml |
DJI app credentials |
link_config_file_path |
config/link_config.json |
Connection to the drone |
hms_return_codes_path |
config/hms_2023_08_22.json |
Known DJI HMS return codes |
psdk_params_file |
config/psdk_params.yaml |
Wrapper modules, frames and data rates |
tf_frame_prefix |
'' |
TF frame prefix |
The wrapper’s GPS, IMU and main camera topics are remapped to the Aerostack2
sensor_measurements/ namespace.
as2_platform_dji_psdk.launch.py
| Argument | Default | Description |
|---|---|---|
namespace |
$AEROSTACK2_SIMULATION_DRONE_ID |
Drone namespace |
log_level |
info |
Log severity level |
control_modes_file |
config/control_modes.yaml |
Platform control modes |
config_file |
config/platform_config_file.yaml |
Platform parameters |
Platform parameters (command and info rates, camera, gimbal, TF timeout) are in
config/platform_config_file.yaml, and each one can also be overridden as a launch argument.
Test
colcon test --packages-select as2_platform_dji_psdk
colcon test-result --verbose
File truncated at 100 lines see the full file
Changelog for package as2_platform_dji_psdk
1.1.0 (2024-08-20)
- [fix] psdk_wrapper.launch.py by removing tab in default config files
- [feat] Update changes in launcher and params to psdk_ros2 v1.3.0
- [feat] Update launcher with param utils
- [test] flake8 passing
- [ci] new ci added
- [fix] velocity sub topic
- [feat] Add tf_frame_prefix param
- [feat] Improve gimbal using TF
- [fix] Avoid sending duplicated gimbal command
- [fix] platform take off
- [feat] Add gimbal
- [refactor] Code refractor without impl
- [feat] Add HMS file
- [feat] Add gimbal and camera intialization flags
- [fix] speed state and yaw reference frames
- [feat] obtain ctrl authority
- [feat] change to SynchronousServiceClient
- [test] enable test dir
- [docs] add copyright
- [style] add hints to platform virtual methods
- [test] Use ament_lint_auto
- [build] Add psdk_interfaces dependency
- Contributors: Miguel Fernandez-Cortizas, Rafael Perez-Segui, Santiago Tapia-Fernández, pariaspe
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| ament_lint_common | |
| ament_lint_auto | |
| ament_cmake_gtest | |
| ament_index_cpp | |
| rclcpp | |
| as2_core | |
| as2_msgs | |
| std_msgs | |
| psdk_interfaces |