By the end of this workshop, every attendee will land a simulated drone precisely on an ArUco marker using computer vision, with PX4 running the drone and ROS 2 handling the control logic. PX4 powers over a million drones worldwide, and in this session you'll run the exact same production firmware on your laptop. Precision landing on a visual marker is a real-world capability used in package delivery, autonomous charging, and marine recovery, and you'll build it from scratch.
We'll start by booting PX4 in Gazebo simulation and exploring the architecture of a production flight stack, including uORB, the pub-sub middleware that connects every module in PX4. From there, we'll connect PX4 to ROS 2 via the uXRCE-DDS bridge, build a custom flight mode using the px4-ros2-interface-lib, detect ArUco markers with OpenCV, and estimate pose from a simulated camera, and finally wire perception into the flight mode to execute an autonomous precision landing.
This workshop is for embedded developers looking for a robotics application of their existing skills, ROS 2 developers wanting to move beyond MAVLink offboard control, and anyone interested in seeing how perception, control, and middleware come together in a real flight stack. No drone experience required.
Hosted by Dronecode maintainers Ramón Roche and Nuno Marques, with guest contributors from the PX4 ecosystem.
Workshop Requirements (please read before attending): Bring a laptop. Any OS works, but in order of expected smoothness: Linux is your best bet, followed by Windows, then macOS. Workshop materials and setup instructions live at
https://github.com/Dronecode/ossna-26-workshop. Pre-install the Docker containers before arriving, since conference Wi-Fi might be unreliable and pulling multi-gigabyte images on-site will eat into your workshop time. macOS users should note that the container image doesn't run Gazebo well; use the official PX4 setup script at
https://github.com/PX4/PX4-Autopilot/blob/main/Tools/setup/macos.sh with the --sim-tools flag to install Gazebo natively (details in the workshop repo). Join the Dronecode Discord at
https://chat.dronecode.org for workshop updates, setup help, and community support before, during, and after the event, and keep an eye on the repo and Discord in the days leading up for any last-minute changes.