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. See the notebooks directory for some usage examples.
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.
- August 17, 2018: tagged version 1.0.0. RigidBodyDynamics.jl will adhere to semantic versioning from this point on.
- August 10, 2018: Robin Deits gave a talk at JuliaCon 2018 demonstrating RigidBodyDynamics.jl and related packages.
- August 4, 2018: tagged version 0.9.0.
- July 10, 2018: tagged version 0.8.0. Drops support for Julia 0.6. Supports Julia 0.7 with no deprecation warnings (requires at least Julia 0.7.0-beta.105, does not work on 0.7.0-beta). Note that a few example notebooks don't work yet because of additional dependencies that haven't been updated for Julia 0.7. Also note the significant performance improvements (e.g., ~32% for
- July 9, 2018: tagged version 0.7.0. Supports Julia 0.7 (with some deprecation warnings). This is the last version to support Julia 0.6.
- May 14, 2018: tagged version 0.6.1.
- April 26, 2018: tagged version 0.6.0.
- March 1, 2018: tagged version 0.5.0.
- September 20, 2017: tagged version 0.4.0.
- 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.
- August 22, 2017: tagged version 0.3.0. Drops Julia 0.5 support.
- June 18, 2017: tagged version 0.2.0. Supports Julia 0.6. This is the last version to support Julia 0.5.
- March 20, 2017: tagged version 0.1.0.
- February 16, 2017: tagged version 0.0.6.
- February 14, 2017: tagged version 0.0.5.
- December 12, 2016: tagged version 0.0.4.
- December 6, 2016: tagged version 0.0.3.
- October 28, 2016: tagged version 0.0.2.
- October 24, 2016: tagged version 0.0.1.