Overview
This project explores intuitive drone control by translating hand motion into offboard flight commands. The full stack runs in SITL: PX4 for the autopilot, ROS 2 for the control bridge, Gazebo for simulation, and Leap Motion (LeapC) for hand tracking input.
System architecture
- Hand tracking (LeapC): reads hand pose / motion signals
- ROS 2 control node: filters + maps hand motion to flight setpoints
- PX4 offboard control: receives setpoints and stabilizes the vehicle
- Gazebo simulation: provides the world + vehicle dynamics for repeatable testing
Control mapping (concept)
- Hand position → lateral motion (x/y)
- Hand height → climb / descent
- Hand orientation / gesture → yaw or mode/safety actions
To keep control stable, the pipeline applies smoothing and safety limits (rate limiting, dead-zones, and bounded setpoints).
Highlights
- End-to-end integration across LeapC → ROS 2 → PX4 → Gazebo
- Realtime feel: low-latency inputs with filtering to avoid jitter
- Safety-first design: conservative defaults and bounded commands for simulation testing
Repository
What I learned
- Offboard control is less about “sending commands” and more about managing dynamics + constraints.
- Small UX details (dead-zones, smoothing, and gesture semantics) make a big difference in how “natural” control feels.