Skip to content

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

  1. 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.

  2. 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

  1. 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.

  2. Processing sensor data for mobility: IMU and LiDARComing soon

    Gyro drift, complementary filters, 3D LiDAR point clouds and deskewing.

  3. 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

  1. 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).

  2. 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.

  3. 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.