Exports ARDRONE ARSDK3 from Parrot as a ROS2 package. A node for the Jumping Sumo is provided, but more nodes are welcome in PR.
Build status:
Release status:
sudo apt install ros-${ROS_DISTRO}-ardrone-sumo
source /opt/ros/humble/setup.bash
rosdep install -i --from-path src --rosdistro humble -y --ignore-src
colcon build --packages-up-to ardrone_sdk --event-handlers console_direct+ --paths src/*The ardrone_sdk package exports headers and libs for easy integration, as illustrated in the companion package ardrone_sumo
find_package(ardrone_sdk REQUIRED)
add_executable(jumping_sumo src/jumping_sumo.cpp)
target_link_libraries(jumping_sumo PUBLIC
ardrone_sdk::ardrone_sdk_lib
)The original ARSDK build involves using repo init/repo sync to clone the source files from github. To avoid cloning as part of the build process in the ROS build farm, we re-commit the files in the src/ardrone_sdk package and take care to preserve the Parrot license. Only a part of the original files is committed, which is controlled by ./scripts/sync_sources.sh. Edit this script and commit the new output to add more ARSDK libraries.
The Bebop Sample is not part of this release, although a compiled version of the original library can be found in the ardrone-sdk-native repository. It includes both native samples.
Control the JumpingSumo drone via ROS2 topics
- Subscribe to geometry_msgs/Twist on
jumpingsumo/cmd_velfor motion control - Publish sensor_msgs/Image on
jumpingsumo/image_rawfor video feed - Publish sensor_msgs/BatteryState on
jumpingsumo/batteryfor battery status - WiFi connection handling
The
Twisthas no unit/dimension ! Send a floating value between -1 and 1 to control for the maximum backward/forward motor values in speed and turn.
- Connect to JumpingSumo's WiFi network
- Launch the ROS2 node:
ros2 run ardrone_sumo jumping_sumoTo control the drone, use:
# Terminal 1
ros2 run rqt_image_view rqt_image_view /jumpingsumo/image_raw
# Terminal 2
ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=/jumpingsumo/cmd_velThe camera distortion is apparent for nearby objects, so calibration is needed for further use
The original sample may still be run
source install/setup.bash
JumpingSumoSampleTo enable debug logging for detailed command information:
ros2 run ardrone_sumo jumping_sumo --ros-args --log-level jumping_sumo:=debugThis will show all DEBUG level messages, which include detailed command key information
- The Twist command has no unit/dimension (it is not in m/s but rather in motor percentage)
- The IMU sensor is missing (Note Victor: I could not find it in the jumping_sumo messages)


