A simulation library for Agility Robotics' Cassie robot using MuJoCo
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example Updated cassie system library Jun 19, 2018
include Updated cassie system library Jun 19, 2018
model Initial commit May 18, 2018
src Updated cassie system library Jun 19, 2018
.clang_complete Initial commit May 18, 2018
.gitignore Library and examples run on Windows Jun 6, 2018
Makefile Library and examples run on Windows Jun 6, 2018
README.md Library and examples run on Windows Jun 6, 2018

README.md

cassie-mujoco-sim

A simulation library for Agility Robotics' Cassie robot using MuJoCo.

Developed and tested on Ubuntu 16.04. Also compiles for Windows using mingw-w64.

To build the shared library:

  1. Install libglfw3-dev
  2. Clone this repository
  3. Download mjpro150_linux.zip from roboti.us
  4. Put mjpro150 in the cassie-mujoco-sim directory
  5. make

To cross-compile for Windows, use make PLATFORM=WIN.

A directory named release will be created containing the files needed to use the library with a C interface. A Python interface can be generated with make ctypes, which requires ctypeslib2 to be installed.

A license file for MuJoCo (mjkey.txt) is required to run the simulation. The library also includes functions that can be used for communicating with Cassie over UDP, and MuJoCo is not required if only these functions are called.

To build and run the examples:

  1. Place mjkey.txt in the cassie-mujoco-sim directory
  2. make test
  3. Run the examples in the test directory

The examples include cassiesim, which simulates a physical Cassie robot controlled over UDP, and cassiectrl, a null controller operating over UDP. The file cassietest.c is a minimal example of running the simulation, and cassietest.py demonstrates controlling the simulated robot in Python.

Documentation for the simulation functions is included in include/cassiemujoco.h. The file header/udp.h declares convenience functions for creating a UDP socket and obtaining the most recent packet. The remaining header files include functions for packing and unpacking structures used to communicate with Cassie into UDP packets and for simulating Cassie's internal safety mechanisms and state estimation processes.