Releases: stack-of-tasks/pinocchio
Releases · stack-of-tasks/pinocchio
Pinocchio 3.3.0
What's Changed
Added
- Default visualizer can be changed with
PINOCCHIO_VIEWER
environment 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 | str
for 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_wrapper
when building with SDF and collision support (#2437) - Fix crash when calling
Inertia::FromDynamicParameters
in Python with wrong vector size (#2296) - Fix
examples/cassie-simulation.py
andexamples/talos-simulation.py
(#2443) - Fix build with CppAd 2024 (#2459)
- Fix
pinocchio-test-cpp-mjcf
unittest with Boost 1.86 (#2459) - Fix
pinocchio-test-cpp-constraint-variants
uninitialized 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_color
parameter toMeshcatVisualizer.loadViewerModel
(#2350) - Add
BuildFromMJCF
function to RobotWrapper (#2363) - Add more CasADi examples (#2388)
Removed
- Remove deprecated headers related to joint constraints (#2382)
Changed
- Use eigenpy to expose
GeometryObject::meshMaterial
variant (#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
appendModel
when joints after the base are in parallel (#2295) - Fix
appendModel
build when called with template arguments different than the ones fromcontext
(#2284) - Fix
TransformRevoleTpl::rotation
andTransformHelicalTpl::rotation
build (#2284) - Fix compilation issue for Boost 1.85 (#2255)
- Fix python bindings of
contactInverseDynamics
(#2263) - Deactivate
BUILD_WITH_LIBPYTHON
when 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
contactInverseDynamics
function (#2263) - Added helper functions to return operation count of CasADi functions. (#2275)
- C++ and Python unittest for
dIntegrateTransport
to check vector transport and its inverse (#2273) - Add kinetic and potential energy regressors (#2282)
Removed
- Remove header
list.hpp
include 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_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
bypinocchio::MotionZeroTpl
- Replace
pinocchio::fusion::JointVisitorBase
bypinocchio::fusion::JointUnaryVisitorBase
- Replace
pinocchio::fusion::push_front
bypinocchio::fusion::append
- Replace
pinocchio::regressor::computeStaticRegressor
bypinocchio::computeStaticRegressor
- Replace
pinocchio::jointJacobian
bypinocchio::computeJointJacobian
- Replace
pinocchio::frameJacobian
bypinocchio::computeFrameJacobian
- Replace
pinocchio::framesForwardKinematics
bypinocchio::updateFramePlacements
- Replace
pinocchio::kineticEnergy
bypinocchio::computeKineticEnergy
- Replace
pinocchio::potentialEnergy
bypinocchio::computePotentialEnergy
- Replace
pinocchio::computeCentroidalDynamics
bypinocchio::computeCentroidalMomentum
andpinocchio::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.hpp
bypinocchio/algorithm/constrained-dynamics.hpp
- Change the order of arguments in some of
pinocchio::GeometryObject
's constructors - Deprecate
pinocchio/algorithm/parallel/geometry.hpp
moved atpinocchio/collision/parallel/geometry.hpp
- Deprecate
pinocchio/spatial/fcl-pinocchio-conversions.hpp
moved atpinocchio/collision/fcl-pinocchio-conversions.hpp
- Deprecate
pinocchio/parsers/sample-models.hpp
moved atpinocchio/multibody/sample-models.hpp
- Deprecate
pinocchio/math/cppad.hpp
moved atpinocchio/autodiff/cppad.hpp
- Deprecate
pinocchio/math/cppadcg.hpp
moved atpinocchio/autodiff/cppadcg.hpp
- Deprecate
pinocchio/math/casadi.hpp
moved atpinocchio/autodiff/casadi.hpp
- Deprecate
pinocchio::FrameTpl::parent
replaced bypinocchio::FrameTpl::parentJoint
- Deprecate
pinocchio::FrameTpl::previousFrame
replaced bypinocchio::FrameTpl::parentFrame
- Deprecate
pinocchio/algorithm/contact-dynamics.hpp
algorithms replaced bypinocchio/algorithm/constrained-dynamics.hpp
Python
- Replace
pinocchio.utils.skew
bypinocchio.skew
- Replace
pinocchio.utils.se3ToXYZQUAT
bypinocchio.SE3ToXYZQUATtuple
- Replace
pinocchio.utils.XYZQUATToSe3
bypinocchio.XYZQUATToSE3
- Replace
pinocchio.robot_wrapper.RobotWrapper.frameClassicAcceleration
bypinocchio.robot_wrapper.RobotWrapper.frameClassicalAcceleration
- Replace
pinocchio.robot_wrapper.RobotWrapper.jointJacobian
bypinocchio.robot_wrapper.RobotWrapper.computeJointJacobian
- Replace
pinocchio.robot_wrapper.RobotWrapper.frameJacobian
bypinocchio.robot_wrapper.RobotWrapper.computeFrameJacobian
- Replace
pinocchio.robot_wrapper.RobotWrapper.initDisplay
bypinocchio.robot_wrapper.RobotWrapper.initViewer
- Replace
pinocchio.robot_wrapper.RobotWrapper.loadDisplayModel
bypinocchio.robot_wrapper.RobotWrapper.loadViewerModel
- Replace
pinocchio.deprecated.se3ToXYZQUATtuple
bypinocchio.SE3ToXYZQUATtuple
- Replace
pinocchio.deprecated.se3ToXYZQUAT
bypinocchio.SE3ToXYZQUAT
- Replace
pinocchio.deprecated.XYZQUATToSe3
bypinocchio.XYZQUATToSE3
- Replace
pinocchio.deprecated.buildGeomFromUrdf(model, filename, [str])
bypinocchio.buildGeomFromUrdf(model, filename, type, package_dirs, mesh_loader)
- Replace
pinocchio.rpy.npToTTuple
bypinocchio.utils.npToTTuple
- Replace
pinocchio.rpy.npToTuple
bypinocchio.utils.npToTuple
- Replace
pinocchio.jacobianSubtreeCoMJacobian
bypinocchio.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
bypinocchio
Full Changelog: v2.7.1...v3.0.0
Pinocchio 2.7.1
What's Changed
Changed
- Modify algorithm that appends a model to another (#2218)
- Set NOMINMAX as a public definitions on Windows (#2139)
- Improve documentation of
enum ReferenceFrame
(#2190) - Improve documentation of
getJointJacobian
(#2193).
Fixed
- CMake now uses Relative Path instead of Absolute (#2202)
- Order of frames in
ReducedModel
is now the same as in the full model (#2160) - Remove a lot of warnings (#2139)
MeshcatVisualizer
doesn't crash anymore when there is no collision model defined (#2147)- Fix MSVC build (#2155)
- Fix stub generation (#2166)
- Clean up empty documentation pages and sections (#2167)
- Fix SO(3) title and cross-section reference in the documentation (#2210)
Added
- Add
examples/floating-base-velocity-viewer.py
to visualize floating base velocity (#2143) - Add remark to the documentation of
getFrame(Classical)Acceleration
functions (#2169) - Allow use of installed jrl-cmakemodules (#2216)
Full Changelog: v2.7.0...v2.7.1
Pinocchio 2.7.0
What's Changed
Added
- Add
GeometryObject::meshMaterial
attribute (#2084)
Fixed
- Use bp::ssize_t for recent version of Windows compilers (#2102)
- Fix missing include for Boost >= 1.83 (#2103)
- Remove f-strings to fix install with python 2 (#2110)
- CMake: stop exporting CppAd/cppadcodegen & fetch submodule if not available (#2112)
- Fix malloc issue in CRBA algo (#2126)
- Fix build cppad and cppadcg with Boost < 1.77 (#2132)
Full Changelog: v2.6.21...v2.7.0
Pinocchio 2.6.21
What's Changed
Added
- Add inverse dynamics (
rnea
) Python and C++ example (#2083) - Add visualization of Frames in MeshCat viewer (#2098)
Fixed
- Re-initialize
Ycrb[0]
incrbaMinimal
(#2040) - Fix custom scalar use in
log
function (#2047) - Raise exception on wrong input size in
XYZQUATToSE3
Python binding function (#2073) - Remove memory leak in
buildGeomFromUrdf
andbuildGeomFromUrdfString
Python binding functions (#2082#2082) - Fix Panda3D viewer examples (#2087)
- Fix centroidal dynamics derivatives with respect to time (#2094))
Changed
- Rename freeflyer_joint to root_joint in
humanoid
sample model (#2043) - CMake minimal version is now 3.10 (#2055)
- Split headers and sources in different directories to have a more standard C++ project (#2070)
Removed
- Remove support to
hpp-fcl
< v2.0.0 (#2086)
Full Changelog: v2.6.20...v2.6.21
Pinocchio 2.6.20
What's Changed
- Fix support of recent versions of Boost for CppAD and CppADCodeGen by @jcarpent in #2000
- build(deps): bump ros-industrial/industrial_ci from afbf77f39db26785371161d5691ab435b31bb3ba to 1e0c5aff1147d50d58bf4185a55ff564c9b6e027 by @dependabot in #2007
- Enabled copy and deepcopy by @cmastalli in #1882
- build(deps): bump ros-industrial/industrial_ci from afbf77f39db26785371161d5691ab435b31bb3ba to 9f963f67ebb889792175776c5ee00134d7bb569b by @dependabot in #2013
- Sync submodule cmake by @jcarpent in #2029
Full Changelog: v2.6.19...v2.6.20
Pinocchio 2.6.19
What's Changed
- Add Motion::toHomogeneousMatrix by @stephane-caron in #1946
- The insatiable English teacher PR 🧙 by @stephane-caron in #1957
- require C++14 for Boost >= 1.81 by @nim65s in #1949
- CMake: an example require python 3 by @nim65s in #1966
- Fix IK example in the documentation by @stephane-caron in #1963
- Issue templates by @stephane-caron in #1971
- build(deps): bump ros-industrial/industrial_ci from 4b78602d67127a63dce62926769d9ec4e2ce72e4 to afbf77f39db26785371161d5691ab435b31bb3ba by @dependabot in #1976
- Enhance CMake packaging for Windows by @jcarpent in #1984
- Documentation by @drewhamiltonasdf in #1986
- Add support for ccache on Conda build by @jcarpent in #1987
- build(deps): bump ros-industrial/industrial_ci from 4b78602d67127a63dce62926769d9ec4e2ce72e4 to afbf77f39db26785371161d5691ab435b31bb3ba by @dependabot in #1988
- Enhance compatibility with new Python versions by @jcarpent in #1996
New Contributors
- @drewhamiltonasdf made their first contribution in #1986
Full Changelog: v2.6.18...v2.6.19
Pinocchio 2.6.18
What's Changed
- Support force in pybind11 by @cmastalli in #1868
- Fix some Python bindings signatures and add stub generation. by @duburcqa in #1869
- Fix IK example by @stephane-caron in #1875
- Remove empty examples by @stephane-caron in #1878
- build(deps): bump ros-industrial/industrial_ci from 6a8f546cbd31fbd5c9f77e3409265c8b39abc3d6 to 4b78602d67127a63dce62926769d9ec4e2ce72e4 by @dependabot in #1890
- add static-contact-dynamics example by @PepMS in #1891
- Update documentation of
JointModel.shortname
in python bindings by @Danfoa in #1892 - update doc by @fabinsch in #1898
- Document that joints need to be added in depth-first order by @traversaro in #1899
- fix INSTALL_RPATH on ROS & OSX by @nim65s in #1908
- Python example: update joint placements after loading a URDF by @stephane-caron in #1911
- Remove more empty sections from the docs by @stephane-caron in #1912
- Sync submodule cmake by @jcarpent in #1914
- update doc for fixed joint by @fabinsch in #1920
- doc: more information about frames on cheatsheet by @fabinsch in #1930
- Define operational frames in the documentation by @stephane-caron in #1929
- Remove support of np.matrix by @jcarpent in #1941
- Fix other np.matrix issues by @jcarpent in #1942
New Contributors
Full Changelog: v2.6.17...v2.6.18