Robot simulators

Choose a robot type

Every simulator shows how the drive works: which motors there are, which PWM and direction the H-bridges get, and how the robot moves as a result. Drive with the buttons or with W/A/S/D. All simulators share the same obstacle course, so you can compare them.

API documentation · every robot and every command, from Python or live from the browser →

Getting started · install the tools, run the simulators locally and write your first API program, with or without a GPU →

Tutorial 1 · reinforcement learning: the fastest lap through the corridor →
Tutorial 2 · learning to drive the ε track from the robot's camera →
Tutorial 3 · YOLO segmentation finds the path, RL keeps the robot in the middle →
Tutorial 4 · a sorting job: the quadruped learns which skill to use when →
Tutorial 5 · the robot arm learns to touch a point: SAC + Hindsight Experience Replay →
Tutorial 6 · the OpenMANIPULATOR-X stands blocks up in a row and learns the right height →
Tutorial 7 · the ROS 2 command line (nodes, topics, services, parameters, actions, launch, bags) on the TurtleBot 4 →
Tutorial 8 · ROS 2 in Python: workspaces, packages, colcon, publishers, services, custom messages, parameters →

Legged robots

Legs instead of wheels (or both): servos, inverse kinematics and balance.

Snake robot

No wheels to drive and no legs: it moves only by changing its shape and letting friction push back.

16

Snake robot

4 to 12 Dynamixel XL430 in a chain

4–12 servospitch + yaw joints3 gaitsservo sliders
Open simulator →

Robot arms

A robot that stays where it is and works with its hands: joints, inverse kinematics, a gripper and a camera at the wrist.

Real robots, real interfaces

Robots you can buy, with their real dimensions, driven only with the commands the real robot accepts: WebRTC or unitree_sdk2 for the Unitree robots, ROS 2 for the TurtleBot 4, ROSbot XL, Leo Rover, Roboworks, UGV Rover, Panther, SUMMIT-XL and RB-KAIROS, the makers' Python libraries or SDKs for the JetBot, JetRacer, XGO, AgiBot D1 and Booster K1, the WebSocket API of the LimX TRON 1 and the OpenCat serial protocol for the Petoi Bittle X. Every button shows the line (Python or ros2) that does the same on the real robot.

25

Leo Rover

Outdoor ROS 2 rover with rocker suspension and four hub motors

ROS 2rocker suspension4 hub motorswide-angle cameraLiDAR add-on
29

JetBot

NVIDIA's Jetson Nano robot kit, driven with the jetbot Python library

Jetson NanoPython2 motorscamera
30

JetRacer

Jetson Nano RC car: NvidiaRacecar steering and throttle in Python

Jetson NanoPythoncar steeringcamera
34

Unitree H2

Full-size 1.82 m humanoid, programmed with unitree_sdk2's high-level API

31 jointsunitree_sdk2FSMarm actions
35

Booster K1

RoboCup kid-size humanoid with the Booster SDK: modes, dances and kicks

22 jointsBooster SDKRoboCupdanceskicks

Who gets over what?

Every simulator has the same obstacle course: pick an obstacle under “Obstacle course” and the robot is put right in front of it. This table is the result of driving each robot straight into each obstacle with its default settings. Click a robot's picture to watch it on the hardest obstacle it gets over, hover over a ✗ to see why it got stuck. Some robots do better after tuning: the humanoid with a higher step height, for example. In the corridor every robot drives by itself (autopilot): robots that can move sideways slide round the corner, robots that turn on the spot turn there, car-like robots steer through the bend.

Robot1. 1 cm cable2. 3 cm threshold3. 6 cm step4. 12 cm curb5. Stairs 3 × 7 cm6. 15° ramp7. 30° ramp8. Gaps 5 + 12 cm9. Gravel10. 60 cm corridor + turnScore
✓✓✗✗✗✓✗✓✓✓6/10
✓✓✗✗✗✓✗✓✓✗5/10
✓✗✗✗✗✓✗✗✓✓4/10
✓✗✗✗✗✓✗✗✗✓3/10
✓✗✗✗✗✓✗✗✗✓3/10
✓✗✗✗✗✓✗✗✓✓4/10
✓✓✓✗✓✓✓✓✓✓9/10
✓✓✗✗✗✓✓✗✓✓6/10
✓✗✗✗✗✓✗✗✗✓3/10
4WD
✓✗✗✗✗✓✓✗✓✓5/10
✓✓✓✗✓✓✓✓✓✓9/10
✓✗✗✗✗✗✗✗✗✓2/10
✓✓✓✓✓✓✓✗✓✓9/10
✓✓✗✗✗✓✓✗✓✓6/10
✓✓✓✓✓✓✓✓✓✗9/10
✓✓✓✓✓✓✓✓✓✓10/10
✓✗✗✗✗✓✗✓✓✓5/10
✗✗✗✗✗✗✗✓✗✓2/10
✓✗✗✗✗✗✗✓✗✓3/10
✓✗✗✗✗✓✗✓✓✓5/10
✓✓✓✓✓✓✓✗✓✓9/10
✓✓✓✗✓✓✗✓✓✓8/10
✓✗✗✗✗✗✗✗✗✓2/10
✓✓✓✓✓✓✓✓✓✗9/10
✓✓✓✗✓✓✗✓✓✓8/10
✓✗✗✗✗✓✗✗✓✓4/10
✓✓✓✗✓✓✓✓✓✓9/10
✓✗✗✗✗✓✗✗✓✓4/10
✓✗✗✗✗✓✗✗✓✗3/10
✓✗✗✗✗✓✗✗✗✓3/10
✓✓✗✗✗✓✗✗✓✓5/10
✗✗✗✗✗✓✗✗✗✓2/10
✓✗✗✗✗✓✗✗✗✓3/10
✓✗✗✗✗✓✗✗✓✓4/10
✓✓✓✓✓✓✓✓✓✗9/10
✓✓✓✓✓✓✓✓✓✗9/10
✓✓✓✓✓✓✓✓✓✓10/10
✓✓✓✓✓✓✗✓✓✓9/10
✓✓✗✗✗✓✗✓✓✓6/10
✓✓✓✓✓✓✓✓✓✓10/10
✓✓✗✗✗✓✓✓✓✓7/10
✓✓✓✓✓✓✓✓✓✗9/10
✓✓✓✗✓✓✓✓✓✗8/10
✓✓✗✗✗✗✗✓✓✗4/10
✓✓✗✗✗✓✗✓✓✗5/10