All notable changes to this project will be documented in this file.
The format of this document is based on Keep a Changelog.
- Fix memory allocation bug in ForwardKinematics and RelativeTransform blocks (robotology#243).
- Add adaptive_rho, polish and maximum iteration options for
OSQP
block (robotology#234 (comment)). - Remove deprecated functions from
OSQP
block (robotology#234 (comment)).
- New
RelativeJacobian
block that implementsKinDynComputations::getRelativeJacobian(.)
ofiDynTree
(robotology#225).
- The
WBToolboxLibrary.slx
file is now encoded in R2016b slx format, so at least MATLAB R2016b is required to use it.
- Fixed bug that caused Simulink models that used OSQP block to hang indefinitely in "Initializing" or "Compiling" phase (robotology#220).
- Disable verbose output option in OSQP block (robotology#220).
- Fixed problem introduced in 5.4.0 that prevented the
WholeBodyToolbox
library to appear correctly in the Simulink library browser on some MATLAB versions and on some Operating Systems (spotted on MATLAB R2020b with Ubuntu 20.04) (robotology#219, robotology#220).
- Add new OSQP block (robotology#209).
- Re-implement the Holder block to make it compatible with code generation and 'treat as atomic unit' (robotology#211).
- Remove deprecated and not used iDynTree headers (robotology#191)
- Created CMM Simulink Block (robotology#194)
- Update citations (robotology#195)
- Migrate from Travis CI to Github workflows (robotology#196)
- Improved compilation time of WBToolbox blocks by optimizing Blockinitialization() (robotology#190)
- Fixed calls to
yarp::os::Network
(robotology#171)
- Remove xenial ci (robotology#185)
- Remove deprecated YCM calls (robotology#184)
The v5
release of Whole-Body Toolbox brings a big change in the architecture: the core of the toolbox became a standalone repository hosted at robotology/blockfactory. This repository will only provide a BlockFactory plugin.
More in detail, starting with this release WBT
will contain only the following components:
WBToolboxBase
provides the base classes that simplify the interfacing with iDynTree and YARP libraries.WBToolbox
is the real BlockFactory plugin, and it contains all the implementations of theblockfactory::core::Block
interface.
To migrate a Simulink model from WB-Toolbox v4 to v5, check the upgrade guide.
- The Core, Mex and Coder components have been removed
- New dependency: robotology/blockfactory
- If Matlab is found, the Simulink Library that wraps the block classes is installed
- Fixed failing behavior of qpOASES block (robotology#158).
This is the first release for which a changelog was introduced.
- Yarp >=
3.0.0
is now a required dependency. - The toolbox style is now defined by a
.clang-format
file. PRs must be compliant to this style in order to be merged. - The
master
branch is protected. Only repo admins can directly push tomaster
(even if this is discouraged). - CMake 3.5 is now required.
- The toolbox is now split in three components:
WBToolboxLibrary
,WBToolboxMex
,WBToolboxCoder
. - Doxygen documentation greatly improved.
- The Yarp - DoFs Converter block has been removed in favour of custom user logic.
- First version that support Simulink Coder for generating C++ code from a model.
- Most of the classes now use the pimpl idiom.
- Headers have been cleaned with IWYU.
- New SetMotorParameters block. It substitutes the SetLowLevelPID allowing to set also motor constant and back emf constant.
- New RelativeTransformation block for computing generic homogeneous transform between two frames of the model.
- New GetMotorMeasurements block for retrieving position, velocity, acceleration, PWM, and current from the motors.
- New SetMotorReferences block for actuating current and PWM references.
- New QP block implemented with the new
QpOases
class.
BlockInformation
interface has been polished. Now it uses enums and const arguments.BlockInformation
interface has new methods for handling parameters.BlockInformation
does not contain anymore any reference to external dependencies (e.g. Yarp and iDynTree).BlockInformation
returns const input signals.- Implemented new logic for parsing parameters. Added
ConvertStdVector
helper andParameter
Parameters
classes. Log
switched to astringstream
implementation, and the verbosity automatically changes betweenDebug
andRelease
.- All the templates have been moved in the
cpp
file, and the allowed instantiations are now explicitly specialized or declared in the header. - Improved the logic to compute the number of block's parameters.
- Changed many enums names and their scope for improving readability. Switched to
enum class
. - Improved checks on Signal validity before their usage in all blocks.
- The singleton has been renamed to
WholeBodySingleton
. - Deprecated the retain / release logic for the
RemoteControlBoardRemapper
. It was substituted by a new logic that exploits smart pointers. - Removed
ModelPartitioner
class and all utility methods used by it. - The SetReferences block in Velocity control mode now supports setting the reference acceleration used by the internal trajectory generator.
- The S-Function was renames from
toolbox.cpp
toWBToolbox.cpp
. - Now also the
BlockInformation
object is stored in the PWork instead of being created every time. - Checks on pointers gathered from the PWork have been improved.
- Constraints on blocks sizes have been released. Now if a Block does not set input / output port sizes, they are inherited from the signal propagation of the entire model.
- First version of
CoderBlockInformation
class. - First version of
WBToolbox.tlc
file for inlining the S-Function. - First version of the C++ wrapper for executing the class autogenerated by Simulink Coder.
- Fixed the
Position
control mode of the SetReferences block. It now streams new references only when they change. - Aligned the unit of measurement of the
Reference Speed
used in thePosition
control mode of the SetReferences block. - Restore the default
Reference Speed
when SetReferences terminates. - Fixed bug which allowed modifying Signal's buffer content from an const object.
- Matlab is not anymore a required dependency. If Matlab is not found, the S-Function,
SimulinkBlockInformation
, andMxAnyType
are not compiled. However, theWBToolboxLibrary
and theWBToolboxCoder
targets build succesfully.
- Added Travis CI tests for Linux and macOS on gcc and clang. They now build matlab-independent targets.
- Added Appveyor tests for Visual studio 2015 and 2017 for matlab-independent targets.
MxAnyType
is now a shared library.- Added the
clock_rpc.thrift
file.ClockServer
sources can now be easily generated again during project configuration by enablingALLOW_IDL_GENERATION
. - All files now include the license header.
See robotology/community#279 .