Legs: lessons
Walking without falling, estimating where the robot is, and reaching the goal along a collision-free path. Covers locomotion policies, LiDAR and SLAM, and Nav2.
On the robot
No lessons are published yet. Here are the planned topics.
Overview
Update rates at each layer from a goal pose to joint torques, wheels versus legs, the two 'current positions' of odom and map
-
From a goal position to joint torques: loop rates at each layer and the difference between wheels and legsComing soon
The layers that turn a goal into a path, then cmd_vel, target joint angles and torques, the rate each layer runs at, and how wheels differ from legs.
-
A robot has two 'current positions': odom and mapComing soon
Why a robot keeps continuously drifting odometry separate from map coordinates that occasionally jump.
Basics
Running the G1 locomotion policy in sim, processing IMU and LiDAR data, building a 2D map with slam_toolbox, reaching a goal with Nav2
-
Running a G1 locomotion policy in a simulator: observations, target joint angles, PD control and decimationComing soon
The observations the policy reads and the target joint angles it outputs every 20 ms, the one-line PD control law, and decimation.
-
Processing sensor data for mobility: IMU and LiDARComing soon
Gyro drift, complementary filters, 3D LiDAR point clouds and deskewing.
-
Building and saving a 2D map with slam_toolbox: occupancy grids and map file structureComing soon
Occupancy grids, the fields in a map file, and a comparison with Cartographer.
-
Navigating to a goal with Nav2: AMCL, costmaps, the planner and the controllerComing soon
AMCL, costmaps, planners and controllers, behavior trees, and action feedback and cancellation.
Advanced
RL for locomotion policies, sim2real for locomotion policies, state estimation fusing the IMU with leg kinematics, SLAM and Nav2 internals
-
How locomotion policies learn: rewards, curricula and parallel simulationComing soon
An ablation that turns off reward terms one at a time, starting from the baseline locomotion policy built in the simulator basics section.
-
Why a robot that walks in simulation falls on real hardwareComing soon
Reading the target joint angle as the equilibrium point of a virtual spring, and the limits imposed by gains, latency, noise and friction.
-
State estimation for legged robots: an EKF fusing IMU and leg kinematicsComing soon
The zero-velocity assumption for the stance foot, the EKF, and how the estimate breaks down when a foot slips.
-
Inside SLAM: scan matching, pose graphs and loop closureComing soon
The front-end and back-end structure, LiDAR-inertial odometry, and a comparison with visual SLAM.
-
Inside Nav2: costmaps, the planner-controller split and behavior treesComing soon
The inflation cost function, the DWB, RPP and MPPI controllers, and changing the replanning rate with a behavior tree.
In practice
Map editing and diagnosing localization failures, deciding when the robot has arrived and switching to arm tasks, deploying a locomotion policy and Nav2 on a real legged robot
-
When the map and the world disagree: map editing, keepout zones and localization failureComing soon
When to edit the map versus use keepout and speed filters, and how to diagnose AMCL localization failures (general principles for single-floor maps).
-
Arrival criteria: goal tolerance, re-perception after stopping and switching to the arm taskComing soon
An error budget for arrival, re-perception once the robot has stopped, and deciding whether a fine-approach stage is needed.
-
Deploying a locomotion policy and Nav2 on a real legged robotComing soon
Verifying the joint mapping, testing with the robot suspended, Nav2 settings matched to velocity-tracking limits, and collision_monitor, with a simulator as the fallback when no robot is available.