Releases: stack-of-tasks/pinocchio
Releases · stack-of-tasks/pinocchio
pinocchio 3.8.0
What's Changed
Added
- Continuous joints can now be parsed as mimic from a urdf file (#2756)
- Beta version of Viser visualizer (#2718)
- Add
pinocchio::graph::ModelGraphclass- Simple API to build a model
- Manage joint offset
- Create a
pinocchio::Modelwith any frame as root frame - Create a
pinocchio::Modelwith any joint as root joint - Reliably merge two models with
pinocchio::graph::mergeGraphsfunction - Reliably fix joints at any configuration with
pinocchio::graph::fixJointsGraph - C++ example
- Python example
- Create a
pinocchio::geometryModelusing apinocchio::graph::ModelGraph - Python example
- Add
pinocchio::graph::ModelConfigurationConverterclass- Convert configuration or tangent vector from two model with different root
- C++ example
- Python example
- CMake: Added support for
BUILD_STANDALONE_PYTHON_INTERFACE(#2714)
Fixed
- Set axis of unaligned mimic joint (#2763)
- Fixed explicit conversions to Scalar type in log.hxx (#2730)
- Check row dimensions of input Jacobians when computing kinematics Jacobian (#2684)
- Fix case joint_id == 0 in getJointKinematicHessian (#2705)
- Fix nvSubtree computation in case a mimic joint is the last joint in the branch (#2707)
- Fix
JointModelMimic::hasConfigurationLimit()to return empty vector instead of delegating to mimicking joint (#2715) - Fix check mimic_subtree_joint (#2716)
- Fix mimic patch for crba (#2716)
- Fix missing argument in exposeDelassus() pybind definition (#2731)
- Fix copy of Model.armature in buidlReducedModel(...) (#2749)
- Add site attached to a fixed body in MJCF parse (#2754)
- Fix Viser visualizer loading DAE files as trimesh.Scene (#2748)
- Normalize CasADi link target across versions (#2743)
Changed
- Disable coal/hpp-fcl warnings when building Pinocchio (#2686)
- CMake: allow use of system example-robot-data (#2728)
Full Changelog: v3.7.0...v3.8.0
pinocchio 3.7.0
What's Changed
Changed
- Change the default branch to
devel(#2666) - Implement
captureImagefor Panda3D visualizer for video recording (#2668) - Drop Ubuntu 20.04 support (#2680)
Full Changelog: v3.6.0...v3.7.0
pinocchio 3.6.0
What's Changed
Fixed
- Fix getters for models and data in
VisualizerPythonVisitor(#2647) - Fix
pinocchio::cholesky::Mvbuild withCppAdscalar (#2659) - Fix
pinocchio::contactABAbuild withcasadiscalar (#2659)
Added
- Add explicit template instantiation for constraint algorithms for
casadi,CppADandCppADCodeGenscalar (#2659) - Add
casadibindings forpinocchio.initConstraintDynamicsandpinocchio.constraintDynamics(#2659)
Full Changelog: v3.5.0...v3.6.0
pinocchio 3.5.0
What's Changed
Added
- Added C++ visualization API,
pinocchio::pinocchio_visualizerstarget (#2574) - Added forward declaration for class
SE3Tpl, and typedefpinocchio::context::SE3(#2574) - Add macros PINOCCHIO_COMMON_TYPEDEF and PINOCCHIO_OPTIONS_DEFAULT (#2574)
- Add mimic joint support to the following algorithms: (#2441)
- Forward kinematics
- Jacobians and frames
- Centroid algorithms (ccrba)
- RNEA
- CRBA
- Reachable workspace
- Add
mimicargument inpinocchio::urdf::buildModelto parse URDF mimic field (default to false) (#2441) - Add
pinocchio::transformJointIntoMimicto turn a joint into a mimic joint andbuildMimicModelto transform multiple joints into mimic joints (#2441) - Add
JointModelBasemethods: (#2441)nvExtendedto get the DoF of the extended modelidx_vExtendedto get the joint index in the extended vector of velocityjointExtendedModel{Cols,Rows,Block}to get joint columns/rows/block in extended model matrixJointMapped{Config,Velocity}Selectorto get mimicked joint configuration/velocity from the mimicking joint
- Add precomputed members in
DataTplto accelerate algorithms on mimic: (#2441)idx_vExtended_to_idx_v_fromRowmimic_subtree_jointmimic_parents_fromRownon_mimic_parents_fromRow
- Add precomputed members in
ModelTplto accelerate algorithms on mimic: (#2441)nvExtendednvExtendedsidx_vExtendedsmimicking_jointsmimicked_jointsmimic_joint_supports
Changed
- Rewrite
JointModelMimicand rename itJointModelMimicTpl, sinceJointModelMimicwasn't working, we don't consider it a breaking change (#2441) - Stop using context::Scalar for GeometryObject(#2441)
- Use Google benchmark in benchmarks (#2607)
Fixed
- Fix
ModelTpl::check()link (#2624) - Add missing Python examples (#2528)
- Fix nominal accuracy check for Quaternion based on the scalar type (#2608)
Full Changelog: v3.4.0...v3.5.0
Pinocchio 3.4.0
What's Changed
Added
- Add parsing meshes with vertices for MJCF format (#2537)
Fixed
- Fix mjcf Euler angle parsing: use xyz as a default value for eulerseq compiler option (#2526)
- Fix variable naming in Python (#2530)
- Fix aba explicit template instantiation (#2541)
- CMake: fix RPATH on macos (#2546)
- Fix aba explicit template instantiation (#2541)
- Fix mjcf parsing of keyframe qpos with newlines (#2535)
- Fix sites parsing for MJCF format (#2548)
- Fix register
std::shared_ptr<{,Geometry}{Model,Data}>in bindings (#2566) - Removed useless uses of
PINOCCHIO_WITH_CXX11_SUPPORT(#2564)
Full Changelog: v3.3.1...v3.4.0
Pinocchio 3.3.1
What's Changed
Added
- Add
pinocchio_python_parsertarget (#2475)
Fixed
- Fix mjcf parsing of armature and of the default tag in models (#2477)
- Fix undefined behavior when using the site attribute in mjcf (#2477)
- Fix the type of image paths when loading textures in the meshcat visualizer (#2478)
- Fix meshcat examples ([#2503])[https://github.com//pull/2503]
- Fix
pinocchio-test-cpp-parallel-geometrywhen built with Coal (#2502) - Fix scaling support for meshcat (#2511)
Changed
- On GNU/Linux and macOS, hide all symbols by default (#2469)
Full Changelog: v3.3.0...v3.3.1
Pinocchio 3.3.0
What's Changed
Added
- Default visualizer can be changed with
PINOCCHIO_VIEWERenvironment variable (#2419) - Add more Python and C++ examples related to inverse kinematics with 3d tasks (#2428)
- Add parsing of equality/connect tag for closed-loop chains for MJCF format (#2413)
- Add compatibility with NumPy 2
__array__API (#2436) - Added argument to let users decide of root joint name when parsing models (urdf, mjcf, sdf) (#2402)
- Allow use of
pathlib.Path | strfor paths in python bindings (#2431) - Add Pseudo inertia and Log-cholesky parametrization (#2296)
- Add Pixi support (#2459)
Fixed
- Fix linkage of Boost.Serialization on Windows (#2400)
- Fix mjcf parser appending of inertias at root joint (#2403)
- Fix unit tests with GCC 13.3 (#2406
- Fix class abstract error for Rviz viewer (#2425)
- Fix compilation issue with MSCV and C++17 (#2437)
- Fix
pinocchio-test-py-robot_wrapperwhen building with SDF and collision support (#2437) - Fix crash when calling
Inertia::FromDynamicParametersin Python with wrong vector size (#2296) - Fix
examples/cassie-simulation.pyandexamples/talos-simulation.py(#2443) - Fix build with CppAd 2024 (#2459)
- Fix
pinocchio-test-cpp-mjcfunittest with Boost 1.86 (#2459) - Fix
pinocchio-test-cpp-constraint-variantsuninitialized values (#2459) - Fix mixing library symbols between Pinocchio scalar bindings (#2459)
- Fix bug for get{Joint,Frame}JacobianTimeVariation (#2466)
Changed
- Modernize python code base with ruff (#2418)
- Does not create a root_joint frame from parsed models (urdf, mjcf and sdf) when no root joint is provided (#2402)
Full Changelog: v3.2.0...v3.3.0
Pinocchio 3.2.0
What's Changed
Fixed
- Append pinocchio optional libraries into pkg-config file (#2322)
- Fixed support of DAE meshes with MeshCat (#2331)
- Fixed pointer casts in urdf parser (#2339)
- Remove CMake CMP0167 warnings (#2347)
- Fixed urdfdom in ROS packaging (#2341)
- Fixed overview-urdf cpp example (#2384)
- Fixed mjcf model without a base link parsing (#2386)
- Fixed talos-simulation.py, simulation-contact-dynamics.py and simulation-closed-kinematic-chains.py examples (#2392)
Added
- Add getMotionAxis method to helical, prismatic, revolute and ubounded revolute joint (#2315)
- Add initial compatiblity with coal (coal needs
-DCOAL_BACKWARD_COMPATIBILITY_WITH_HPP_FCL=ON) (#2323) - Add compatibility with jrl-cmakemodules workspace (#2333)
- Add
collision_colorparameter toMeshcatVisualizer.loadViewerModel(#2350) - Add
BuildFromMJCFfunction to RobotWrapper (#2363) - Add more CasADi examples (#2388)
Removed
- Remove deprecated headers related to joint constraints (#2382)
Changed
- Use eigenpy to expose
GeometryObject::meshMaterialvariant (#2315) - GepettoViewer is no more the default viewer for RobotWrapper (#2331)
- Modernize python code base with ruff (#2367)
- Restructure CppAD and CasADi examples (#2388)
- Enhance and fix CppAD benchmarks outputs (#2393)
Full Changelog: v3.1.0...v3.2.0
Pinocchio 3.1.0
What's Changed
Fixed
- Fix
appendModelwhen joints after the base are in parallel (#2295) - Fix
appendModelbuild when called with template arguments different than the ones fromcontext(#2284) - Fix
TransformRevoleTpl::rotationandTransformHelicalTpl::rotationbuild (#2284) - Fix compilation issue for Boost 1.85 (#2255)
- Fix python bindings of
contactInverseDynamics(#2263) - Deactivate
BUILD_WITH_LIBPYTHONwhen building with PyPy (#2274) - Fix Python bindings cross building with
hpp-fcl(#2288) - Fix build issue on Windows when a deprecated header is included (#2292)
- Fix build issue on Windows when building in Debug mode (#2292)
- Fix visualization of meshes in meshcat (#2294)
- Fix Anymal simulation test (#2299)
- Fix contact derivatives and impulse dynamics tests (#2300)
Added
- Python unittest for
contactInverseDynamicsfunction (#2263) - Added helper functions to return operation count of CasADi functions. (#2275)
- C++ and Python unittest for
dIntegrateTransportto check vector transport and its inverse (#2273) - Add kinetic and potential energy regressors (#2282)
Removed
- Remove header
list.hppinclude for bindings of model and rnea (#2263)
Full Changelog: v3.0.0...v3.1.0
Pinocchio 3.0.0
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_2define 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::BiasZeroTplbypinocchio::MotionZeroTpl - Replace
pinocchio::fusion::JointVisitorBasebypinocchio::fusion::JointUnaryVisitorBase - Replace
pinocchio::fusion::push_frontbypinocchio::fusion::append - Replace
pinocchio::regressor::computeStaticRegressorbypinocchio::computeStaticRegressor - Replace
pinocchio::jointJacobianbypinocchio::computeJointJacobian - Replace
pinocchio::frameJacobianbypinocchio::computeFrameJacobian - Replace
pinocchio::framesForwardKinematicsbypinocchio::updateFramePlacements - Replace
pinocchio::kineticEnergybypinocchio::computeKineticEnergy - Replace
pinocchio::potentialEnergybypinocchio::computePotentialEnergy - Replace
pinocchio::computeCentroidalDynamicsbypinocchio::computeCentroidalMomentumandpinocchio::computeCentroidalMomentumTimeVariation - Replace
pinocchio::centerOfMass(const ModelTpl&, DataTpl&, int, bool)bypinocchio::centerOfMass(const ModelTpl&, DataTpl&, KinematicLevel, bool) - Replace
pinocchio::copy(const ModelTpl&, const DataTpl&, DataTpl&, int)bypinocchio::copy(const ModelTpl&, const DataTpl&, DataTpl&, KinematicLevel) - Replace
pinocchio/algorithm/dynamics.hppbypinocchio/algorithm/constrained-dynamics.hpp - Change the order of arguments in some of
pinocchio::GeometryObject's constructors - Deprecate
pinocchio/algorithm/parallel/geometry.hppmoved atpinocchio/collision/parallel/geometry.hpp - Deprecate
pinocchio/spatial/fcl-pinocchio-conversions.hppmoved atpinocchio/collision/fcl-pinocchio-conversions.hpp - Deprecate
pinocchio/parsers/sample-models.hppmoved atpinocchio/multibody/sample-models.hpp - Deprecate
pinocchio/math/cppad.hppmoved atpinocchio/autodiff/cppad.hpp - Deprecate
pinocchio/math/cppadcg.hppmoved atpinocchio/autodiff/cppadcg.hpp - Deprecate
pinocchio/math/casadi.hppmoved atpinocchio/autodiff/casadi.hpp - Deprecate
pinocchio::FrameTpl::parentreplaced bypinocchio::FrameTpl::parentJoint - Deprecate
pinocchio::FrameTpl::previousFramereplaced bypinocchio::FrameTpl::parentFrame - Deprecate
pinocchio/algorithm/contact-dynamics.hppalgorithms replaced bypinocchio/algorithm/constrained-dynamics.hpp
Python
- Replace
pinocchio.utils.skewbypinocchio.skew - Replace
pinocchio.utils.se3ToXYZQUATbypinocchio.SE3ToXYZQUATtuple - Replace
pinocchio.utils.XYZQUATToSe3bypinocchio.XYZQUATToSE3 - Replace
pinocchio.robot_wrapper.RobotWrapper.frameClassicAccelerationbypinocchio.robot_wrapper.RobotWrapper.frameClassicalAcceleration - Replace
pinocchio.robot_wrapper.RobotWrapper.jointJacobianbypinocchio.robot_wrapper.RobotWrapper.computeJointJacobian - Replace
pinocchio.robot_wrapper.RobotWrapper.frameJacobianbypinocchio.robot_wrapper.RobotWrapper.computeFrameJacobian - Replace
pinocchio.robot_wrapper.RobotWrapper.initDisplaybypinocchio.robot_wrapper.RobotWrapper.initViewer - Replace
pinocchio.robot_wrapper.RobotWrapper.loadDisplayModelbypinocchio.robot_wrapper.RobotWrapper.loadViewerModel - Replace
pinocchio.deprecated.se3ToXYZQUATtuplebypinocchio.SE3ToXYZQUATtuple - Replace
pinocchio.deprecated.se3ToXYZQUATbypinocchio.SE3ToXYZQUAT - Replace
pinocchio.deprecated.XYZQUATToSe3bypinocchio.XYZQUATToSE3 - Replace
pinocchio.deprecated.buildGeomFromUrdf(model, filename, [str])bypinocchio.buildGeomFromUrdf(model, filename, type, package_dirs, mesh_loader) - Replace
pinocchio.rpy.npToTTuplebypinocchio.utils.npToTTuple - Replace
pinocchio.rpy.npToTuplebypinocchio.utils.npToTuple - Replace
pinocchio.jacobianSubtreeCoMJacobianbypinocchio.jacobianSubtreeCenterOfMass
Removed
C++
- Remove
pinocchio::setGeometryMeshScales - Remove some
pinocchio::forwardDynamicssignatures - Remove some
pinocchio::impulseDynamicssignatures
Python
- Remove
pinocchio.utils.cross - Remove
pinocchio.robot_wrapper.RobotWrapper.initMeshcatDisplay - Remove
pinocchio.deprecated.setGeometryMeshScalesbypinocchio
Full Changelog: v2.7.1...v3.0.0