RigidBodyDynamics.jl is a rigid body dynamics library in pure Julia. It aims to be user friendly and performant, but also generic in the sense that the algorithms can be called with inputs of any (suitable) scalar types. This means that if fast numeric dynamics evaluations are required, a user can supply
Float32 inputs. However, if symbolic quantities are desired for analysis purposes, they can be obtained by calling the algorithms with e.g.
SymPy.Sym inputs. If gradients are required, e.g. the
ForwardDiff.Dual type, which implements forward-mode automatic differentiation, can be used.
See the latest stable documentation for a list of features, installation instructions, and a quick-start guide. Installation should only take a couple of minutes, including installing Julia itself. The documentation includes various usage examples, starting with a quickstart guide. These examples are also runnable locally as Jupyter notebooks; see the readme in the examples directory for instructions.
RigidBodyDynamics.jl is part of the JuliaRobotics GitHub organization.
Packages built on top of RigidBodyDynamics.jl include:
- RigidBodySim.jl - simulator built on top of RigidBodyDynamics.jl.
- MeshCatMechanisms.jl - 3D visualization of articulated mechanisms using MeshCat.jl (built on top of three.js) and RigidBodyDynamics.jl.
- RigidBodyTreeInspector.jl - 3D visualization of RigidBodyDynamics.jl
Mechanisms using Director.
- MotionCaptureJointCalibration.jl - kinematic calibration for robots using motion capture data, built on top of RigidBodyDynamics.jl
- QPControl.jl - quadratic-programming-based robot controllers implemented using RigidBodyDynamics.jl.
- StrandbeestRobot.jl - simulations of a 12-legged parallel walking mechanism inspired by Theo Jansens's Strandbeest using RigidBodyDynamics.jl.
Talks / publications
- May 20, 2019: paper at ICRA 2019: Julia for robotics: simulation and real-time control in a high-level programming language.
- August 10, 2018: Robin Deits gave a talk at JuliaCon 2018 demonstrating RigidBodyDynamics.jl and related packages.
- August 23, 2017: a video of a JuliaCon 2017 talk given by Robin Deits and Twan Koolen on using Julia for robotics has been uploaded. It includes a brief demo of RigidBodyDynamics.jl and RigidBodyTreeInspector.jl. Note that RigidBodyDynamics.jl performance has significantly improved since this talk. The margins of the slides have unfortunately been cut off somewhat in the video.