Releases: stack-of-tasks/pinocchio
Release 1.1.0
Summary
New Features
- Spatial classes now follow the CRTP Design Pattern, for performance reasons.
- JointModels are now exposed in Python. This feature enables one to load a URDF model with a precise root joint and to create his/her own model.
- Python models can now be created by hand ( ex: buildEmptyModel() + calls to addBody() )
- Added utility tools to check an urdf model ( same as check_urdf but dislpay the Pinocchio model created from urdf parsing)
- Add unaligned prismatic joint
- Add geometry through Flexible Collision Library (hpp-fcl)
- Add dedicated structs to handle geometry. GeometryModel (list of geometry objects and its relation wrt kinematic model) and GeometryData
- When parsing urdf, meshes can be read from collada files and handled in Pinocchio
- Created parser that handles geometry and exposed it in python
- Add algorithms to update the geometry kinematics, to compute the distances for pairs of collision or if they are colliding or not.
- Added algorithms to compute the kinetic energy, the potential energy and exposed it in python
- The complete documentation is in progress
API modifications
- Change name of kinematics algorithms: now forwardKinematics instead of previous geometry, kinematics and dynamics.
Minor
- SimpleHumanoid is now built with joint limits
- Handle floating joints in urdf parsing
- Slight separation between joints and body in Model to avoid confusion
- Internally, Motion and Force classes now use a 6D-vector instead of two 3D-vectors for linear and angular part
Bugs Fixed
- Fixed a bug when trying to merge a link with its parent in case of fixed joint. Now merge only if it has an inertial tag.
- All the algorithms are now set to inline
- Fix compilation errors
Installation
The source of the release are available in the file pinocchio-1.1.0.tar.gz just below along with a binary version for 64-bits Debian architecture of Pinocchio pinocchio_1.1.0_amd64.deb and its dependencies. For information, those packages will be installed in /opt/openrobots directory.
Release 1.0.2
Summary
New Features
- The limits in position, velocity and torque for joints Revolute and Prismatic are now parsed from urdf model and accessible
- Implementation of exp and log functions on SE3 in C++ with its python binding thanks to @aelkhour
- Data now contains information relative to the center of mass position, velocity and acceleration
- Add Lua parser - compatible with RBDL
- Add translational joint
- Add planar joint
Minor
- Reduction of compilation warnings.
Bugs Fixed
- Fixed bug in operator Y*S in JointRevoluteUnaligned
Release 1.0.0
The following algorithms are implemented.
• Recursive Newton-Euler algorithm (RNEA, i.e inverse dynamics)
• Composite Rigid Body algorithm (CRBA, i.e generalized inertia matrix)
• Sparse Cholesky decomposition of the inertia matrix (for constrained forward-dynamics resolution)
• Placement Jacobians (i.e application from configuration velocities to end-effector spatial velocities), along with computation of body placements, velocities and accelerations.
• Center of mass and its Jacobian
The model can either be parsed from a URDF format or be created by appendending bodies. The following joint models are implemented.
• Revolute X, Y, Z (optimized) and unaligned with Cartesian directions
• Prismatic X, Y, Z
• Spherical (with and withoug singularities)
• FreeFlyer (i.e. no constraint, for mobile robots like humanoids -- using quaternion representation for the rotation)
• Fixed (concatenation of two consecutive bodies)