The release 0.21.0 is the latest release of the Bipedal Locomotion Framework where the changelog is maintained in this file. From the release 0.22.0, the changelog is maintained in the GitHub releases.
All notable changes to this project are documented in this file.
0.21.0 - 2025-05-27
- Add
ZMPgeneratortoUnicycleTrajectoryGenerator(#916) - Add
VariableFeasibleRegionTaskVariableFeasibleRegionTaskin the TSID controller (#922) - Add
setFeetTransformin theUnicycleTrajectoryGenerator(#927) - Add
getCurrentTimeto theFixedFootDetector(#928) - Add the possibility to easily disable/enable the rt logging in
YarpRobotLoggerDevice(#932) - Enable Programmatic Creation of
VariableRegularizationTask(#934) - Check if the setpoint has been set at least once in TSID and IK (#939)
- Add motor temperature sensor support to
SensorBridge,YarpSensorBridgeandYarpRobotLoggerDevice(#946) - Add the support to the joint type (revolute/prismatic) in
SensorBridge(#949) - Implement
FloatingBaseSystemAccelerationKinematicsclass inContinuousDynamicalSystemcomponent (#950) - Add the support to the joint type (revolute/prismatic) in
YarpRobotControl(#964)
- Some improvements on the YarpRobotLoggerDevice (#910)
- Removed ROS1 device publisher and the corresponding example (#910)
- Remove the possibility of setting the desired gravity direction and desired forward velocity separately in the
IK::GravityTrask(#939) - Improve
JointTorqueControlDevice(#948) - Add wrapping of IJointFault device in
JointTorqueControlDevice(#954) - Increase minimum version of CMake supported to 3.18.0 (#956)
- Use resource finder to load friction models in
JointTorqueControlDevice(#961) - Modify
JointTorqueControlDeviceto use motor temperature as additional input for PINN (friction estimation) (#960) - Only link pcl_common to PerceptionInterface instead of the full PCL_LIBRARIES (#962)
- Change logic of
RobotDynamicsEstimator(#959)
- Fix outputs of
UnicycleTrajectoryGenerator(#916) - Add missing
ContinuousDynamicalSystemrow toExported componentsin the README (#919) - Avoid using
iCubGazeboV3model inBaseEstimatorFromFootIMUtest (#910) - Fix typos in tsid balancing torque control config files (#926)
- Add option
FRAMEWORK_COMPILE_MotorCurrentTrackingApplicationin cmake file to install correctly the application motor-current-tracking (#937) - Fix resize vector in
JointTorqueControlDevice(#951) - Fix build with CMake 4 and NumPy 2 (#955)
- Fix build with casadi >= 3.7.0 (#956)
- Fix unit tests for
RobotDynamicsEstimator(#953) - Fix logic for friction torque saturation in
JointTorqueControlDevice(#965)
- Deprecate
FloatingBaseSystemKinematicsin favour ofFloatingBaseSystemVelocityKinematicsclass inContinuousDynamicalSystemcomponent (#950)
0.20.0 - 2024-12-16
- Add
USE_SYSTEM_tiny-process-libraryCMake option to usetiny-process-libraryfound in system (#891) - Add the test for the
YarpRobotLoggerDevice(#862) - Implement low-pass filter for estimated friction torques in
JointTorqueControlDevice(#892) - Add
blf-motor-current-tracking.pyapplication (#894) - Add the possibility to initialize the base position and the feet pose in the
unicycleTrajectoryGenerator(#887) - Add software joint position limits to the
blf-motor-current-tracking.pyapplication (#901) - Implement
velMANNclass to perform inference on MANN model with velocity-based features inMLcomponent (#889) - Implement
velMANNAutoregressive,velMANNAutoregressiveInputBuilder, andvelMANNTrajectoryGeneratorto generate trajectories using MANN model with velocity-based features inMLcomponent (#889) - Add KF to estimate joint and motor velocities in JoinTorqueControlDevice (#909)
- Added option
FRAMEWORK_COMPILE_Ros1Publisherto enable or disable the compilation of theBipedalLocomotion::YarpUtilities::RosPublisherclass (#914) - Added rpc commands to
YarpLoggerDeviceto trigger the saving of data to a local file (#915)
- Change device jtcvc to use motor velocity and joint velocity in input to PINN models (#903)
- Set the system timer resolution to the minimum value for higher precision on
Windows(#907) - Write estimated friction torques from jtcvc instead of motor accelerations on YARP (#908)
- Update the
mas-remapperconfiguration file forergoCubSN000(#913) - Deprecate the
BipedalLocomotion::YarpUtilities::RosPublisherclass (#914)
- Bug fix of
JointTorqueControlDevicedevice (#890) - Bug fix of
prepare_datamethod calling injoints-grid-position-tracking(#895) - Fix the normal force limit constraint in the
CentroidalMPC(#898) - Fix loading of Python bindings on Windows when installed in arbitrary directory (#905)
0.19.0 - 2024-09-06
- Added Vector Collection Server for publishing information for real-time users in the YARPRobotLoggerDevice (#796)
- Set submodel states from IMUs in RDE and add friction torques as measurement (#793)
- Add streaming of arm fts in YarpRobotLoggerDevice (#803)
- 🤖 [
ergoCubGazeboV1_1] Add configuration files to log data with theYarpRobotLoggerDevice(#806, #808) - Added a unit test code for the
UnicyclePlanner(#815) - Added a member function to set the gravity vector of the
CentroidalDynamicsContinuous Dynamical System (#821). - Add the possibility to set the exogenous signal for the
IK::CoMTask(#824) - Add getJointTorques to python binding in SensorBridge (#825)
- Add
System::TimeProfilerclass (#826) - Add the possibility to programmatically build a
QPTSIDproblem from the content of aParametersHandler(#828) - Add support for testing if a portion of code allocates memory via
MemoryAllocationMonitor(#768) - Implement
Math::ZeroOrderSpline(#834) - Add the possibility to get only position or position/velocity from the spline (#834)
- Add the possibility to set the number of threads used by onnxruntime in
MANN(#836) - Implement
ButterworthLowPassFilterclass (#838) - Implement
Conversions::toiDynTreeRotfunction (#842) - Add the
Planners::UnicycleTrajectoryGeneratorto mimic the functionalities of the unicycle planner deployed in walking-controllers (#845) - Create python bindings of
VectorsCollection(#854) - Added a simple motor control example (#855)
- Add
setControlModeAsyncfunction to set motor control mode in an asynchronous process (#860) - Add launch parameter to
blf-logger-with-audio.shscript to set logger launch file (#867) - Add
getJointLimitsfunction to set get actuated joints position limits (#868) - Add the possibility to disable streaming of joint encoder acceleration measurements (#876)
- Implement joint torque control device and friction estimation through PINN (#866)
- Add a task in the IK to set the joint velocity limits (#879)
- Add the possibility to set the fixed joint configuration in
balancing-torque-controlapp (#880)
- 🤖 [ergoCubSN001] Add logging of the wrist and fix the name of the waist imu (#810)
- Export the CoM velocity and the angular momentum trajectory in the
CentroidalMPC(#818) - Require
iDynTree v10.0.0(#832) - Refactor
YarpRobotControl::setReferencesfunction to include optional current joint values and avoid to switch control mode inYarpRobotControl::setReferences(#833) - Set the gravity vector as an input argument of the
CentroidalMPC(#823) - Refactor the
Planners::UnicyclePlannerto mimic the functionalitites of the planner deployed in walking-controllers (#844)
- Fix the Python binding for the
change_fixed_framefunction to useEigen::Vector4dfor the input quaternion instead ofEigen::Quaterniond, which isn't supported bypybind11(#889) - Fix the barrier logic for threads synchronization (#811)
- InstallBasicPackageFiles: Fix bug of OVERRIDE_MODULE_PATH that corrupt
CMAKE_MODULE_PATHvalues set by blf transitive dependencies (#827) - InstallBasicPackageFiles: Fix compatibility with CMake 3.29.1 (#835)
- Fix
YARPRobotLoggerDeviceexcessively long time horizon for signals logged withYARP_CLOCK(#839) - Fix crash in
robot_control.set_references()if the passed vector is not the correct size (#852) - Fix
VectorsCollectionClient.read_data(False)to providecollectionas output and avoid segmentation fault (#850) - Fix
YARPRobotLoggerDevicelogging of vectors and text (#869)
0.18.0 - 2024-01-23
- 🤖 [
ergoCubSN001] UpdateYarpRobotLoggerDeviceconfiguration file to exclude the head-imu and include the arms FTs (#798) - Avoid to call
BufferedPort::prepareevery timeVectorsCollectionServer::populateDatais called (#790) - Check that the size the gains vectors in the
IK::JointTrackingTask,IK::JointLimitsTaskandTSID::JointLimitsTaskare correct (#797) - Check that the size of the weights in
MultiStateWeightProviderare all the same (#797)
0.17.0 - 2023-12-23
- Implement
ContactList::getNextContactandContactList::getActiveContactinContactcomponent (#764) - Implement
MANN::generateDummyMANNOutputandMANN::generateDummyMANNInputinMLcomponent (#771) - Add
MANNAutoregressiveandMANNTrajectoryGeneratorexamples (#771) - Implement
Spline::evaluateOrderedPointsto evaluate the spline at a set of time ordered points (#773) - Add process model for external contacts in
RobotDynamicsEstimator(#759) - 🤖 Add
ergoCubSN001configuration files for thebalancing-position-controlapplication (#776) - Implement
VectorsCollectionServerpython bindings (#776) - Implement
toString()methods inPlannedContact,ContactList,ContactPhaseandContactPhaseList(#777) - Implement
LinearSplineinMathcomponent (#782) - Add the support of QP problems with no constraint in
QPInverseKinematicsandQPTSID(#784) - Implement
blf-joints-grid-position-trackingapplication inutilities(#787) - Add the possibility to resample the contact in a given contact list (#788)
- Restructure of the
CentroidalMPCclass inReducedModelControllerscomponent. Specifically, theCentroidalMPCnow provides a contact phase list instead of indicating the next active contact. Additionally, users can now switch betweenipoptandsqpmethodto solve the optimization problem. Furthermore, the update allows for setting the warm-start for the non-linear solver. (#766) - Restructured the swing foot planner to handle corners case that came out while testing DNN-MPC integration (#765)
- Avoid returning internal references for
get_next_contactget_present_contactandget_active_contact(#765) - Introducing Metadata Support for
VectorsCollection(#767) - Restructure
MANNAutoregressiveto effectively manage resets (#771) - Restructure
MANNTrajectoryGeneratorto remove the need for foot positions insetInitialStateand enhanced reset capabilities. Corrected position and time scaling for precise CoM, base, and feet positioning (#771) - Move
SplineintoMathcomponent. (#773) - Deprecate
Planners::Spline,Planners::QuinticSpline,Planners::CubicSplinein favor ofMath::Spline,Math::QuinticSpline,Math::CubicSpline(#773) - Change use of dynamics name for fts, contacts, accelerometers, gyroscopes in
RobotDynamicsEstimator(#759) - 🤖 Modify the
YarpRobotLoggerDeviceofergoCubSN001to be compliant with the latest robots-configuration files (#772) - Modify the
balancing-position-controlapplication to be compliant with the new implementation of the spline and theVectorsCollectionServer(#776) - Add the joint tracking error plot in joint-position-tracking script (#775)
- Force the MPC to require correctly time-sampled contacts (#788)
- Remove the latex dependency in the joint-position-tracking script (#775)
0.16.1 - 2023-11-17
- [ergoCubSN000] Update the YarpRobotLogger configuration file to be mpliant with robots-configuration v2.5.2 (#763)
- Fixed compilation on Windows of fmt formatter for Eigen types (#762)
0.16.0 - 2023-11-15
- Add the possibility to control a subset of coordinates in
TSID::CoMTask(#724, #727) - Add the possibility to set the maximum number of accepted deadline miss in
System::AdvanceableRunner(#726) - Add the
getControllerOutputmethod to theTSID::SE3Taskclass (#740) - Implement the python bindings for the
Wrenchclass (#716) - Implement the python bindings for the
SimplifiedModelControllerscomponents (#716) - 🤖 Add the configuration files to use
YarpRobotLoggerDevicewithergoCubSN001(#747) - Added the
DistanceTaskandGravityTaskto the IK (#717) - Add the possibility to control a subset of linear coordinates in
TSID::SE3Task(#738) - Implement
GlobalCoPEvaluatorinContactscomponent (#745) - Implement
Wrench::getLocalCoP()method (#745) - Add tests for classes of
RobotDynamicsEstimatorlibrary (#743) - Implement inequality operator for the
PlannedContactclass (#750) - Finalize
RobotDynamicsEstimatorlibrary and add complete library test (#744) - Add Python bindings for
RobotDynamicsEstimatorlibrary (#755) - Add possibility to set the regularization on the mass matrix for the
TSID::JointDynamicsTask(#722) - Implement
RobotDynamicsEstimatorDevice(#756)
- Remove the possibility to disable the telemetry in
System::AdvanceableRunner(#726) - Change implementation of classes used in
RobotDynamicsEstimatorto optimize performance (#731) - CMake: Permit to explictly specify Python installation directory by setting the
FRAMEWORK_PYTHON_INSTALL_DIRCMake variable (#741) - Remove outdated tests for
RobotDynamicsEstimatorlibrary (#742) - Modify CI to install
RobotDynamicsEstimatorlibrary (#746) - Restructure the balancing-position-control script (#716)
- Avoid to download the robot and the network models if the tests are not enabled in
MLcomponent (#749) - Update the CMakeLists.txt to be compliant with
Python 3.12(#752)
- Fix timestamp logging for the cameras (#748)
- Fix missing include(FetchContent) in Python bindings CMake code (#757)
0.15.0 - 2023-09-05
- 🤖 Add the configuration files to use
YarpRobotLoggerwithergoCubGazeboV1(#690) - Implement
RK4integrator inContinuousDynamicalSystemcomponent and expose the python bindings (#711) - Implement
blf-balancing-torque-controlinutilities(#707) - Implement
setControlModeinIRobotControland the associated python bindings (#707) - Expose
ContactBasemethods forDiscreteGeometryContactbindings (#712) - Expose the CoM trajectory and angular momentum trajectory in
MANNTrajectoryGeneratorbindings (#712) - Expose the CoM trajectory computed by the
CentroidalMPC(#712) - Implement python bindings for
CameraBridge(#695) - Implement
constructRDGBSensorClient()inRobotInterfacecomponent (#695)
- Use
std::chorno::nanosecondsinclockandAdvanceableRunner(#702) - Give the possibility to set an external wrench in the
CentroidalDynamicsinstead of a pure force (#705) - Use c version of
qhullin the Planner component. This fixes the compatibility with PCL in ubuntu 20.04 (#713) - Make
ICameraBridge::isValid()virtual function (#695) - icub-models 2.0.0 changed the name of the FT sensors in the iCub's URDF from being named
<identifier>_ft_sensor(likel_arm_ft_sensor,l_leg_ft_sensor, ...) to<identifier>_ft(likel_arm_ft,l_leg_ft, ...). However, the yarprobotinterface configuration files in blf continued to refer to the sensors as<identifier>_ft_sensor, creating errors for software that was trying to match sensors find in URDF and sensors as exposed by the YARP's multipleanalogsensorsserver device. This PR changes all the instances of FT sensor names in iCub-related configuration files contained in blf to<identifier>_ft, restoring compatibility with icub-models 2.0.0, robots-configuration releases >= 2.5.0 and ergocub-software >= 0.3.4, see robotology/robots-configuration#562 for more details (#720)
- Remove duplicated
find_packageinBipedalLocomotionFrameworkDependencies.cmakefile (#709) - Fix handling of feedforward acceleration in
BipedalLocomotion::TSID::JointTrackingTask::setSetPoint(#719)
0.14.1 - 2023-07-07
- Fix python bindings compilation when toml is not installed (#700)
- Fix
YarpRobotLoggerDeviceifYARP_ROBOT_NAMEis not defined (#701)
0.14.0 - 2023-07-04
- Implement a class to perform inference with the MANN network (#652, #686)
- Add some useful methods to the
SubModelandSubModelKinDynWrapperclasses (#661) - Implement
Dynamics,ZeroVelocityDynamics, andJointVelocityStateDynamicsclasses inRobotDynamicsEstimator(#662) - Implement
AccelerometerMeasurementDynamicsandGyroscopeMeasurementDynamicsclasses inRobotDynamicsEstimator(#666) - Implement
FrictionTorqueStateDynamicsandMotorCurrentMeasurementDynamicsclasses inRobotDynamicsEstimator(#667) - Add logging of FTs on the ergoCub legs and fix FT and IMU port names (#671)
- Add the possibility to log the video stream as set of frames or as video in
YarpRobotLoggerDevice(#672) - Add the possibility to log the RGBD stream in
YarpRobotLoggerDevice(#672) - Implement
LieGroupDynamicsinContinuousDynamicalSystemcomponent (#659) - Implement
Conversions::toiDynTreePose()(#659) - Implement
Conversions::toiDynTreePose()(#659) - Implement
MANNAutoregressiveclass inMLcomponent (#659) - Implement
UkfStateclass inRobotDynamicsEstimator(#669) - Implement
MANNTrajectoryGeneratorclass inMLcomponent (#668) - Implement a bash script to automatically log the audio along with the YarpRobotLoggerDevice (#681)
- Implement
QuadraticBezierCurveinMathcomponent (#689) - Implement
MANNAutoregressiveInputBuilderinMLcomponent (#689) - Implement the
CentroidalMPCinReducedModelControllerscomponent (#645) - Implement the
BaseEstimatorFromFootIMUin theEstimatorscomponent (#641) - Add bindings for
CentroidalMPC,CentroidalDynamics,ContactPhaseList,DiscreteGeometryContactandCornercomponent (#650)
- Restructure application folders of
YarpRobotLoggerDevice(#670) - 🤖 [ergoCubSN000] Clean the mas remapper files of the
YarpRobotLoggerDevice(#673) - 🤖 [ergoCubSN000] Enable the logging of the realsense camera
YarpRobotLoggerDevice(#672) - Add the possibility to force the internal state of the
SchmittTrigger(#684) - Add the possibility to update the contact list in the swing foot planner when the contact is not active and the new orientation is different from the previous one (#688)
- Add the possibility to set the boundary condition for the velocity and acceleration of the
SO3Planner(#688) - Satisfies the rule of 5 for
InputPort,OutputPort,Advanceable,SinkandSourceinSystemcomponent (#397).
- Fix RobotDynamicsEstimator compilation dependencies (#665)
- Fix the metadata assignment of the rgbd cameras (#672)
- Fix the RGB to BGR conversion in YarpCameraBridge for FlexImage (#672)
- Make the YarpSensorBridge compatible with MAS that use the same name between gyro ac magn and orientation (#692)
0.13.0 - 2023-04-22
- Implement the
DiscreteGeometryContactin Contacts component (#626) - Implement the
SchmittTriggerin componentMathand the associated python bindings (#624) - Add the support of
std::chronoin The text logging (#630) - Add the possibility to retrieve and set duration from the
IParametersHandler(#630) - Add the possibility to update the contact list in the swing foot trajectory planner (#637)
- Implement
System::NamedTupleclass (#642) - Implement
ContinuousDynamicalSystem::CentroidalDynamicsclass (#642)
- Update the
IK tutorialto useQPInverseKinematics::build(#621) - Handle case where no FT sensors are specified to split the model (#625)
- General restructure of the
ContactDetectorand the derived classes (SchmittTriggerDetectorandFixedFootDetector) (#624) Thanks to this refactory theFixedFootDetectorusage becomes similar to the othersadvanceable. Indeed nowFixedFootDetector::advace()considers the input set by the user and provides the corresponding output.⚠️ Even if this modification do not break the API the user may notice some strange behavior ifadvancewas called after getting the output of the detector. - Restructure the
Contactscomponent to handle time withstd::chrono::nanoseconds(#630) - Restructure the
Plannerscomponent to handle time withstd::chrono::nanoseconds(#630) - Restructure the
FloatingBaseEstimatorcomponent to handle time withstd::chrono::nanoseconds(#630) - Update the
blf-position-trackingto handle time withstd::chrono::nanoseconds(#630) - Update the python bindings to consider the time with
std::chrono::nanoseconds(#630) - Robustify SubModelCreator and SubModelKinDynWrapper tests (#631)
SwingFootTrajectoryPlanner::advance()must be called before getting the output (#637)- Update the already existing classes in
ContinuousDynamicalSystemto be compatible with theSystem::NamedTuple(#642) - Update the code to be compatible with LieGroupControllers v0.2.0 (#653)
- Allow use of vectors for task gains (#654)
Catch2is now downloaded withFetchContentifBUILD_TESTINGis set toON(#655)- The tests now uses
Catch2 v3(#655) - Add the possibility to set vectorial gains in CoM IK and TSID tasks (#656)
- Return an error if an invalid
KinDynComputationsobject is passed toQPInverseKinematics::build()(#622) - Fix
QPTSIDdocumentation (#634) - Fix error messages in
QPTSIDclass (#639) - Fix compilation failure when using CMake 3.26.1 and pybind11 2.4.3 (#643)
- Fixed changelog checker (#856)
0.12.0 - 2023-03-07
- Add the possibility to attach all the multiple analog sensor clients (#569)
- Add a tutorial for the inverse kinematics (#596)
- Implement the ROS2 sink for the
TextLogging(#587) - Implement the
QPFixedBaseInverseKinematicsin theIKcomponent (#599) - 🤖 [ergoCubSN000] Add configuration files for the YarpRobotLoggerDevice (#600)
- Add functions to split a model in a set of submodels in the Estimator component (#604)
- Add the possibity to call the advanceable capabilities of the
QuinticSplinefrom the python (#609) - Implement the
CubicSplinepython bindings (#609) - Implement the python bindings for the iDynTree to manif conversions (#610)
- Implement
blf-balancing-position-controlapplication (#611) - Implement the python bindings for
YarpTextLogging(#611) - Add SubModelKinDynWrapper class to handle the
KinDynComputationobject of a sub-model (#605) - Implement the
JointLimitsTaskfor the IK (#603) - Add the possibility to programmatically build an IK problem from a configuration file (#614, #619)
- Ask for
toml++ v3.0.1(#581) - The YarpRobotLogger will now automatically connect to the exogenous signal port if available (#570)
- 🤖 [iCubGenova09] Add the left and right hands skin (raw and filtered) data acquisition (#570)
- Add informative prints
YarpSensorBridge::Impl(#569) - The minimum version of iDynTree now supported is iDynTree 4.3.0 (#588).
- Allow using the
iDynTree swigbindings inQPFixedBaseTSIDfor the kindyncomputation object (#599) - Add the possibility to customize the video codec in the
YarpRobotLoggerDevice(#607)
- Return an invalid
PolyDriverDescriptorifdescriptionis not found inconstructMultipleAnalogSensorsRemapper()(#569) - Fix compatibility with OpenCV 4.7.0 (#589)
- Fix
attachRemappedRemoteControlBoardinYarpSensorBridgewhen theRemoteControlBoardis not the first polydriver in the polydriverlist (#608) - Fix race condition in System::ClockBuilder (#618)
0.11.1 - 2022-12-19
- Fix the compilation of the
YarpRobotLoggerDeviceinWindowsandmacOS(#580)
0.11.0 - 2022-12-17
- Log the status of the system in
YarpRobotLoggerDevice(#571) - Add the
ROS2implementation for Clock class (#575)
- YARP devices are now enabled by default if YARP is found (#576).
- Restructure the python bindings to support official
iDynTreebindings (#578) - Remove unofficial
iDynTreebindings based on pybind11 (#578)
- Fix compatibility with YARP 3.8 (#577).
0.10.0 - 2022-09-23
- Add the possibility to set the exogenous feedback for the
IK::SE3Task(#567) - Implement
RobotInterface::constructMultipleAnalogSensorsClient()andRobotInterface::constructMultipleAnalogsensorsRemapper()methods (#568)
- Add the possibility to log only a subset of text logging ports in
YarpRobotLoggerdevice (#561) - Accept boolean as integer while getting an element from searchable in
YarpUtilities(#566)
- Fix typo in the
RobotInterface::constructGenericSensorClient()documentation (#568) - Fix compatibility with qhull installed by vcpkg
2022.07.25and robotology-superbuild-dependencies-vcpkg0.10.1(#565).
0.9.0 - 2022-09-09
- Implement the
MultiStateWeightProviderinContinuousDynamicalSystem(#555) - Implement
PortInputandPortOutputinSystem(#555) - Implement
toManifTwistinConversionscomponent (#557) - Add the default value for the desired spatial and angular velocity to the
IK::SO3TaskandIK::SE3Task(#557) - Implement the
IK::R3Taskclass (#559)
- Now
Advanceableinherits fromPortInputandPortOutput(#555)
- Fix the dependency required to compile the YarpRobotLogger device (#554)
- Fix the compatibility with fmt v9.0.0 (#556)
0.8.0 - 2022-07-29
- Add the possibility to log the YarpTextLogging in the YarpRobotLogger (#541)
- Enable the logging FTs and IMU logging of iCubGenova09 (#546)
- Ported
YarpLoggerDevicetorobometry(#533) - bipedal locomotion framework now depends on YARP 3.7.0 (#541)
- Avoid to use deprecated function cv::aruco::drawAxis in ArucoDetector to fix compilation with OpenCV 4.6.0 (#552)
0.7.0 - 2022-06-21
- Implement the python bindings for the clock machinery and for the yarp clock (#500)
- Implement the
IWeightProviderinterface and theConstantWeightProviderclass in the System component (#506) - Add installation of pip metadata files for when blf python bindings are installed only via CMake (#508)
- Implement the python bindings for the VectorsCollection message and the associated buffered port (#511)
- Implement the
VectorsCollectionWrapperdevice for collection of arbitrary vector ports (#512) - Add reading of right upper leg FT for
iCubGenova09and associated cartesian wrench inYarpRobotLoggerDeviceconfiguration files (#513) - Add reading of right and left arms FT for
iCubGenova09inYarpRobotLoggerDeviceconfiguration files (#515) - Add reading of right and left arms and right upper leg FTs and cartesian wrenches for
iCubGazeboV3inYarpRobotLoggerDevice(#525) - Add the possibility to retrieve the temperature sensor from
SensorBridge(#519) - Add the possibility to set only the velocity in
CubicSpline::setInitialConditionsandCubicSpline::setFinalConditions(#528) - Implement the python bindings for the
ContinuousDynamicalSystemcomponent (#532) - Add the possibility to log the video in the
YarpRobotLoggerDevice(#516)
- An error it will be returned if the user tries to change the clock type once the
clock()has been already called once (#500) - Log the arms external wrenches on the YarpRobotLogger for iCubGenova09 (#502)
- IK and TSID now uses the weight provider to specify the weight associated to a task (#506)
- The
Planners,System,RobotInterfaceandYarpImplementationcomponents are no more mandatory to compile the python bindings (#511) - Reorganize the multiple FT sensor and external wrench files into a single file in the YarpRobotLoggerDevice (#525)
- Save the robot name and the names of the channel's elements in the YarpRobotLoggerDevice (#522)
- Use icub-models to get the urdf models for the tests (#526)
- The FT sensor are now considered as
multianalogsensorinYarpSensorBridge(#519) - Make
YarpRobotLoggercompatible withyarp-telemetryv0.5.1 (#535) - Set for
yarp-telemetryminimum version to v0.5.1 (#535) - Make
YarpCameraBridge::getColorImage()andYarpCameraBridge::getDepthImage()thread safe (#516) - Deprecate
YarpCameraBridge::get()in favor ofYarpCameraBridge::getMetaData()(#516) - Move from LGPL to BSD3 license (#550)
- Remove outdated includes in YarpRobotLoggerDevice.cpp (#502)
0.6.0 - 2022-01-10
- Add the reading of the orientation of the head IMU in
YarpRobotLoggerDevice(#471) - Add the possibility to change the weight in TSID/IK (#475)
- Implement a
FirstOrderSmootherclass inContinuousDynamicalSystemcomponent (#476) - Implement
getIntegrationStepinFixedIntegrationclass (#476) - Add the possibility to create custom
LinearTasksin python (#480) - Implement the possibility to compute the residual terms in the
LinearTask(#483) - Define
VectorsCollectionmessage inYarpUtilities(#483) - Add the reading of the joint and motor acceleration in
YarpSensorBridge(#492)
- Use yarp clock instead of system clock in
YarpRobotLoggerDevice(#473) - Reduce code duplication in python bindings (#484)
- Use
TextLoggerinYarpRobotLoggerDeviceinstead ofyarpcommands (#486) - Ask for
osqp-eigen 0.6.4.100(#490) - Use enum underlying type to convert
TextLoggingverbosity level tospdlogverbosity level (#495) yarp-telemetryis now a dependency of theYarpRobotLoggerDevice(#487)- Fix deprecated
YARPfunctions inYarpUtilitiescomponent (#491)
- Fix the population of the jointAccelerations and baseAcceleration variables in QPTSID (#478)
- Fix the documentation in the
Advanceableclass (#476) - Add virtual destrutors in
System::Sink,System::Source,System::LinearTask,System::ITaskControlMode,TSID::TSIDLinearTaskandIK::IKLinearTaskclasses (#480) - The joint torques is now correctly retrieved in QPTSID class (#482)
- The motor velocity and positions are now returned in rad/s and rad (#489)
- Fix
YarpRobotLoggerDevicedocumentation (#472)
0.5.0 - 2021-11-30
- Implement Python bindings for the TSID component (#428)
- Add the possibility to set the name of each element of a variable stored in the variables handler (#429)
- Develop the python bindings for toml implementation of the parameters handler (#432)
- Implement the VariableRegularizationTask in TSID (#431)
- Implement
create_tsidutility function for the python bindings (#433) - Implement the
AngularMomentumTaskin theTSIDcomponent and the associated python bindings (#436) - Implement
QPTSID::toStringmethod and the associated python bindings (#440) - Implement
ContactWrenchpython bindings (#441) - Implement AngularMomentum task in the IK component and the associated bindings (#443)
- Implement
create_ikutility function for the python bindings (#444) - Add the possibility to set the task controller mode for the SE3Task in the TSID component (#445)
- Expose the
ITaskControlModeclass in the python bindings (#445) - Add the possibility to enable/disable the joints and motors state logging in the
YarpRobotLoggerDevice(#453) - Implement
QPInverseKinematics::toStringmethod and the associated python bindings (#461) - Add the cartesian wrenches logging in
YarpRobotLoggerDevice(#447) - Implement the python bindings for the manif conversions methods (#465)
- Inherits all the
Eigen::Matrixconstructors in theWrenchdclass (#441) - Bump the minimum
cmakeversion to3.16.0(#468)
- Fix Analog FT Sensor reading in
YarpSensorBridgeImpl(#459) - Fix config files in
YarpRobotLoggerDevicefor iCub3 head IMU reading (#467)
0.4.0 - 2021-10-15
- Implement
AdvanceableRunner::isRunning()method (#395) - Implement
ContactPhaseList::getPresentPhase()method (#396) - Add a synchronization mechanism for the
AdvanceableRunnerclass (#403) - Add the possibility to use spdlog with YARP (#408)
- Add new Advanceable exposing
UnicyclePlanner(#320)
- Add
nameparameter to theAdvanceableRunnerclass (#406) - Set the required
spdlogversion in the cmake file (#415) - Add features to FTIMULoggerDevice and rename it in YarpRobotLoggerDevice (#405)
- Fix missing components dependencies in the
CMakemachinery (#414) - Fixed missing include in
FloatingBaseEstimatorIO.h(#417)
0.3.0 - 2021-08-12
- Implement
CubicSplineclass (#344) - Implement
PWMcontrol in RobotControl class (#346) - Implement
ContactWrenchConeclass in Math component (#352) - Implement
skewfunction in Math component (#352) - Implement
QPTSIDclass (#366) - Implement motor pwm, motor encoders, wbd joint torque estimates, pid reading in
YarpSensorBridge(#359). - Implement FeasibleContactWrenchTask for TSID component (#369).
- Implement python bindings for QPInverseKinematics class (#303)
- Implement
ControlTaskin for System component (#373). - Allow changing the log verbosity (#385)
- Implement the CoMZMP controller (#387)
- Add common Python files to gitignore (#338)
- General improvements of
blf-calibration-delta-updater(#361) - Add the possibility to control a subset of coordinates in
IK::SE3Task(#356) - Add the possibility to control a subset of coordinates in
IK::CoMTask(#357) - Reduce the duplicate code in IK and TSID (#364)
QPFixedBaseTSIDnow inherits fromQPTSID(#366)- Enable the Current control in
RobotInterfaceclass (#375) - Add the possibility to disable and enable the PD controllers in
IK::SE3Task(#373). - Add the possibility to use manif objects in the ForwardEuler integrator (#379).
- Fixed the crashing of
YarpSensorBridgewhile trying to access unconfigured control board sensors data by adding some checks (#378) - Fixed the compilation of Python bindings (enabled by the
FRAMEWORK_COMPILE_PYTHON_BINDINGSCMake option) when compiling with Visual Studio (#380). - Fixed the
TOMLandYARPimplementation of the parameters handler when astd::vector<bool>is passed to thesetParameter()method (#390).
0.2.0 - 2021-06-15
- Implement IRobotControl python bindings (#200)
- Implement ISensorBridge python bindings (#203)
- Implement
LeggedOdometryclass as a part ofFloatingBaseEstimatorslibrary and handle arbitrary contacts inFloatingBaseEstimator. (#151) - Implement the possibility to set a desired reference trajectory in the TimeVaryingDCMPlanner. (#208)
- Implement SchmittTriggerDetector python bindings (#213)
- Implement ModelComputationsHelper for quick construction of KinDynComputations object using parameters handler (#216)
- Implement FloatingBaseEstimator and LeggedOdometry python bindings (#218)
- Add spdlog as mandatory dependency of the project (#225)
- Implement
ICameraBridgeandIPointCloudBridgeinterface classes as a part ofPerceptionInterfacelibrary. (#165) - Implement
RealSensedriver class as a part ofPerceptionCapturelibrary. (#165) - Implement
realsense-testutility application. (#165) - Implement the inverse kinematics component (#229)
- Implement LinearizedFrictionCone class (#244)
- Added a check on whether the installed public headers have the correct folder structure (#247)
- Implement python bindings for VariablesHandler class (#234)
- Implement
PerceptionFeatureslibrary and implementArucoDetector. (#159) - Implement FixedBaseDynamics class (#242)
- Implemented Sink and Source classes (#267)
- Implement the IClock, StdClock and YarpClock classes (#269)
- Implement
YarpCameraBridgeclass for Yarp implementation of ICameraBridge (#237) - Implement
PointCloudProcessorclass and modifyrealsense-testto test point clouds handling with Realsense. (#236) - Implement
AdvanceableRunnerandSharedResourceclasses in System component (#272) - Implement
handleQuitSignals()function in System component (#277) - Implement TaskSpaceInverseDynamics interface (#279)
- Implement
Wrenchclass (#279) - Implement
SO3TaskinTSIDcomponent (#281) - Implement clone method in ParametersHandler classes (#288)
- Implement
VariablesHandler::clear()andVariablesHandler::initialize()(#291) - Implement the possibility to set the default contact in the
ContactListclass (#297) - Implement
FixedFootDetectorclass (#284) - Implement QPFixedBaseTSID class (#251)
- Implement
YarpImplementation::setFromFile()(#307) - Implement
CoMTaskin TSID (#304) - Implement
YarpParametersHandlerbindings (#309) - Implement
contactListMapFromJson()andcontactListMapToJson()methods and python bindings (#316) - Implement a matioCpp-based strain2 sensors' FT-IMU logger example device (#326)
- Implement
TomlImplementationinParametersHandler(#328) - Implement blf_calibration_delta_updater.py application (#332)
- Move all the Contacts related classes in Contacts component (#204)
- Move all the ContactDetectors related classes in Contacts component (#209)
- The DCMPlanner and TimeVaryingDCMPlanner initialize functions take as input an std::weak_ptr. (#208)
- Use
Math::StandardAccelerationOfGravitationinstead of hardcoding 9.81. (#211) - Convert iDynTree types in FloatingBaseEstimators component to Eigen/manif types (#215)
- Use std::optional instead of raw pointer in ISensorBridge. (#226)
- Use
System::LinearTaskin TSID component (#240) - Restructure python bindings in submodules (#238)
- Integrators and DynamicalSystems are now in the
ContinuousDynamicalSystemcomponent (#242) - Add Input template class to
System::Advanceable(#267) - Add support for landmarks and kinematics-free estimation in
FloatingBaseEstimators. (#254) - If FRAMEWORK_DETECT_ACTIVE_PYTHON_SITEPACKAGES is OFF, for Python bindings use installation directory provided by sysconfig Python module. (#274)
- Reduce memory allocation in
YarpSensorBridge(#278) - Use
TextLogginginVariablesHandlerclass (#291) - Fix
YarpImplementation::setParameterPrivate()when a boolean or a vector of boolean is passed (#311) - Add
foot_take_off_accelerationandfoot_take_off_velocityparameters in theSwingFootPlannerclass (#323) - Change the parameters handler verbosity (#330)
- Restore backward compatibility of SwingFootPlanner parameters (#334)
- Bump manif version to 0.0.4 (#339)
- Fix missing implementation of
YarpSensorBridge::getFailedSensorReads(). (#202) - Fixed
mas-imu-testconfiguration files after FW fix. - Fixed the implementation ``YarpSensorBridge::attachAllSixAxisForceTorqueSensors()`. (#231)
- Avoid the "Generating the Urdf Model from" message to appear when doing ccmake. (#243)
- Fixed the installation path of public headers related to perception libraries. (#245)
- Fixed InstallBasicPackageFiles to avoid the same problem of gbionics/matio-cpp#41 (#253)
- Call
positionInterface->setRefSpeeds()only once when a position reference is set inYarpRobotControl(#271) - Fix initialization of reference frame for world in
LeggedOdometryclass. (#289) LeggedOdometry::Impl::updateInternalContactStates()is now called even if the legged odometry is not initialize. This was required to have a meaningful base estimation the first timeLeggedOdometry::changeFixedFrame()is called. (#292)- Avoid to use the default copy-constructor and copy-assignment operator in
ContactPhaseListclass (#295) - Fix
toString()method ofVariablesHandlerclass (#302) - Fix in
YarpUtilities::getVectorFromSearchablewhen a vector of boolean is passed as input (#313) - Various fixes for the yarp devices (#337)
0.1.1 - 2021-05-08
- Fix the documentation in
TemplateHelpers.h
0.1.0 - 2021-02-22
- The
CHANGELOG.mdfile - The
cmake/BipedalLocomotionControllersFindDepencies.cmakefile - The
cmake/AddInstallRPATHSupport.cmakefile - The
cmake/AddUninstallTarget.cmakefile - The
cmake/FindEigen3.cmakefile - The
cmake/InstallBasicPackageFiles.cmakefile - Implement the first version of the
BipedalLocomotionControllersinterface - Implement the first version of the
YarpUtilitieslibrary - Implement
ParametersHandlerlibrary (https://github.com/ami-iit/bipedal-locomotion-controllers/pull/13) - Implement
GenericContainer::Vector(https://github.com/ami-iit/bipedal-locomotion-controllers/pull/29) - Implement
Estimatorslibrary (https://github.com/ami-iit/bipedal-locomotion-controllers/pull/23) - Implement
Contactlibrary. (#43 and #45) - Implement the first version of the
TimeVaryingDCMPlanner(#61) - Implement the Quintic Spline class (#83)
- Implement the
ConvexHullHelperclass (#51) - Implement the
DynamicalSystemandIntegratorclass (#46) - Implement the
IRobotControlinterface and the YARP specialization (#97, #192) - Add
SensorBridgeinterface (#87) - Add the
YarpSensorBridgeImplementation (#106) - Added
CommonConversions,ManifConversions, andmatioCppConversionslibraries to handle type conversions. (#138 and #143) - Implement the
JointPositionTrackingapplication. (#136) - Initial implementation of Python bindings using pybind11 (#134)
- Implement
FloatingBaseEstimatorDeviceYARP device for wrapping floating base estimation algorithms. (#130) - Implement Continuous algebraic Riccati equation function (#157)
- Implement YARP based
ROSPublisherin theYarpUtilitieslibrary. (#156) - Implement example YARP device
ROSPublisherTestDevicefor understanding the usage ofROSPublisher. (#160) - Implement
TSIDlibrary. (#167, #170, #178) - Implement the
JointTrajectoryPlayerapplication. (#169 - Implement
ContactDetectorslibrary. (#142) - Added
mas-imu-testapplication to check the output of MAS IMUs (#62) - Implement motor currents reading in
YarpSensorBridge. (#187)