Build Status

RobotDynamics.jl

This purpose of this package is to provide a common interface for calling systems with forced dynamics, i.e. dynamics of the form xdot = f(x,u,t) where x is an n-dimensional state vector and u is an m-dimensional control vector.

A model is defined by creating a custom type that inherits from AbstractModel and then defining a custom Dynamics.dynamics function on your model, along with Base.size that gives n and m. With this information, Dynamics.jl provides methods for computing discrete dynamics as well as continuous and discrete time dynamics Jacobians.

This package also supports dynamics of rigid bodies, whose state is defined by a position, orientation, and linear and angular velocities. This package provides methods that correctly compute the dynamics Jacobians for the 3D attitude representions implemented in DifferentialRotations.jl.

Internally, this package makes use of the Knotpoint type that is a custom type that simply stores the state and control vectors along with the current time and time step length all together in a single type.