[GSoC 2026] Control a humanoid robot with servo joints, and validate it in Gazebo simulation

Hi everyone, I’m Saman, a 6th semester Computer Engineering student. I’ve been going through the GSoC 2026 ideas list and the ArduHumanoid project is the clearest match for my background. From the description, I understand the core challenge is: creating a new “vehicle type” in ArduPilot that can command servo-driven joints, implement a basic kinematic control interface, and validate it through a SITL simulation in Gazebo essentially adapting ArduPilot’s control architecture (designed for flight) to handle position-controlled joints instead of thrust/attitude outputs. My relevant background: C/C++ from coursework and personal projects - Familiar with control systems ,Currently setting up the SITL environment locally I started reading through the codebase and looked at AP_Motors_Class.h. I noticed the base class is built entirely around roll/pitch/yaw/throttle inputs designed for thrust-based vehicles. For ArduHumanoid, I’m thinking a new derived class would need to replace these with joint angle position targets instead but I wanted to ask: is that the right architectural direction, or is the SRV_Channel library a better starting point for servo position control? A1. Should I study the existing Rover or Blimp vehicle types as the closest analogy to implementing a new vehicle type? 2. Is creating a minimal URDF model from scratch part of the expected scope, or is there an existing Gazebo model to build from? 3. For the 175h proposal timeline, does this breakdown make sense as milestones: URDF model → new vehicle type → servo/joint control interface → SITL integration? Looking forward to your guidance and happy to be corrected if I’m going in the wrong direction.

1 Like