Skip to content

Pinocchio 3.0.0

Compare
Choose a tag to compare
@jorisv jorisv released this 27 May 20:00
· 531 commits to master since this release
v3.0.0
fbc93a6

What's Changed

Added

Automatic differentiation

  • Full support of Casadi in the main library by @jcarpent and @ManifoldFR
  • Full support of Casadi for Python bindings by @jcarpent
  • Full support of Boost.Multiprecision in the main library by @jcarpent
  • Full support of Boost.Multiprecision for Python bindings by @jcarpent
  • Full support of CppAD and CppADCodeGen in the main library by @jcarpent
  • Full support of CppAD and CppADCodeGen for Python bindings by @jcarpent and @proyan

Core features

  • Full support of constrained dynamical systems by @jcarpent
  • Full support of derivatives of constrained dynamical systems by @jcarpent and @proyan
  • Extended algorithms for constrained dynamics: constrained ABA, PV solvers, etc. by @jcarpent and @AjSat
  • Add frictional contact solvers (PGS, ADMM) by @jcarpent
  • Add contact inverse dynamics by @quentinll
  • Full support of broadphase algorithms in Pinocchio by @jcarpent
  • New joint supports (Helicoidal, Universal) by @fabinsch and @MegMll
  • Add new algorithms for supporting Delassus factorizations for sparse, dense and tree-based systems by @jcarpent
  • Add full OpenMP support for many algorithms (ABA, RNEA, collision detection, etc.) by @jcarpent
  • Full support of GeometryModel, GeometryObject serialization by @jcarpent
  • Extended support of Meshcat by @jcarpent, @ManifoldFR and @jorisv
  • Extended testing and support of Lie groups operations by @jcarpent and @ManifoldFR
  • Full support of AVX512 and AVX2 vectorization for Python bindings by @jcarpent
  • Full support of the robot armature in RNEA, CRBA and ABA
  • Extended formulation of CRBA and ABA using WORLD convention for reduced computational burden in the derivative algorithms

Parsers

Packaging

  • Full support of template instantiation by @fabinsch and @jorisv
  • Enhance support for Windows-based systems by @jorisv
  • Splitting of the Pinocchio into sub-library for isolation by @jorisv

Compatibility

  • Add PINOCCHIO_ENABLE_COMPATIBILITY_WITH_VERSION_2 define to activate compatibility with Pinocchio 2 API

Changed

C++

  • Change minimum required version of C++ to C++11. Check for compatibility here: https://en.cppreference.com/w/cpp/compiler_support/11
  • Replace pinocchio::BiasZeroTpl by pinocchio::MotionZeroTpl
  • Replace pinocchio::fusion::JointVisitorBase by pinocchio::fusion::JointUnaryVisitorBase
  • Replace pinocchio::fusion::push_front by pinocchio::fusion::append
  • Replace pinocchio::regressor::computeStaticRegressor by pinocchio::computeStaticRegressor
  • Replace pinocchio::jointJacobian by pinocchio::computeJointJacobian
  • Replace pinocchio::frameJacobian by pinocchio::computeFrameJacobian
  • Replace pinocchio::framesForwardKinematics by pinocchio::updateFramePlacements
  • Replace pinocchio::kineticEnergy by pinocchio::computeKineticEnergy
  • Replace pinocchio::potentialEnergy by pinocchio::computePotentialEnergy
  • Replace pinocchio::computeCentroidalDynamics by pinocchio::computeCentroidalMomentum and pinocchio::computeCentroidalMomentumTimeVariation
  • Replace pinocchio::centerOfMass(const ModelTpl&, DataTpl&, int, bool) by pinocchio::centerOfMass(const ModelTpl&, DataTpl&, KinematicLevel, bool)
  • Replace pinocchio::copy(const ModelTpl&, const DataTpl&, DataTpl&, int) by pinocchio::copy(const ModelTpl&, const DataTpl&, DataTpl&, KinematicLevel)
  • Replace pinocchio/algorithm/dynamics.hpp by pinocchio/algorithm/constrained-dynamics.hpp
  • Change the order of arguments in some of pinocchio::GeometryObject's constructors
  • Deprecate pinocchio/algorithm/parallel/geometry.hpp moved at pinocchio/collision/parallel/geometry.hpp
  • Deprecate pinocchio/spatial/fcl-pinocchio-conversions.hpp moved at pinocchio/collision/fcl-pinocchio-conversions.hpp
  • Deprecate pinocchio/parsers/sample-models.hpp moved at pinocchio/multibody/sample-models.hpp
  • Deprecate pinocchio/math/cppad.hpp moved at pinocchio/autodiff/cppad.hpp
  • Deprecate pinocchio/math/cppadcg.hpp moved at pinocchio/autodiff/cppadcg.hpp
  • Deprecate pinocchio/math/casadi.hpp moved at pinocchio/autodiff/casadi.hpp
  • Deprecate pinocchio::FrameTpl::parent replaced by pinocchio::FrameTpl::parentJoint
  • Deprecate pinocchio::FrameTpl::previousFrame replaced by pinocchio::FrameTpl::parentFrame
  • Deprecate pinocchio/algorithm/contact-dynamics.hpp algorithms replaced by pinocchio/algorithm/constrained-dynamics.hpp

Python

  • Replace pinocchio.utils.skew by pinocchio.skew
  • Replace pinocchio.utils.se3ToXYZQUAT by pinocchio.SE3ToXYZQUATtuple
  • Replace pinocchio.utils.XYZQUATToSe3 by pinocchio.XYZQUATToSE3
  • Replace pinocchio.robot_wrapper.RobotWrapper.frameClassicAcceleration by pinocchio.robot_wrapper.RobotWrapper.frameClassicalAcceleration
  • Replace pinocchio.robot_wrapper.RobotWrapper.jointJacobian by pinocchio.robot_wrapper.RobotWrapper.computeJointJacobian
  • Replace pinocchio.robot_wrapper.RobotWrapper.frameJacobian by pinocchio.robot_wrapper.RobotWrapper.computeFrameJacobian
  • Replace pinocchio.robot_wrapper.RobotWrapper.initDisplay by pinocchio.robot_wrapper.RobotWrapper.initViewer
  • Replace pinocchio.robot_wrapper.RobotWrapper.loadDisplayModel by pinocchio.robot_wrapper.RobotWrapper.loadViewerModel
  • Replace pinocchio.deprecated.se3ToXYZQUATtuple by pinocchio.SE3ToXYZQUATtuple
  • Replace pinocchio.deprecated.se3ToXYZQUAT by pinocchio.SE3ToXYZQUAT
  • Replace pinocchio.deprecated.XYZQUATToSe3 by pinocchio.XYZQUATToSE3
  • Replace pinocchio.deprecated.buildGeomFromUrdf(model, filename, [str]) by pinocchio.buildGeomFromUrdf(model, filename, type, package_dirs, mesh_loader)
  • Replace pinocchio.rpy.npToTTuple by pinocchio.utils.npToTTuple
  • Replace pinocchio.rpy.npToTuple by pinocchio.utils.npToTuple
  • Replace pinocchio.jacobianSubtreeCoMJacobian by pinocchio.jacobianSubtreeCenterOfMass

Removed

C++

  • Remove pinocchio::setGeometryMeshScales
  • Remove some pinocchio::forwardDynamics signatures
  • Remove some pinocchio::impulseDynamics signatures

Python

  • Remove pinocchio.utils.cross
  • Remove pinocchio.robot_wrapper.RobotWrapper.initMeshcatDisplay
  • Remove pinocchio.deprecated.setGeometryMeshScales by pinocchio

Full Changelog: v2.7.1...v3.0.0