Skip to content

Releases: gbionics/idyntree

v14.2.0

16 Dec 12:56
235aea6

Choose a tag to compare

What's Changed

  • Refactoring of feature to set frame as FloatingBase by @LoreMoretti in #1282
  • Fix FreeFloatingVel docstrings to refer to velocities instead of accelerations by @flferretti in #1284
  • Add algorithm to compute Coriolis matrix such that dotM = C + C^T by @LoreMoretti in #1283

Full Changelog: v14.1.0...v14.2.0

v14.1.0

27 Nov 15:43
4b14f85

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v14.0.2...v14.1.0

v14.0.2

07 Nov 09:49
464e329

Choose a tag to compare

What's Changed

  • Replaced deprecated macos-13 GitHub Actions machines to macos-15-intel by @traversaro in #1268
  • Set ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint default value to false and bump version to 14.0.2 by @traversaro in #1271

Full Changelog: v14.0.1...v14.0.2

v14.0.1

04 Nov 21:49
8096a98

Choose a tag to compare

What's Changed

  • Add back addRandomLinkToModel overload that takes bool onlyRevoluteJoints as fourth parameter by @traversaro in #1266

Full Changelog: v14.0.0...v14.0.1

v14.0.0

23 Oct 07:51
69d3ce1

Choose a tag to compare

Release Highlights

Spherical joints support

This is the first release of iDynTree with support of spherical joints, see #1249 and #1258, that is modeled by the Model::SphericalJoint class.

The Model::SphericalJoint models the spherical joints using a 4D quaternion for the position coordinates of the joint, while the velocity is represented as a 3D angular velocity.

Important

Using iDynTree::Model that contains one or more Model::SphericalJoint may violate assumptions that are present in downstream code, as it is a joint with a number of DOF different from 0 or 1, so its use may expose bugs in user code.

For example, classical assumptions that could lead to bugs if not enforced in user code are:

  • confusions between Model::getJointIndex, IJoint::getPosCoordsOffset and IJoint:: getDOFsOffset, as these methods all return the same values for model with just 1-dof and 0-dof joints, but will return different values for models with spherical joints.
  • assumption of 0 being a valid configuration for the position coordinates, while the IJoint::setJointPosCoordsToRest method should be used to se the position coordinates to a "rest" position (i.e. 0 for simple joints)
  • assumption of any random position coordinate being a valid position coordinate, while you should use IJoint::normalizeJointPosCoords to normalize a position coordinate to be a valid one, for example for spherical joints ensure that the 4D quaternion is unit

If your code make this assumptions, make sure that you do not use them with Model that contains spherical joints or other non-simple joints. For example, you can ensure that you do not load any spherical joints from URDF by setting the URDF import setting ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint to false, or if you have another iDynTree::Model that somehow contains a iDynTree::SphericalJoint, you can convert it to an equivalent model with the spherical joint replaced with an equivalent series of 3 revolute joints using the iDynTree::convertSphericalJointsToThreeRevoluteJoints function.

URDF support for Spherical joints

The URDF specification do not support Spherical Joints, that instead iDynTree support. To allow to easily load and export URDF models that contain spherical joints, by default iDynTree URDF parser detect if the model contains three consecutive revolute or continuous joints with this conditions:

  • The three joint axis intersect at a single point
  • The three joint axis are each one orthogonal to each other
  • The two internal links have zero mass

If all these conditions are respected and ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint is set to true, the three revolute joints in the URDF model are substituted with a single iDynTree's SphericalJoint. Similarly, when a iDynTree::Model is exported, any iDynTree::SphericalJoint contained in it is exported as a three revolute joints that respect the aforementioned conditions.

For backward compatibility, by default the value of ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint is false, while as it is not impact backward compatibility the default value of ModelExporterOptions::exportSphericalJointsAsThreeRevoluteJoints is true.

Important

The default value of ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint used to be true in iDynTree 14.0.0 and 14.0.1, but it was reverted to false in iDynTree >= 14.0.2 as the downstream impact was too problematic, see #1267 . If you want to import URDF files with iDynTree::SphericalJoints, please set ModelParserOptions::convertThreeRevoluteJointsToSphericalJoint to true explicitly.

Eigen 5.0.0 support

This release is the first one with support for Eigen 5.0.0 (see #1262).

Detailed Changelog

  • Add LLM-friendly theory.md and add tests for Motion Subspace matrix methods by @traversaro in #1250
  • Temporary disable MATLAB Windows tests by @traversaro in #1253
  • Add RevoluteSO2Joint joint and extent IJoint interface to support non-standard joints by @traversaro in #1254
  • Fix UnitTestModelExporter by @Nicogene in #1256
  • Add option for generating random models with RevoluteSO2 and fix code and tests that assumed 0-dof or 1-dof joints by @Nicogene in #1255
  • ModelLoader: fix regression in loadReducedModelFromFile by @Nicogene in #1257
  • Add SphericalJoint and generalize CRBA to handle multiple-DOF joints by @traversaro in #1249
  • Fix loading of reduced model in meshcat visualizer by @LoreMoretti in #1261
  • Remove version constraint for Eigen3 package for Eigen3 5.0.0 compat by @traversaro in #1262
  • Start depending on libxml2-devel instead of libxml2 by @traversaro in #1264
  • Add SphericalJoints in the export/load to/from the URDF by @Nicogene in #1258
  • Bump version to 14.0.0 by @traversaro in #1265

Full Changelog: v13.4.2...v14.0.0

v13.4.2

10 Jun 13:36
8f6a752

Choose a tag to compare

What's Changed

Full Changelog: v13.4.1...v13.4.2

v13.4.1

10 Jun 13:08
cf8652f

Choose a tag to compare

What's Changed

Full Changelog: v13.4.0...v13.4.1

v13.4.0

04 Jun 15:24
c1d091d

Choose a tag to compare

What's Changed

  • Always export prismatic limits to URDF even if they are not enabled in iDynTree::Model by @traversaro in #1232
  • Implement the possibility to use FromPython to generate JointPosDoubleArray and JointDOFsDoubleArray in the python bindings by @isorrentino in #1234
  • Require glfw to be at least 3.4 in conda and pixi environments by @traversaro in #1238
  • Cleanup pixi.toml by @traversaro in #1239
  • Drop ubuntu-20.04 GitHub Action image by @traversaro in #1241
  • Add iDynTree.Span based overload for InverseKinematics::setJointLimits and add support in Python bindings to pass np.array to methods that take iDynTree::Span by @traversaro in #1233
  • Fix missing update in parent_junction_index in SixAxisForceTorqueSensor::updateIndices by @isorrentino in #1242
  • Fix missing xorg-libxrandr linux dependency in ci.yml by @traversaro in #1243
  • Migrate windows-2019 GitHub Actions jobs to windows-latest by @traversaro in #1244
  • Implement methods to add a new contact wrench to a LinkContactWrenches object and bump version to 13.4.0 by @LoreMoretti in #1245

Full Changelog: v13.3.0...v13.4.0

v13.3.0

11 Feb 12:18
963a2ca

Choose a tag to compare

What's Changed

Full Changelog: v13.2.2...v13.3.0

v13.2.2

24 Jan 23:07
83bd07a

Choose a tag to compare

What's Changed

  • Bump version to 13.2.2 and fix wrong version metadata in 13.2.1 release by @traversaro in #1228

Full Changelog: v13.2.1...v13.2.2