Skip to content

Releases: robotology/idyntree

iDynTree 1.1.0 (2020-06-08)

08 Jun 14:36
ba43b00
Compare
Choose a tag to compare

iDynTree 1.1.0 Release Notes

Release Highlights

This new release introduce two new features:

New MATLAB based visualizer

A new MATLAB iDynTree visualizer (#682, #668) has been added to the iDynTree's high-level-wrappers.
image17

A tutorial on how to use this new MATLAB visualizer is available in the https://github.com/robotology/idyntree/tree/v1.1.0/bindings/matlab/%2BiDynTreeWrappers#matlab-native-visualization .

Thanks a lot to Francisco Andrade (@fjandrad) that implemented this feature in #668 and #682 .

iDynTree's InverseKinematics MATLAB and Python bindings

The iDynTree's InverseKinematics class has been added to the iDynTree's bindings, so it is now usable from MATLAB and Python bindings. See the following snippet to have an idea on how to use iDynTree.InverseKinematics in MATLAB:

ik = iDynTree.InverseKinematics();
ik.setModel(robotModel);

% Set IK tolerances
ik.setCostTolerance(0.001);
% ik.setCostTolerance(1.0);
ik.setConstraintsTolerance(0.00001);
% Set targets as cost in the cost function
ik.setDefaultTargetResolutionMode(iDynTree.InverseKinematicsTreatTargetAsConstraintFull);
% Use roll pitch yaw parametrization for the rotational part of the IK
ik.setRotationParametrization(iDynTree.InverseKinematicsRotationParametrizationRollPitchYaw);
ik.setVerbosity(3);
ik.setDefaultTargetResolutionMode(iDynTree.InverseKinematicsTreatTargetAsConstraintNone);

% Add position target 
ik.addPositionTarget(frameIdx, G_targetPos);

% --------- Add starting point
% As the IK optimization problem is a non-linear iterative optimization, the
% optimization requires a starting point (to be assumed). Be aware
% that this choice can influence the actual convergence of the algorithm
jointsInitPosInRadians = iDynTree.VectorDynSize();
jointsInitPosInRadians.zero();
ik.setFullJointsInitialCondition(G_T_base, jointsInitPosInRadians);

% --------- Solve the IK
if ~ik.solve()
    fprintf('\n Fail to solve IK!\n')
end
G_H_base_optimized          = iDynTree.Transform();
jointPos_optimizedInRadians = iDynTree.VectorDynSize();
ik.getFullJointsSolution(G_H_base_optimized, jointPos_optimizedInRadians);

Thanks a lot to Lorenzo Rapetti (@lrapetto) that implemented this feature in #633 .

Acknowledgements

Thanks to the contributors (either as code authors, code reviewers or by contributing documentation) of this version of iDynTree:

Detailed ChangeLog

Added

  • Added a new function to iDynTreeWrappers for the function getWorldTransformsAsHomogeneous.
  • Added functions for having a MATLAB iDynTree Visualizer in iDynTreeWrappers. Some time optimization has been performed (#659).
  • Added bindings for getWorldTransformsAsHomogeneous function.
  • Added function getWorldTransformsAsHomogeneous that gives a vector of Matrix4x4 based on a vector of strings containing the frame transforms.
  • Added bindings for handling linkSolidShapes properly (#656).
  • Added bindings for InverseKinematics (#633).
  • Implement cbegin() / cend() and begin() / end() methods for VectorDynSize and VectorFixSize (#646).
  • Added CI for MacOS with IDYNTREE_USES_OCTAVE ON

iDynTree 1.0.7 (2020-06-07)

08 Jun 12:35
0831aac
Compare
Choose a tag to compare

iDynTree 1.0.7 Release Notes

Fixed

  • Fixed compilation with assimp installed with apt-get on Ubuntu 20.04 (#692, #693).
  • Fixed compilation with Octave >= 5 (#692, #677).

iDynTree 1.0.6 (2020-05-06)

06 May 13:24
0a96806
Compare
Choose a tag to compare

iDynTree 1.0.6 Release Notes

Fixed

  • Fixed compilation with ipopt installed via vcpkg (#689).
  • Fixed compilation with Visual Studio 2019 16.6 (#672).

iDynTree 1.0.5 (2020-04-03)

03 Apr 13:57
a92bdf9
Compare
Choose a tag to compare

iDynTree 1.0.5 Release Notes

Fixed

  • Fix find_package(iDynTree) when iDynTree is built with IDYNTREE_USES_ASSIMP ON and BUILD_SHARED_LIBS OFF (#667).

iDynTree 1.0.4 (2020-04-02)

02 Apr 12:29
9d3042f
Compare
Choose a tag to compare

iDynTree 1.0.4 Release Notes

Fixed

  • Further fix for configuration compilation with Assimp >= 5.0.0 (#666).

iDynTree 1.0.3 (2020-04-01)

01 Apr 19:55
1ed19d6
Compare
Choose a tag to compare

iDynTree 1.0.3 Release Notes

Fixed

  • Fixed configuration and compilation with Assimp >= 5.0.0 (#661).
  • Fixed runtime errors of the MATLAB bindings on Windows and compatibility with MATLAB 2020a (#664).

iDynTree 1.0.2 (2020-02-21)

21 Feb 15:54
685c080
Compare
Choose a tag to compare

iDynTree 1.0.2 Release Notes

Fixed

  • Remove spurious inclusion of Eigen headers in ExtendedKalmanFilter.h public header, that could create probles when using that header in a downstream project that does not use Eigen (#639).
  • Added find_dependency(OsqpEigen) and find_dependency(LibXml2) when iDynTree is compiled as a static library, fixing the use of iDynTree on Windows (#642).

Changed

  • To reduce the possible unexpected problems, the automatic set of the IDYNTREE_USES_<pkg> CMake variable when the <pkg> CMake package is available in the system has been removed for Irrlicht and WORHP, as it was already disabled for ASSIMP and ALGLIB (#642). To use this dependencies it is now compulsory to set manually the IDYNTREE_USES_<pkg> variable to ON.

iDynTree 1.0.1 (2020-01-14)

14 Jan 21:16
ba7c085
Compare
Choose a tag to compare

iDynTree 1.0.1 Release Notes

This is a patch release of iDynTree 1.0, that fixes a regression that caused all the project that used the CMake command find_package(iDynTree <version>) to fail.

Detailed ChangeLog

Fixed

  • Change CMake version compatibility from SameMajorVersion to AnyNewerVersion, as API breakage between major version will be limited, and to avoid breaking the compatibility of any downstream project that request a minimum version of iDynTree as in find_package(iDynTree 0.11 REQUIRED) (#629).

iDynTree 1.0.0 (2020-01-14)

14 Jan 13:16
516713a
Compare
Choose a tag to compare

iDynTree 1.0.0 Release Notes

This is the first major release of iDynTree, and from now on iDynTree will adheres to Semantic Versioning, meaning that from now on all releases of the iDynTree 1.x series will be API and ABI backward compatible.

In particular, iDynTree 2.0 will remove support for parts of iDynTree that have been deprecated for a long time such as anything that is enabled by the IDYNTREE_ENABLE_KDL CMake option, the iDynTree::DynamicsComputations class and the semantics support.

Release Highlights

Some major additions to the library with respect to iDynTree 0.11 are:

  • Several attitude estimation algorithms were added in the iDynTree estimation library.
  • Support for exporting iDynTree::Model as URDF files as been added, via the the iDynTree::ModelExporter class.
  • Support for using OSQP as a QP solver been added in the iDynTree optimalcontrol library.
  • The iDynTree::ModelLoader class has been modified to ensure that URDF models of serial robots load the joint in "normalized order", i.e. having joint closer to the fixed base come before joints that are closer to the end effector.

For more details on these and the other changes of iDynTree 1.0, check the "Detailed ChangeLog" section at the end of this release notes.

Acknowledgements

Thanks to the contributors (either as code authors or code reviewers) of this version of iDynTree:

iDynTree first major release is dedicated to Angelina.

Detailed ChangeLog

Added

  • Added method to compute the inverse dynamics inertial parameters regressor in KinDynComputations ( #480 ).
    KinDynComputations finally reached feature parity with respect to DynamicsComputations, that will finally be removed in one of the future iDynTree feature releases.
  • Added method to return the convex hull of the constraint on the projection of the center of mass (#478).
  • Added objects to deal with linear optimal control problems in the optimalcontrol library.
  • Added OSQP interface via osqp-eigen in the optimalcontrol library.
  • Fixed bugs in MultipleShooting solver in the optimalcontrol library.
  • Added few lines of documentation in the optimalcontrol library.
  • Added interface for ALGLIB and WORHP in the optimalcontrol library.
  • Multiple shooting solvers can use hessians of costs and constraints in the optimalcontrol library.
  • Taking into account also the sparsity pattern of constraints and dynamical system (both in jacobians and hessians) in the optimalcontrol library.
  • Added visualization of vectors in the visualization library.
  • Added a SolidShape helper library. This library is part of iDynTree, and is meant
    to contain all the algorithms that use in some form the visual and collision geometries of the model,
    and so they depend on the Assimp library to load meshes.
  • Added an helper function that provides rough estimates of the inertial parameters (mass, first moments of mass,
    3d inertia matrix elements) of a robot given the total mass of the robot, and its collisions shapes. While the estimates
    provided are quite rough, they can be quite useful at least to provide an expected order of magnitude of the parameters,
    to normalize errors or as initial points of a nonlinear optimization procedure.
  • Added attitude estimator interface to estimate the orientation of an IMU, given the IMU measurements (#516).
  • Added DiscreteExtendedKalmanFilterHelper base class (#516).
  • Added AttitudeMahonyFilter implementation of an explicit formulation of passive complementary filter over quaternion groups (#516).
  • Added AttitudeQuaternionEKF implementation (#516).
  • Added getWorldFrameTransform implementation in SimpleLeggedOdometry class
  • Added a new version of changeFixedFrame in SimpleLeggedOdometryclass. This can be used to set a desired homogeneous transformation for the fixed frame
  • Added bindings for AttitudeMahonyFilter, AttitudeQuaternionEKF, DiscreteExtendedKalmanFilterHelper (#522)
  • Added basic tests for the Attitude Estimator classes (#522)
  • Added DiscreteKalmanFilterHelper class for an implementation of a discrete, linear time-invariant Kalman Filter (#559)
  • Added dynamic reset functionality to DiscreteExtendedKalmanFilterHelper class (#553)
  • Added high-level Matlab/Octave wrappers of the iDyntree bindings (#530)
  • Added bindings for the class Span with the name DynamicSpan (#522)
  • Implement RPYRightTrivializedDerivativeRateOfChange() and RPYRightTrivializedDerivativeInverseRateOfChange() into Rotation class
  • Implement left Jacobian and left Jacobian inverse of SO(3) in Rotation class (#562)
  • Add nameIsValid attribute to iDynTree::SolidShape class.
  • Add operator[] method to iDynTree::VectorDynSize (#596)
  • Add operator[] method to iDynTree::VectorFixSize (#596)
  • Implement getTotalMass() method for Model class
  • Enable the installation of the ModelTestUtils.h file (#607)
  • Added iDynTree::ModelExporter class to export iDynTree::Model instances to URDF files (#554).
  • Added support in the URDF parser to correctly parse the optional name parameter of visual and collision elements.
  • Added iDynTree::ModelCalibrationHelper to simplify loading a model from file, update its inertial parameters and exporting again to file (#576).
  • In yarprobotstatepublisher, add tf-prefix and jointstates-topic options for the tf prefixes and ROS topic.
  • In yarprobotstatepublisher, add reduced-model optional parameter to stream only the link transformations to transform server. By default, tranformations from all the frames are streamed to the transform server.

Changed

  • The changelog has been migrated to the format described in https://keepachangelog.com/en/1.0.0/ .
  • If the IDYNTREE_USES_YARP option is enabled, the minimum required version of YARP is 3.3 .
  • The CMake config files are now installed in ${CMAKE_INSTALL_PREFIX}/lib/cmake/iDynTree also in Windows.
  • Updated iDynTree::ModelLoader class to load by default models with normalized joint ordering (#491).
  • In yarprobotstatepublisher the model joint positions values are initialized to zero and the joint positions values are updadted in run time if the values are available in ROS topic given through jointstates-topic parameter.
  • In yarprobotstatepublisher, joint size check between model joints and joints in ROS topic given through jointstates-topic parameter have been removed.

Deprecated

  • All the classes and methods that end in Semantics are deprecated, and will be removed in iDynTree 2.0, see #622 for more info.
  • The CMake option IDYNTREE_USES_KDL and all the classes available when enabling it are deprecated, and will be removed in iDynTree 2.0 .
  • In yarprobotstatepublisher, the robot option is deprecated, and replaced by name-prefix.

Fixed

  • Fixed missing DOF_ACCELLERATION data in dynamic variable cache ordering
    (#587)
  • Fixed compatibility of Span with SWIG bindings compilation (#522)
  • Fixed implementation of Transform::log() method (#562)
  • Fixed implementation of SpatialMotionVector::exp() method (#562)

iDynTree 0.11.2 (2019-12-12)

13 Dec 08:55
b54b826
Compare
Choose a tag to compare

iDynTree 0.11.2 Release Notes

Unless noted otherwise, the changes in this patch release were introduced in Pull Request #482 .

Bug Fixes

  • Fixed cache invalidation bug in the getFrameBiasAcc method of KinDynComputations. The internal
    cache used by getBiasAcc was never updated even if the method setRobotState was called, so the
    getFrameBiasAcc method always returned the bias acceleration corresponding to the first call to setRobotState.
  • Fixed getBiasAcc method in KinDynComputations to take into account the effect of non-zero and non-parallel
    linear and angular base velocity, described in #370 .
  • Fixed compilation on 32-bit Windows ( #506 )
  • Fixed a URDF parser regression introduced in iDynTree 0.11 for which collision geometries were also loaded as visual geometries, and viceversa (#497, #559).
  • Fixed a URDF parser regression introduced in iDynTree 0.11 for which geometry elements without origin tag were not correctly parsed (#496, #564).

New features

  • The getFrameAcc method that returns the acceleration of a frame was added to the KinDynComputations class.
    As this method takes in input every time the robot acceleration, it is computationally expensive and
    is not suitable to be used for multiple frames in a tight loop. If you need a computationally convenient
    method to access frame accelerations, please open an issue.
  • It is now possible to specify a non-zero bias base acceleration as input of the ForwardBiasAccKinematics function.
    This is convenient if the bias acceleration that is being computed is the bias acceleration obtained with the
    MIXED velocity representation.