An 18-DoF humanoid biped built end-to-end by the BUAA Robotics Team across two hardware iterations — mechanical design, embedded electronics, ROS control stack, an improved 3D-LIPM gait planner, and a particle-filter visual-localization module that corrects gait-odometry drift. 2nd Prize (top-4), RoboCup Asia-Pacific Championship. This project led directly to my direct-entry Ph.D. offer.
Walking gait test (left) with real-time trunk / flying-foot trajectory tracking, and RViz visualization (right) showing the 18-DoF joint state stream from onboard IMU + encoders.
Humanoid bipeds can operate in the unstructured environments where humans live — service, medical, emergency-response. Existing platforms, however, remain limited in interactivity and in adaptation to environmental change, and their ability to complete tasks in complex environments is still lacking. BRBOTS addresses these bottlenecks with a fully in-house design across the entire stack.
The BRBOTS system integrates: (i) a decision-tree-based behavior management system; (ii) an online gait generator based on an improved 3D inverted-pendulum model; (iii) a vision and self-localization system combining YOLO-based object detection with particle-filter localization; and (iv) the underlying mechanical design of the head, torso, and lower body.
BRBOTS mechanical design. 18 degrees of freedom distributed across head, torso, arms, and lower body, designed to meet the requirements of stable bipedal walking and onboard autonomy.
The physical robot after assembly.
Two full hardware generations — head, torso, arms and lower-body designed around 18 degrees of freedom with careful hardware selection to balance payload, backlash, and cost. Arms carry two same-axis DoFs for elbow bending and shoulder lifting, mainly used to protect the robot during falls.
Upper body of BRBOTS — torso, arms, and camera-carrying head.
Lower body — hip, knee, and ankle assemblies that drive the biped gait.
Foot design providing the ground-contact footprint needed for stable single-support-phase balancing.
A decision-tree-based behavior manager orchestrates high-level task logic. The system includes a graphical editor for behavior trees, live visualization for runtime monitoring, and an extension mechanism for automatic tree construction from task specifications. The example below shows a local subtree of the soccer-playing controller.
Local structure of the BRBOTS behavior tree — the robot chooses actions from match control signals, vision inputs, and environment perception.
For motion planning we use a simplified kinematic model that captures joint / link coupling without the mechanical detail of the CAD model, and a 3D linear inverted pendulum model on top for real-time gait generation.
Simplified kinematic model used for online planning.
Linear inverted-pendulum model driving the gait engine.
ROS-based motion control system — the gait engine talks to the low-level joint controllers, closed by IMU + encoder feedback.
The perception stack is designed around the RoboCup soccer-field setting. A modified YOLOv5 object detector with a segmentation head recognises the ball and segments the white field lines from the grass background. The segmented white-line point cloud, together with wheel/gait odometry, feeds a particle-filter self-localizer that estimates the robot's pose on the field at 20 Hz.
Semantic segmentation of the field — the vision system parses the ball and the white line landmarks that anchor the particle-filter localizer.
A monocular camera on the robot supplies the white-line point cloud; the particle filter uses these together with the odometry stream. Because the soccer-field environment is non-linear and non-Gaussian, particle filtering fits better than an EKF for state estimation. The pipeline is a standard sample → predict → weight → resample loop, and the final pose estimate is taken as the centroid of the particle swarm.
Particle initialization & prediction. Starting from a known initial pose, we seed particles by adding Gaussian noise so that the filter converges quickly. During prediction, each particle propagates according to the odometry output, the odometry noise, and the covariance of the displacement.
Weighting. Directly matching every visible line-segment point to specific labelled features on the field is too slow to sustain a 20 Hz update. Instead, we (i) transform the visible white-line point cloud into each particle's frame, (ii) look up per-pixel weights from a pre-computed distance-to-nearest-white-line map of the field, (iii) sum the weights over all points, and (iv) normalize across particles. The two figures below show the raw field map (drawn at 1 px : 1 cm) and its blurred distance-map version used for weighting.
Raw field map, drawn at 1 px : 1 cm scale.
Distance-to-nearest-white-line map used as the particle weighting image — brighter pixels sit on/near a line.
Resampling. Importance resampling at 10 Hz (half the filter rate) empirically balances performance and localization quality; running resampling at every update instead was measurably more expensive without noticeably better estimates.
BRBOTS won 2nd Prize (top-4 in China) at the RoboCup Asia-Pacific Championship — the best result in the BUAA Robotics Team's history at the time. The project led directly to my direct-entry Ph.D. offer.