iDynTree 1.1.0 (2020-06-08)
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.
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:
- Francisco Andrade (@fjandrad)
- Stefano Dafarra (@S-Dafarra)
- Gabriele Nava (@gabrielenava)
- Giulio Romualdi (@GiulioRomualdi)
- Lorenzo Rapetti (@lrapetti)
- Claudia Latella (@claudia-lat)
- Silvio Traversaro (@traversaro)
Detailed ChangeLog
Added
- Added a new function to
iDynTreeWrappers
for the functiongetWorldTransformsAsHomogeneous
. - Added functions for having a MATLAB iDynTree Visualizer in
iDynTreeWrappers
. Some time optimization has been performed (#659). - Added
bindings
forgetWorldTransformsAsHomogeneous
function. - Added function
getWorldTransformsAsHomogeneous
that gives a vector of Matrix4x4 based on a vector of strings containing the frame transforms. - Added
bindings
for handlinglinkSolidShapes
properly (#656). - Added
bindings
forInverseKinematics
(#633). - Implement
cbegin()
/cend()
andbegin()
/end()
methods forVectorDynSize
andVectorFixSize
(#646). - Added CI for MacOS with
IDYNTREE_USES_OCTAVE
ON