Skip to content

Releases: stack-of-tasks/pinocchio

Pinocchio 1.2.7

03 Apr 07:07
Compare
Choose a tag to compare

This is mostly a maintenance release:

  • Fixes and computation improvements for Lie group operations.
  • Adding pickle for spatial classes.
  • Allow loading of URDF tree directly from an XML stream.

Release 1.2.6

15 Jan 18:06
Compare
Choose a tag to compare

This is mostly a maintenance release with various fixes to comply with Boost variadic macro on recent OS.
It also adds new convention with a LOCAL and a WORLD frame to express Jacobian quantities.

Release 1.2.5

10 Oct 13:38
Compare
Choose a tag to compare

This a maintenance Release. We added some algo to compute the time variation of the Jacobians together with the variation with respect to time of the centroidal momemtum matrix.
HPP-FCL works now with Eigen for linear algebra.

Release 1.2.4

09 Jun 11:58
Compare
Choose a tag to compare

This is mostly a maintenance release, with some fix with respect new urdfdom versions, it handles Eigen support with hpp-fcl.

Release 1.2.3

14 Feb 11:19
Compare
Choose a tag to compare

This release fixes some issues with respect to 1.2.1.

API modifications

Interpolate, Differentiate, Integrate are now algorithmic struct which can be efficiently overloaded.

Bindings

Add FCL object bindings

Release 1.2.1

17 Oct 11:05
Compare
Choose a tag to compare

Summary

This release is a minor patch of the previous release 1.2.0.

This release is directly accessible as a Debian package. Please see https://github.com/stack-of-tasks/pinocchio/wiki/installation for further details.

New

  • The Python bindings are aligned and free of unnecessary allocations
  • Add documentation option which allows to not install the documentation
  • Introduces container::aligned_vector to automatically create an std::vector with specific aligned allocator

API modifications

  • Remove JointDense.
  • Remove JointGeneric

Fixes

  • Solves the parsing of geometries in URDF module
  • Fixes alignment issues on 32 bits architecture

Release 1.2.0

29 Sep 08:35
Compare
Choose a tag to compare

Summary

The main modifications concern the update of the code to comply with the Humanoid Path Planner (HPP).

This release is directly accessible as a Debian package. Please see https://github.com/stack-of-tasks/pinocchio/wiki/installation for further details.

New Features

  • Add Joint{Model,Data} classes based on Joint{Model,Data}Base and Joint{Model,Data}Variant. Those classes call directly the visitors and make Variant accessible throw methods
  • Add partial Joint{Model,Data}Composite. They allow a stack of joints without adding any Inertia.
  • Increase Frame class. Frames can be of several types (BODY, JOINT, SENSOR, etc) and reflect the robot tree as it appears in the URDF conventions. Frames have two attributes: parent which the direct Joint parent in the Joint tree, previousFrame which correspond to the parent Frame in the tree of Frames).
  • Adding Python parser which is able to read models written in Python.
  • Add algo checker to check the validity of a model.
  • Improve documentation.

API modifications

  • Model has some methods deprecated. The default name has been removed.
  • The Geometry classes have been updated and several methods have been set to deprecated. They now use Frames as parent instead of Joint directly: a Geometry is now supported by a BODY.
  • Add active collision pair flags in GeomData which define the active collision pairs.
  • Unify naming conventions (nframes, njoints, etc).

Fixes

  • The UDRF parser can now deal with more complex topologies. It properly handles the stack of geometries for each BODY.
  • Improve packaging mainly around the Python part.

Release 1.1.2

31 May 15:39
Compare
Choose a tag to compare

Summary

This release is directly accessible as a Debian package. Please see https://github.com/stack-of-tasks/pinocchio/wiki/installation for further details.

New Features

  • Added operational frames (that are a Plucker coordinate frame attached to a parent joint inside a kinematic tree). Position and Jacobian of such frames can be computed
  • Geometry primitives can now be handled (and added to the Pinocchio GeometryModel) when encountered in an urdf file
  • Implemented simple srdf parsing for GeometryData : parse the desactivated collision pairs
  • Added Articulated Body Algorithm (ABA), and CCRBA
  • When parsing a urdf file, now look in the environment variable ROS_PACKAGE_PATH for directories where to search for meshes. Users can provide hint directories to search in as a priority. Updated python RobotWrapper consequently
  • Added forward dynamics with contact algorithm
  • Added algorithms working with vectors of configuration or velocity(either on a JointModel or on a Model, iterating through all the kinematic tree)
    • One can integrate a configuration at a constant velocity during a unit time
    • One can differentiate two configurations (i.e compute the velocity that must be integrated during a unit time to go from first configuration to the other )
    • One can interpolate between two configurations
    • One cancompute the distance between two configurations ( such as dist = norm ( difference) )
    • One can shoot a configuration uniformly sampled between specified limits
  • Added Impulse Dynamic Algorithm
  • Completed the list of method to access or call Joint's data or method when joint are stored in a variant.
  • Added JointAccessor that is a general joint encapsulating a JointVariant ( abstracting the use of visitors for the user).

API modifications

  • Moved limits from joint models to Model as vectors of size nq for position limits and size nv for velocity and effort limits
  • The Geometry objects stored in GeometryModel are now splitted in two types : visual and collision

Minor

  • Improved documentation of Data, Model, Spatial Classes
  • Improved efficiency when executing algorithms
  • One can now create Inertia for simple shapes such as cylinders, boxes, ellipsoid
  • Rework some unittests to increase to coverage of whole package ( C++ and Python )

Bugs Fixed

  • Fixed operator Inertia x constraint in JointSphericalZYX
  • Fixed the Dense conversion of joints (models and datas)
    Fixed bugs in JointRevoluteUnaligned and JointPrismaticUnaligned to access the access when visiting a variant containing such joints with boost::fusion

Release 1.1.0

04 Feb 12:15
Compare
Choose a tag to compare

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

14 Sep 08:46
Compare
Choose a tag to compare

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