RigidBodySim
RigidBodySim provides Julia tools for simulation and visualization of systems of interconnected rigid bodies.
RigidBodySim is mainly built on top of the following packages:
- RigidBodyDynamics for construction of rigid body dynamics mechanisms and evaluation of their dynamics.
- DifferentialEquations packages, for numerical integration of the differential equations.
- MeshCatMechanisms for visualization.
RigidBodySim does not attempt to abstract away its dependence on these packages, as doing so would necessarily expose only a subset of their functionality, and would require users familiar with these packages to learn yet another API. Instead, RigidBodySim simply plugs into existing functionality, providing convenience methods and extensions. Only this additional functionality is documented here, and we refer to the documentation for these packages for further information:
- RigidBodyDynamics:
- DifferentialEquations:
- MeshCatMechanisms: Readme
Functionality
RigidBodySim currently provides the following key features:
- Convenient creation of
DiffEqBase.ODEProblem
s given aRigidBodyDynamics.MechanismState
and, optionally, a controller. - Integration with MeshCatMechanisms for visualization, both during simulation and after. The visualizer window can also control (currently, pause or terminate) the simulation.
- Easy simulation of a digital controller running at a fixed rate (see PeriodicController).
Performance
Performance is fairly good. For example, we have used RigidBodySim to perform a 10-second simulation of the humanoid robot Atlas (v5) standing on flat ground with a controller running at 100 Hz in 13 seconds with the Tsitouras 5/4 variable-step integrator on a 3GHz machine.
Installation
Installing Julia
Download links and more detailed instructions are available on the Julia website. The latest release of RigidBodySim.jl requires at least version 0.7 of Julia.
Do not use apt-get
or brew
to install Julia, as the versions provided by these package managers tend to be out of date.
Installing RigidBodySim
To install the latest tagged release of RigidBodySim, simply run
import Pkg
Pkg.add("RigidBodySim")
To check out the master branch and work on the bleeding edge (generally, not recommended), additionally run
Pkg.checkout("RigidBodySim")
First steps
To load the package, use the command:
using RigidBodySim
It is recommended to follow the quick start guide to get up to speed.
Contents
Citing this library
@misc{rigidbodysimjl,
author = "Twan Koolen, Robin Deits, and contributors",
title = "RigidBodySim.jl",
year = 2016,
url = "https://github.com/JuliaRobotics/RigidBodySim.jl"
}