Skip to content

Latest commit

 

History

History
589 lines (529 loc) · 62.1 KB

CHANGELOG.md

File metadata and controls

589 lines (529 loc) · 62.1 KB

Changelog

All notable changes to this project are documented in this file.

Added

  • 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 the YarpRobotLoggerDevice (#806, #808)
  • Added a unit test code for the UnicyclePlanner (#815)
  • Added a member function to set the gravity vector of the CentroidalDynamics Continuous 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::TimeProfiler class (#826)
  • Add the possibility to programmatically build a QPTSID problem from the content of a ParametersHandler (#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 ButterworthLowPassFilter class (#838)
  • Implement Conversions::toiDynTreeRot function (#842)
  • Create python bindings of VectorsCollection (#854)
  • Added a simple motor control example (#855)

Changed

  • 🤖 [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::setReferences function to include optional current joint values and avoid to switch control mode in YarpRobotControl::setReferences (#833)
  • Set the gravity vector as an input argument of the CentroidalMPC (#823)
  • Refactor the Planners::UnicyclePlanner to mimic the functionalitites of the planner deployed in walking-controllers (#844)

Fixed

  • Fix the barrier logic for threads synchronization (#811)
  • InstallBasicPackageFiles: Fix bug of OVERRIDE_MODULE_PATH that corrupt CMAKE_MODULE_PATH values set by blf transitive dependencies (#827)
  • InstallBasicPackageFiles: Fix compatibility with CMake 3.29.1 (#835)
  • Fix YARPRobotLoggerDevice excessively long time horizon for signals logged with YARP_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 provide collection as output and avoid segmentation fault (#850)

Removed

0.18.0 - 2024-01-23

Changed

  • 🤖 [ergoCubSN001] Update YarpRobotLoggerDevice configuration file to exclude the head-imu and include the arms FTs (#798)
  • Avoid to call BufferedPort::prepare every time VectorsCollectionServer::populateData is called (#790)
  • Check that the size the gains vectors in the IK::JointTrackingTask, IK::JointLimitsTask and TSID::JointLimitsTask are correct (#797)
  • Check that the size of the weights in MultiStateWeightProvider are all the same (#797)

0.17.0 - 2023-12-23

Added

  • Implement ContactList::getNextContact and ContactList::getActiveContact in Contact component (#764)
  • Implement MANN::generateDummyMANNOutput and MANN::generateDummyMANNInput in ML component (#771)
  • Add MANNAutoregressive and MANNTrajectoryGenerator examples (#771)
  • Implement Spline::evaluateOrderedPoints to evaluate the spline at a set of time ordered points (#773)
  • Add process model for external contacts in RobotDynamicsEstimator (#759)
  • 🤖 Add ergoCubSN001 configuration files for the balancing-position-control application (#776)
  • Implement VectorsCollectionServer python bindings (#776)
  • Implement toString() methods in PlannedContact, ContactList, ContactPhase and ContactPhaseList (#777)
  • Implement LinearSpline in Math component (#782)
  • Add the support of QP problems with no constraint in QPInverseKinematics and QPTSID (#784)
  • Implement blf-joints-grid-position-tracking application in utilities (#787)
  • Add the possibility to resample the contact in a given contact list (#788)

Changed

  • Restructure of the CentroidalMPC class in ReducedModelControllers component. Specifically, the CentroidalMPC now provides a contact phase list instead of indicating the next active contact. Additionally, users can now switch between ipopt and sqpmethod to 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_contact get_present_contact and get_active_contact (#765)
  • Introducing Metadata Support for VectorsCollection (#767)
  • Restructure MANNAutoregressive to effectively manage resets (#771)
  • Restructure MANNTrajectoryGenerator to remove the need for foot positions in setInitialState and enhanced reset capabilities. Corrected position and time scaling for precise CoM, base, and feet positioning (#771)
  • Move Spline into Math component. (#773)
  • Deprecate Planners::Spline, Planners::QuinticSpline, Planners::CubicSpline in favor of Math::Spline, Math::QuinticSpline, Math::CubicSpline (#773)
  • Change use of dynamics name for fts, contacts, accelerometers, gyroscopes in RobotDynamicsEstimator (#759)
  • 🤖 Modify the YarpRobotLoggerDevice of ergoCubSN001 to be compliant with the latest robots-configuration files (#772)
  • Modify the balancing-position-control application to be compliant with the new implementation of the spline and the VectorsCollectionServer (#776)
  • Add the joint tracking error plot in joint-position-tracking script (#775)
  • Force the MPC to require correctly time-sampled contacts (#788)

Removed

  • Remove the latex dependency in the joint-position-tracking script (#775)

0.16.1 - 2023-11-17

Changed

  • [ergoCubSN000] Update the YarpRobotLogger configuration file to be mpliant with robots-configuration v2.5.2 (#763)

Fixed

  • Fixed compilation on Windows of fmt formatter for Eigen types (#762)

0.16.0 - 2023-11-15

Added

  • 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 getControllerOutput method to the TSID::SE3Task class (#740)
  • Implement the python bindings for the Wrench class (#716)
  • Implement the python bindings for the SimplifiedModelControllers components (#716)
  • 🤖 Add the configuration files to use YarpRobotLoggerDevice with ergoCubSN001 (#747)
  • Added the DistanceTask and GravityTask to the IK (#717)
  • Add the possibility to control a subset of linear coordinates in TSID::SE3Task (#738)
  • Implement GlobalCoPEvaluator in Contacts component (#745)
  • Implement Wrench::getLocalCoP() method (#745)
  • Add tests for classes of RobotDynamicsEstimator library (#743)
  • Implement inequality operator for the PlannedContact class (#750)
  • Finalize RobotDynamicsEstimator library and add complete library test (#744)
  • Add Python bindings for RobotDynamicsEstimator library (#755)
  • Add possibility to set the regularization on the mass matrix for the TSID::JointDynamicsTask (#722)
  • Implement RobotDynamicsEstimatorDevice (#756)

Changed

  • Remove the possibility to disable the telemetry in System::AdvanceableRunner (#726)
  • Change implementation of classes used in RobotDynamicsEstimator to optimize performance (#731)
  • CMake: Permit to explictly specify Python installation directory by setting the FRAMEWORK_PYTHON_INSTALL_DIR CMake variable (#741)
  • Remove outdated tests for RobotDynamicsEstimator library (#742)
  • Modify CI to install RobotDynamicsEstimator library (#746)
  • Restructure the balancing-position-control script (#716)
  • Avoid to download the robot and the network models if the tests are not enabled in ML component (#749)
  • Update the CMakeLists.txt to be compliant with Python 3.12 (#752)

Fixed

  • Fix timestamp logging for the cameras (#748)
  • Fix missing include(FetchContent) in Python bindings CMake code (#757)

0.15.0 - 2023-09-05

Added

  • 🤖 Add the configuration files to use YarpRobotLogger with ergoCubGazeboV1 (#690)
  • Implement RK4 integrator in ContinuousDynamicalSystem component and expose the python bindings (#711)
  • Implement blf-balancing-torque-control in utilities (#707)
  • Implement setControlMode in IRobotControl and the associated python bindings (#707)
  • Expose ContactBase methods for DiscreteGeometryContact bindings (#712)
  • Expose the CoM trajectory and angular momentum trajectory in MANNTrajectoryGenerator bindings (#712)
  • Expose the CoM trajectory computed by the CentroidalMPC (#712)
  • Implement python bindings for CameraBridge (#695)
  • Implement constructRDGBSensorClient() in RobotInterface component (#695)

Changed

  • Use std::chorno::nanoseconds in clock and AdvanceableRunner (#702)
  • Give the possibility to set an external wrench in the CentroidalDynamics instead of a pure force (#705)
  • Use c version of qhull in 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 (like l_arm_ft_sensor, l_leg_ft_sensor, ...) to <identifier>_ft (like l_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)

Fixed

  • Remove duplicated find_package in BipedalLocomotionFrameworkDependencies.cmake file (#709)
  • Fix handling of feedforward acceleration in BipedalLocomotion::TSID::JointTrackingTask::setSetPoint (#719)

0.14.1 - 2023-07-07

Fixed

  • Fix python bindings compilation when toml is not installed (#700)
  • Fix YarpRobotLoggerDevice if YARP_ROBOT_NAME is not defined (#701)

0.14.0 - 2023-07-04

Added

  • Implement a class to perform inference with the MANN network (#652, #686)
  • Add some useful methods to the SubModel and SubModelKinDynWrapper classes (#661)
  • Implement Dynamics, ZeroVelocityDynamics, and JointVelocityStateDynamics classes in RobotDynamicsEstimator (#662)
  • Implement AccelerometerMeasurementDynamics and GyroscopeMeasurementDynamics classes in RobotDynamicsEstimator (#666)
  • Implement FrictionTorqueStateDynamics and MotorCurrentMeasurementDynamics classes in RobotDynamicsEstimator (#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 LieGroupDynamics in ContinuousDynamicalSystem component (#659)
  • Implement Conversions::toiDynTreePose() (#659)
  • Implement Conversions::toiDynTreePose() (#659)
  • Implement MANNAutoregressive class in ML component (#659)
  • ImplementUkfState class in RobotDynamicsEstimator (#669)
  • Implement MANNTrajectoryGenerator class in ML component (#668)
  • Implement a bash script to automatically log the audio along with the YarpRobotLoggerDevice (#681)
  • Implement QuadraticBezierCurve in Math component (#689)
  • Implement MANNAutoregressiveInputBuilder in ML component (#689)
  • Implement the CentroidalMPC in ReducedModelControllerscomponent (#645)
  • Implement the BaseEstimatorFromFootIMU in the Estimators component (#641)
  • Add bindings for CentroidalMPC, CentroidalDynamics, ContactPhaseList, DiscreteGeometryContact and Corner component (#650)

Changed

  • 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, Sink and Source in System component (#397).

Fixed

  • 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

Added

  • Implement the DiscreteGeometryContact in Contacts component (#626)
  • Implement the SchmittTrigger in component Math and the associated python bindings (#624)
  • Add the support of std::chrono in 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::NamedTuple class (#642)
  • Implement ContinuousDynamicalSystem::CentroidalDynamics class (#642)

Changed

  • Update the IK tutorial to use QPInverseKinematics::build (#621)
  • Handle case where no FT sensors are specified to split the model (#625)
  • General restructure of the ContactDetectorand the derived classes (SchmittTriggerDetector and FixedFootDetector) (#624) Thanks to this refactory the FixedFootDetector usage becomes similar to the others advanceable. Indeed now FixedFootDetector::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 if advance was called after getting the output of the detector.
  • Restructure the Contacts component to handle time with std::chrono::nanoseconds (#630)
  • Restructure the Planners component to handle time with std::chrono::nanoseconds (#630)
  • Restructure the FloatingBaseEstimator component to handle time with std::chrono::nanoseconds(#630)
  • Update the blf-position-tracking to handle time with std::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 the System::NamedTuple (#642)
  • Update the code to be compatible with LieGroupControllers v0.2.0 (#653)
  • Allow use of vectors for task gains (#654)
  • Catch2 is now downloaded with FetchContent if BUILD_TESTING is set to ON (#655)
  • The tests now usesCatch2 v3 (#655)
  • Add the possibility to set vectorial gains in CoM IK and TSID tasks (#656)

Fixed

  • Return an error if an invalid KinDynComputations object is passed to QPInverseKinematics::build() (#622)
  • Fix QPTSID documentation (#634)
  • Fix error messages in QPTSID class (#639)
  • Fix compilation failure when using CMake 3.26.1 and pybind11 2.4.3 (#643)

0.12.0 - 2023-03-07

Added

  • 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 QPFixedBaseInverseKinematics in the IK component (#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 QuinticSpline from the python (#609)
  • Implement the CubicSpline python bindings (#609)
  • Implement the python bindings for the iDynTree to manif conversions (#610)
  • Implement blf-balancing-position-control application (#611)
  • Implement the python bindings for YarpTextLogging (#611)
  • Add SubModelKinDynWrapper class to handle the KinDynComputation object of a sub-model (#605)
  • Implement the JointLimitsTask for the IK (#603)
  • Add the possibility to programmatically build an IK problem from a configuration file (#614, #619)

Changed

  • 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 swig bindings in QPFixedBaseTSID for the kindyncomputation object (#599)
  • Add the possibility to customize the video codec in the YarpRobotLoggerDevice (#607)

Fix

  • Return an invalid PolyDriverDescriptor if description is not found in constructMultipleAnalogSensorsRemapper() (#569)
  • Fix compatibility with OpenCV 4.7.0 (#589)
  • Fix attachRemappedRemoteControlBoard in YarpSensorBridge when the RemoteControlBoard is not the first polydriver in the polydriverlist (#608)
  • Fix race condition in System::ClockBuilder (#618)

0.11.1 - 2022-12-19

Fix

  • Fix the compilation of the YarpRobotLoggerDevice in Windows and macOS (#580)

0.11.0 - 2022-12-17

Added

  • Log the status of the system in YarpRobotLoggerDevice (#571)
  • Add the ROS2 implementation for Clock class (#575)

Changed

  • YARP devices are now enabled by default if YARP is found (#576).
  • Restructure the python bindings to support official iDynTree bindings (#578)
  • Remove unofficial iDynTree bindings based on pybind11 (#578)

Fix

  • Fix compatibility with YARP 3.8 (#577).

0.10.0 - 2022-09-23

Added

  • Add the possibility to set the exogenous feedback for the IK::SE3Task (#567)
  • Implement RobotInterface::constructMultipleAnalogSensorsClient() and RobotInterface::constructMultipleAnalogsensorsRemapper() methods (#568)

Changed

  • Add the possibility to log only a subset of text logging ports in YarpRobotLogger device (#561)
  • Accept boolean as integer while getting an element from searchable in YarpUtilities (#566)

Fix

  • Fix typo in the RobotInterface::constructGenericSensorClient() documentation (#568)
  • Fix compatibility with qhull installed by vcpkg 2022.07.25 and robotology-superbuild-dependencies-vcpkg 0.10.1 (#565).

0.9.0 - 2022-09-09

Added

  • Implement the MultiStateWeightProvider in ContinuousDynamicalSystem (#555)
  • Implement PortInput and PortOutputin System (#555)
  • Implement toManifTwist in Conversions component (#557)
  • Add the default value for the desired spatial and angular velocity to the IK::SO3Task and IK::SE3Task (#557)
  • Implement the IK::R3Task class (#559)

Changed

  • Now Advanceable inherits from PortInput and PortOutput (#555)

Fix

  • 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

Added

  • Add the possibility to log the YarpTextLogging in the YarpRobotLogger (#541)
  • Enable the logging FTs and IMU logging of iCubGenova09 (#546)

Changed

  • Ported YarpLoggerDevice to robometry(#533)
  • bipedal locomotion framework now depends on YARP 3.7.0 (#541)

Fix

  • 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

Added

  • Implement the python bindings for the clock machinery and for the yarp clock (#500)
  • Implement the IWeightProvider interface and the ConstantWeightProvider class 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 VectorsCollectionWrapper device for collection of arbitrary vector ports (#512)
  • Add reading of right upper leg FT for iCubGenova09 and associated cartesian wrench in YarpRobotLoggerDevice configuration files (#513)
  • Add reading of right and left arms FT for iCubGenova09 in YarpRobotLoggerDevice configuration files (#515)
  • Add reading of right and left arms and right upper leg FTs and cartesian wrenches for iCubGazeboV3 in YarpRobotLoggerDevice (#525)
  • Add the possibility to retrieve the temperature sensor from SensorBridge (#519)
  • Add the possibility to set only the velocity in CubicSpline::setInitialConditions and CubicSpline::setFinalConditions (#528)
  • Implement the python bindings for the ContinuousDynamicalSystem component (#532)
  • Add the possibility to log the video in the YarpRobotLoggerDevice (#516)

Changed

  • 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, RobotInterface and YarpImplementation components 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 multianalogsensor in YarpSensorBridge (#519)
  • Make YarpRobotLogger compatible with yarp-telemetry v0.5.1 (#535)
  • Set for yarp-telemetry minimum version to v0.5.1 (#535)
  • Make YarpCameraBridge::getColorImage() and YarpCameraBridge::getDepthImage() thread safe (#516)
  • Deprecate YarpCameraBridge::get() in favor of YarpCameraBridge::getMetaData() (#516)
  • Move from LGPL to BSD3 license (#550)

Fix

  • Remove outdated includes in YarpRobotLoggerDevice.cpp (#502)

0.6.0 - 2022-01-10

Added

  • 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 FirstOrderSmoother class in ContinuousDynamicalSystem component (#476)
  • Implement getIntegrationStep in FixedIntegration class (#476)
  • Add the possibility to create custom LinearTasks in python (#480)
  • Implement the possibility to compute the residual terms in the LinearTask (#483)
  • Define VectorsCollection message in YarpUtilities (#483)
  • Add the reading of the joint and motor acceleration in YarpSensorBridge (#492)

Changed

  • Use yarp clock instead of system clock in YarpRobotLoggerDevice (#473)
  • Reduce code duplication in python bindings (#484)
  • Use TextLogger in YarpRobotLoggerDevice instead of yarp commands (#486)
  • Ask for osqp-eigen 0.6.4.100(#490)
  • Use enum underlying type to convert TextLogging verbosity level to spdlog verbosity level (#495)
  • yarp-telemetry is now a dependency of the YarpRobotLoggerDevice (#487)
  • Fix deprecated YARP functions in YarpUtilities component (#491)

Fix

  • Fix the population of the jointAccelerations and baseAcceleration variables in QPTSID (#478)
  • Fix the documentation in the Advanceable class (#476)
  • Add virtual destrutors in System::Sink, System::Source, System::LinearTask, System::ITaskControlMode, TSID::TSIDLinearTask and IK::IKLinearTask classes (#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 YarpRobotLoggerDevice documentation (#472)

0.5.0 - 2021-11-30

Added

  • 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_tsid utility function for the python bindings (#433)
  • Implement the AngularMomentumTask in the TSID component and the associated python bindings (#436)
  • Implement QPTSID::toString method and the associated python bindings (#440)
  • Implement ContactWrench python bindings (#441)
  • Implement AngularMomentum task in the IK component and the associated bindings (#443)
  • Implement create_ik utility 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 ITaskControlMode class in the python bindings (#445)
  • Add the possibility to enable/disable the joints and motors state logging in the YarpRobotLoggerDevice (#453)
  • Implement QPInverseKinematics::toString method and the associated python bindings (#461)
  • Add the cartesian wrenches logging in YarpRobotLoggerDevice (#447)
  • Implement the python bindings for the manif conversions methods (#465)

Changed

  • Inherits all the Eigen::Matrix constructors in the Wrenchd class (#441)
  • Bump the minimum cmake version to 3.16.0 (#468)

Fix

  • Fix Analog FT Sensor reading in YarpSensorBridgeImpl (#459)
  • Fix config files in YarpRobotLoggerDevice for iCub3 head IMU reading (#467)

0.4.0 - 2021-10-15

Added

  • Implement AdvanceableRunner::isRunning() method (#395)
  • Implement ContactPhaseList::getPresentPhase() method (#396)
  • Add a synchronization mechanism for the AdvanceableRunner class (#403)
  • Add the possibility to use spdlog with YARP (#408)
  • Add new Advanceable exposing UnicyclePlanner (#320)

Changed

  • Add name parameter to the AdvanceableRunner class (#406)
  • Set the required spdlog version in the cmake file (#415)
  • Add features to FTIMULoggerDevice and rename it in YarpRobotLoggerDevice (#405)

Fix

  • Fix missing components dependencies in the CMake machinery (#414)
  • Fixed missing include in FloatingBaseEstimatorIO.h (#417)

0.3.0 - 2021-08-12

Added

  • Implement CubicSpline class (#344)
  • Implement PWM control in RobotControl class (#346)
  • Implement ContactWrenchCone class in Math component (#352)
  • Implement skew function in Math component (#352)
  • Implement QPTSID class (#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 ControlTask in for System component (#373).
  • Allow changing the log verbosity (#385)
  • Implement the CoMZMP controller (#387)

Changed

  • 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)
  • QPFixedBaseTSID now inherits from QPTSID (#366)
  • Enable the Current control in RobotInterface class (#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).

Fix

  • Fixed the crashing of YarpSensorBridge while 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_BINDINGS CMake option) when compiling with Visual Studio (#380).
  • Fixed the TOML and YARP implementation of the parameters handler when a std::vector<bool> is passed to the setParameter() method (#390).

0.2.0 - 2021-06-15

Added

  • Implement IRobotControl python bindings (#200)
  • Implement ISensorBridge python bindings (#203)
  • Implement LeggedOdometry class as a part of FloatingBaseEstimators library and handle arbitrary contacts in FloatingBaseEstimator. (#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 ICameraBridge and IPointCloudBridge interface classes as a part of PerceptionInterface library. (#165)
  • Implement RealSense driver class as a part of PerceptionCapture library. (#165)
  • Implement realsense-test utility 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 PerceptionFeatures library and implement ArucoDetector. (#159)
  • Implement FixedBaseDynamics class (#242)
  • Implemented Sink and Source classes (#267)
  • Implement the IClock, StdClock and YarpClock classes (#269)
  • Implement YarpCameraBridge class for Yarp implementation of ICameraBridge (#237)
  • Implement PointCloudProcessor class and modify realsense-test to test point clouds handling with Realsense. (#236)
  • Implement AdvanceableRunner and SharedResource classes in System component (#272)
  • Implement handleQuitSignals() function in System component (#277)
  • Implement TaskSpaceInverseDynamics interface (#279)
  • Implement Wrench class (#279)
  • Implement SO3Task in TSID component (#281)
  • Implement clone method in ParametersHandler classes (#288)
  • Implement VariablesHandler::clear() and VariablesHandler::initialize() (#291)
  • Implement the possibility to set the default contact in the ContactList class (#297)
  • Implement FixedFootDetector class (#284)
  • Implement QPFixedBaseTSID class (#251)
  • Implement YarpImplementation::setFromFile() (#307)
  • Implement CoMTask in TSID (#304)
  • Implement YarpParametersHandler bindings (#309)
  • Implement contactListMapFromJson() and contactListMapToJson() methods and python bindings (#316)
  • Implement a matioCpp-based strain2 sensors' FT-IMU logger example device (#326)
  • Implement TomlImplementation in ParametersHandler (#328)
  • Implement blf_calibration_delta_updater.py application (#332)

Changed

  • 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::StandardAccelerationOfGravitation instead 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::LinearTask in TSID component (#240)
  • Restructure python bindings in submodules (#238)
  • Integrators and DynamicalSystems are now in the ContinuousDynamicalSystem component (#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 TextLogging in VariablesHandler class (#291)
  • Fix YarpImplementation::setParameterPrivate() when a boolean or a vector of boolean is passed (#311)
  • Add foot_take_off_acceleration and foot_take_off_velocity parameters in the SwingFootPlanner class (#323)
  • Change the parameters handler verbosity (#330)
  • Restore backward compatibility of SwingFootPlanner parameters (#334)
  • Bump manif version to 0.0.4 (#339)

Fixed

  • Fix missing implementation of YarpSensorBridge::getFailedSensorReads(). (#202)
  • Fixed mas-imu-test configuration 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 ami-iit/matio-cpp#41 (#253)
  • Call positionInterface->setRefSpeeds() only once when a position reference is set in YarpRobotControl (#271)
  • Fix initialization of reference frame for world in LeggedOdometry class. (#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 time LeggedOdometry::changeFixedFrame() is called. (#292)
  • Avoid to use the default copy-constructor and copy-assignment operator in ContactPhaseList class (#295)
  • Fix toString() method of VariablesHandler class (#302)
  • Fix in YarpUtilities::getVectorFromSearchable when a vector of boolean is passed as input (#313)
  • Various fixes for the yarp devices (#337)

0.1.1 - 2021-05-08

Fix

  • Fix the documentation in TemplateHelpers.h

0.1.0 - 2021-02-22

Added

  • The CHANGELOG.md file
  • The cmake/BipedalLocomotionControllersFindDepencies.cmake file
  • The cmake/AddInstallRPATHSupport.cmake file
  • The cmake/AddUninstallTarget.cmake file
  • The cmake/FindEigen3.cmake file
  • The cmake/InstallBasicPackageFiles.cmake file
  • Implement the first version of the BipedalLocomotionControllers interface
  • Implement the first version of the YarpUtilities library
  • Implement ParametersHandler library (https://github.com/ami-iit/bipedal-locomotion-controllers/pull/13)
  • Implement GenericContainer::Vector (https://github.com/ami-iit/bipedal-locomotion-controllers/pull/29)
  • Implement Estimators library (https://github.com/ami-iit/bipedal-locomotion-controllers/pull/23)
  • Implement Contact library. (#43 and #45)
  • Implement the first version of the TimeVaryingDCMPlanner (#61)
  • Implement the Quintic Spline class (#83)
  • Implement the ConvexHullHelper class (#51)
  • Implement the DynamicalSystem and Integrator class (#46)
  • Implement the IRobotControl interface and the YARP specialization (#97, #192)
  • Add SensorBridge interface (#87)
  • Add the YarpSensorBridge Implementation (#106)
  • Added CommonConversions, ManifConversions, and matioCppConversions libraries to handle type conversions. (#138 and #143)
  • Implement the JointPositionTracking application. (#136)
  • Initial implementation of Python bindings using pybind11 (#134)
  • Implement FloatingBaseEstimatorDevice YARP device for wrapping floating base estimation algorithms. (#130)
  • Implement Continuous algebraic Riccati equation function (#157)
  • Implement YARP based ROSPublisher in the YarpUtilities library. (#156)
  • Implement example YARP device ROSPublisherTestDevice for understanding the usage of ROSPublisher. (#160)
  • Implement TSID library. (#167, #170, #178)
  • Implement the JointTrajectoryPlayer application. (#169
  • Implement ContactDetectors library. (#142)
  • Added mas-imu-test application to check the output of MAS IMUs (#62)
  • Implement motor currents reading in YarpSensorBridge. (#187)