-
Notifications
You must be signed in to change notification settings - Fork 6
Home
edrumwri edited this page Oct 4, 2015
·
16 revisions
[Installation instructions](Installation instructions)
Ravelin is a C++ library for rigid body and multi-rigid body kinematics and dynamics.
- Reference points for rigid bodies need not be collocated with centers-of-mass
- Composite Rigid Body Algorithm and Featherstone Articulated Body Algorithm implementations
- Rigid body kinematics and dynamics computation, including poses, velocities, accelerations, inertias, momenta, and forces
- Computes Jacobians and generalized forces, velocities, and inertias
- Both explicit and implicit joint constraints supported: dynamics computable in minimal coordinates, absolute coordinates, or both (useful for mechanisms with kinematic loops)
- Frame checking: operations on kinematic and dynamic quantities defined in different frames throw exceptions
- Results from all dynamics algorithms have been verified against Featherstone's MATLAB-based code
Ravelin wraps BLAS and LAPACK in place of Eigen.
- Matrix/vector arithmetic and linear algebra through very reliable BLAS and LAPACK libraries
- Efficient block operations on matrices and vectors (similar to Eigen's segment() and block() functions)
- Minimum templated C++ code for fast compilation
- Iterators, which provides compatibility with STL and Boost algorithms
- Straightforward semantics on memory allocation toward programming for real-time systems
You should use Ravelin if one or more of the following applies to you:
- You want to reduce programming errors by catching frame (pose) mismatches
- You want to use the most robust matrix/vector arithmetic and linear algebraic implementation available
- You are computing robot kinematics or dynamics
- You are programming for real-time systems (like control loops) and need to ensure that memory is not allocated during your real-time code