Gallery

If you have an example from your own work that you would like to showcase, please edit doc/_pages/gallery.md directly and submit a pull request!

Underactuated Robotics

Drake is being used to teach Underactuated Robotics at MIT. The course textbook has numerous examples of modeling, controlling, and analyzing many of the canonical problems in dynamics and control for robotics.

Manipulation

The robotics team at TRI is exploring learning and by combining Drake with external high-fidelity rendering, we can generate highly realistic, both physically and visually, machine-learning training data to further our research.

The Robotics team at TRI is working hard to close the gap between simulation and reality. For manipulation, one important piece is accurate simulation of rigid-body contact.

Source Code: drake/examples/kuka_iiwa_arm

Manipulation class at MIT

Drake is being used to teach a new course on manipulation at MIT. The course software and materials give a complete autonomous manipulation pipeline, including deep and geometric perception, planning, and control. Here is a highlight video of the class “manipulation station” (the three views are rendered from the RGB-D cameras mounted on the station):

Source Code: drake/examples/manipulation_station

Trajectory Optimization

Michael Posa and the UPenn DAIR lab have an implementation of DIRCON, as described in

Michael Posa, Scott Kuindersma, Russ Tedrake. “Optimization and Stabilization of Trajectories for Constrained Dynamical Systems.” ICRA, 2016.

Source Code: https://github.com/DAIRLab/dairlib/tree/master/systems/trajectory_optimization/dircon

Task and Motion Planning

Caelan Garrett has examples using Drake in his STRIPStream/PDDLStream task-and-motion-planning framework.

Source Code: https://github.com/caelan/pddlstream#drake

Modelling Closed Loop Topologies

Drake has examples of combining its rigid body kinematic tree dynamics with penalty forces to model a closed loop topology, such as a four bar linkage.

Four Bar Source Code: https://github.com/RobotLocomotion/drake/tree/master/examples/multibody/four_bar

Strandbeest Source Code: https://github.com/RobotLocomotion/drake/tree/master/examples/multibody/strandbeest

Hydroelastic contact between non-convex meshes

Drake has an example of modeling hydroelastic contact between non-convex meshes.

Source Code: drake/examples/hydroelastic/python_nonconvex_mesh

Third Party Documentation / Tutorials

Greg’s Tutorial (Python)

Greg Izatt put together a nice tutorial demonstrating how to put together a pretty complete simulation of kuka iiwa picking up a block with dynamics, planning, control, and depth sensing, all through the pydrake interface.

Source Code: https://github.com/gizatt/drake_periscope_tutorial

Zhaoyuan’s Tutorial (Drake concepts, C++ examples)

Zhaoyuan Gu learned Drake from scratch as a 2019 TRI summer intern and wrote this beginner’s tutorial: https://drake.guzhaoyuan.com

Shoe simulation

A great simulation of a robot tying shoe laces. Implemented using pydrake with the laces represented with a piecewise linear approximation.

Authored by Michelle Tan, with help from Terry Suh, Mark Peterson, Russ Tedrake, and the team at TRI

Interactive visualization: https://mntan3.github.io/

Source Code: https://github.com/RobotLocomotion/gym/tree/master/gym/envs/robot_locomotion_group/drake/shoe

AcroMonk: An underactuated brachiation robot that uses Pydrake for trajectory optimization and stabilization

AcroMonk is an underactuated brachiation robot that is able to brachiate over a horizontally laid ladder with a passive gripper on the real system. Taking advantage of Pydrake, we have generated optimal trajectories and further stabilized them using Time-Varying Linear Quadratic Regulator (TVLQR). The project is open-sourced to support education and research of brachiation with easy to implement hardware and the work is published in the journal of IEEE Robotics and Automation Letters 2023 (IEEE, arXiv).

tvlqr

Source Code: AcroMonk

brom_drake: A Helper Library for Pydrake (Python)

brom_drake is a pip-installable library that simplifies the process of debugging algorithms in pydrake. Some of its notable features are:

  • The DiagramWatcher object which will automatically add loggers to your Drake diagram, simplifying the process of monitoring “what’s going on” between systems. (By default, the data from each of these loggers will get saved locally to your machine after the simulation is run.)
  • The drakeify_my_urdf function which will use open-source tools to convert many Drake-incompatible .urdf files into ones that are compatible with Drake.
  • Production objects which are partially complete scenes that you can use to debug common algorithms (for example, motion planning algorithms).

Source Code: https://github.com/kwesiRutledge/brom_drake-py