Main features

  • Spatial algebra
    • SE3
    • Motion
    • Force
    • Inertia
  • Model & Data

    algorithm(model, data, arg1, arg2, ...)
    
    • A model can be created using the C++ API or loaded from an external file, which can be either URDF, Lua (following the RBDL standard) or Python.
  • Supported kinematic models
    • Revolute
    • Prismatic
    • Spherical
    • Translation
    • Planar
    • Free-floating
    • Composite
  • Dealing with Lie group geometry
  • Geometric models & FCL library
  • Main algorithms
    • Forward kinematics
    • Kinematic Jacobian
    • Inverse dynamics (RNEA): The algorithm first performs a forward pass (equivalent to second-order kinematics). It then performs a backward pass, computing the wrenches transmitted along the structure and extracting the joint torques needed to obtain the computed link motions.
    • Joint space inertia matrix (CRBA)
    • Forward dynamics (ABA)
    • Constrained forward dynamics
    • Impulse dynamics
    • Inverse of the joint space inertia
    • Centroidal dynamics
  • Analytical derivatives
  • Automatic differentiation
    • ADOL-C
    • CasADi
    • CppAD
  • Source code generation
    • CppADCodeGen

Rigid Bodies

Using quaternions for an $SO(3)$.

Joint dynamics

computeAllTerms

  • pinocchio::forwardKinematics
  • pinocchio::crba
  • pinocchio::nonLinearEffects
  • pinocchio::computeJointJacobians
  • pinocchio::centerOfMass
  • pinocchio::jacobianCenterOfMass
  • pinocchio::ccrba
  • pinocchio::computeKineticEnergy
  • pinocchio::computePotentialEnergy
  • pinocchio::computeGeneralizedGravity

References