Mecata Humanoid
Humanoid robot platform at Mecata Foundation — ROS 2 control stack with walking pattern generators, whole-body control, and low-level firmware for bipedal locomotion research.
github.com/sigitdanip/mecatahumanoidThe Problem
Humanoid robots promise to operate in human-designed environments without modification — climbing stairs, navigating doorways, using tools built for human hands. But bipedal locomotion remains one of the hardest control problems in robotics. A walking humanoid must continuously solve a high-dimensional optimization problem: 20+ degrees of freedom, under-actuation during single-support phases, dynamic balance constraints, and environmental contact uncertainties.
Existing humanoid platforms (Boston Dynamics Atlas, Honda ASIMO, KAIST HUBO) are multi-million-dollar research systems inaccessible to most labs. Open-source alternatives like the ROBOTIS OP3 lower the cost but still require integration of walking pattern generators, whole-body controllers, and low-level firmware — a significant software engineering challenge.
The Mecata Humanoid project at Mecata Foundation tackles this integration challenge. It builds a complete ROS 2 control stack from walking pattern generation through to servo-level firmware, aiming to make bipedal walking research accessible on affordable hardware.
The System
The control architecture follows the standard humanoid robotics pipeline, implemented entirely in ROS 2 Humble for real-time performance and modular composition. At the top, a walking pattern generator computes footstep locations and center-of-mass trajectories using simplified models like the Linear Inverted Pendulum Model (LIPM) or Divergent Component of Motion (DCM).
The whole-body controller (WBC) layer solves a quadratic programming problem at each control cycle (typically 200-500 Hz): given desired task-space objectives (foot positions, center of mass, end-effector poses), compute joint torques that satisfy dynamic constraints (equations of motion, joint limits, torque bounds, contact constraints). The WBC formulation uses a hierarchical task-priority approach — balance commands take priority over foot placement, which takes priority over arm posture.
Below the WBC, a hardware interface layer translates joint torque or position commands into servo-level protocols. This layer abstracts communication buses (UART, CAN, EtherCAT depending on servo hardware) and handles sensor feedback: joint positions, velocities, torques from servo encoders, and the 6-DOF IMU for base orientation estimation.
The low-level firmware runs on dedicated motor controllers (likely STM32-based) receiving commands over CAN bus and executing local PID control loops at 1+ kHz. A state estimator fuses IMU data with joint encoder feedback and foot contact sensors to maintain a consistent robot state for the WBC.
Results
The robot demonstrates stable bipedal walking on flat ground using a LIPM-based walking pattern generator with ZMP (Zero Moment Point) feedback. The WBC resolves the redundancy between balance and foot placement objectives, keeping the robot upright even when footstep timing is perturbed.
The modular ROS 2 architecture allows researchers to swap walking pattern generators (LIPM vs. DCM vs. Capture Point), experiment with different WBC formulations (weighted vs. hierarchical), and test new state estimation approaches without modifying the rest of the stack. This plug-and-play design is the project's key contribution — not a single algorithm, but a composable framework for bipedal locomotion research.
Active development at Mecata Foundation focuses on push recovery, uneven terrain walking, and integration with vision-based perception for autonomous navigation in human environments.
The Code
The ROS 2 control stack is written in C++ for real-time performance. Key packages include: `wbc_controller` (QP-based whole-body control solver using Eigen and qpOASES or OSQP), `walking_pattern_generator` (LIPM/DCM footstep planner), `state_estimator` (Kalman filter fusing IMU and encoder data), and `hardware_interface` (CAN/UART drivers for servo communication).
Python nodes handle non-real-time tasks: trajectory visualization in RViz, data logging and analysis, parameter tuning interfaces, and simulation bridge to Gazebo or MuJoCo for software-in-the-loop testing before hardware deployment.
Future work includes adding reinforcement learning-based walking policies as an alternative to model-based WBC, integrating foot contact sensors (FSR arrays) for ground reaction force feedback, and developing teleoperation interfaces for human-guided locomotion.
Related
The Mecata Humanoid extends Sigit's robotics work from educational platforms (Pixy Robot, Kinova ColorSort) to full humanoid locomotion. It combines embedded firmware expertise (from IoT and MPPT projects) with ROS 2 control theory — bridging the gap between microcontroller-level hardware and whole-body motion planning.