Skip to main content
A TurtleBot is a small differential-drive robot: two driven wheels on one axle and caster balls that keep it level. In this assignment you derive how such a robot moves, answer five short questions about the model, and test it against a physics simulation of a TurtleBot3 Waffle, the robot you drive in the class repository. The notebook opens with a Background section that gives everything the questions use, so you do not need any earlier kinematics. The simulation runs on Newton, an open-source physics engine built on NVIDIA Warp, with contact physics from MuJoCo Warp. You write only the kinematics. The notebook provides the robot and the simulation.

Grading

Each coded question is graded on its check cell, which prints passed when your code is correct, and on one sentence about what you see. The sentence is worth 5 points; the code is worth the rest.

Further reading

The Background section of the notebook is enough to answer every question. Lynch and Park, Modern Robotics, covers the same material in more depth:

What you will need

The default Colab runtime is enough: the simulation runs on a CPU, and it uses a GPU if one is available. The first cell installs the simulation libraries. On the CPU runtime the whole notebook takes about ten minutes, almost all of it simulation, and the first simulation takes about two minutes because the simulator compiles it first. A GPU runtime is much faster.

Assignment notebook

Open Notebook in Colab

TurtleBot kinematics notebook

What you hand in

  • The notebook, with the output from every cell saved.
  • The recordings folder the notebook creates. It holds turtlebot.rrd, a recording of your simulation made with Rerun, an open-source visualization tool for robotics data. You can check it in the Rerun web viewer before you submit.

Submitting

Commit the notebook and the recordings folder to your private clone of the class repo under assignments/turtlebot-kinematics. Save the output from every cell before you commit. Submit the complete GitHub URL for that directory to Canvas. Do not submit the repository root.
Found an error on this page? Report an issue.