All notable changes to this project are documented in this file.
- Add
USE_SYSTEM_tiny-process-library
CMake option to usetiny-process-library
found in system (ami-iit#891) - Add the test for the
YarpRobotLoggerDevice
(ami-iit#862) - Implement low-pass filter for estimated friction torques in
JointTorqueControlDevice
(ami-iit#892) - Add
blf-motor-current-tracking.py
application (ami-iit#894) - Add the possibility to initialize the base position and the feet pose in the
unicycleTrajectoryGenerator
(ami-iit#887) - Add software joint position limits to the
blf-motor-current-tracking.py
application (ami-iit#901) - Implement
velMANN
class to perform inference on MANN model with velocity-based features inML
component (ami-iit#889) - Implement
velMANNAutoregressive
,velMANNAutoregressiveInputBuilder
, andvelMANNTrajectoryGenerator
to generate trajectories using MANN model with velocity-based features inML
component (ami-iit#889)
- Change device jtcvc to use motor velocity and joint velocity in input to PINN models (ami-iit#903)
- Set the system timer resolution to the minimum value for higher precision on
Windows
(ami-iit#907) - Update the
mas-remapper
configuration file forergoCubSN000
(ami-iit#913)
- Bug fix of
JointTorqueControlDevice
device (ami-iit#890) - Bug fix of
prepare_data
method calling injoints-grid-position-tracking
(ami-iit#895) - Fix the normal force limit constraint in the
CentroidalMPC
(ami-iit#898) - Fix loading of Python bindings on Windows when installed in arbitrary directory (ami-iit#905)
0.19.0 - 2024-09-06
- Added Vector Collection Server for publishing information for real-time users in the YARPRobotLoggerDevice (ami-iit#796)
- Set submodel states from IMUs in RDE and add friction torques as measurement (ami-iit#793)
- Add streaming of arm fts in YarpRobotLoggerDevice (ami-iit#803)
- 🤖 [
ergoCubGazeboV1_1
] Add configuration files to log data with theYarpRobotLoggerDevice
(ami-iit#806, ami-iit#808) - Added a unit test code for the
UnicyclePlanner
(ami-iit#815) - Added a member function to set the gravity vector of the
CentroidalDynamics
Continuous Dynamical System (ami-iit#821). - Add the possibility to set the exogenous signal for the
IK::CoMTask
(ami-iit#824) - Add getJointTorques to python binding in SensorBridge (ami-iit#825)
- Add
System::TimeProfiler
class (ami-iit#826) - Add the possibility to programmatically build a
QPTSID
problem from the content of aParametersHandler
(ami-iit#828) - Add support for testing if a portion of code allocates memory via
MemoryAllocationMonitor
(ami-iit#768) - Implement
Math::ZeroOrderSpline
(ami-iit#834) - Add the possibility to get only position or position/velocity from the spline (ami-iit#834)
- Add the possibility to set the number of threads used by onnxruntime in
MANN
(ami-iit#836) - Implement
ButterworthLowPassFilter
class (ami-iit#838) - Implement
Conversions::toiDynTreeRot
function (ami-iit#842) - Add the
Planners::UnicycleTrajectoryGenerator
to mimic the functionalities of the unicycle planner deployed in walking-controllers (ami-iit#845) - Create python bindings of
VectorsCollection
(ami-iit#854) - Added a simple motor control example (ami-iit#855)
- Add
setControlModeAsync
function to set motor control mode in an asynchronous process (ami-iit#860) - Add launch parameter to
blf-logger-with-audio.sh
script to set logger launch file (ami-iit#867) - Add
getJointLimits
function to set get actuated joints position limits (ami-iit#868) - Add the possibility to disable streaming of joint encoder acceleration measurements (ami-iit#876)
- Implement joint torque control device and friction estimation through PINN (ami-iit#866)
- Add a task in the IK to set the joint velocity limits (ami-iit#879)
- Add the possibility to set the fixed joint configuration in
balancing-torque-control
app (ami-iit#880)
- 🤖 [ergoCubSN001] Add logging of the wrist and fix the name of the waist imu (ami-iit#810)
- Export the CoM velocity and the angular momentum trajectory in the
CentroidalMPC
(ami-iit#818) - Require
iDynTree v10.0.0
(ami-iit#832) - Refactor
YarpRobotControl::setReferences
function to include optional current joint values and avoid to switch control mode inYarpRobotControl::setReferences
(ami-iit#833) - Set the gravity vector as an input argument of the
CentroidalMPC
(ami-iit#823) - Refactor the
Planners::UnicyclePlanner
to mimic the functionalitites of the planner deployed in walking-controllers (ami-iit#844)
- Fix the Python binding for the
change_fixed_frame
function to useEigen::Vector4d
for the input quaternion instead ofEigen::Quaterniond
, which isn't supported bypybind11
(ami-iit#889) - Fix the barrier logic for threads synchronization (ami-iit#811)
- InstallBasicPackageFiles: Fix bug of OVERRIDE_MODULE_PATH that corrupt
CMAKE_MODULE_PATH
values set by blf transitive dependencies (ami-iit#827) - InstallBasicPackageFiles: Fix compatibility with CMake 3.29.1 (ami-iit#835)
- Fix
YARPRobotLoggerDevice
excessively long time horizon for signals logged withYARP_CLOCK
(ami-iit#839) - Fix crash in
robot_control.set_references()
if the passed vector is not the correct size (ami-iit#852) - Fix
VectorsCollectionClient.read_data(False)
to providecollection
as output and avoid segmentation fault (ami-iit#850) - Fix
YARPRobotLoggerDevice
logging of vectors and text (ami-iit#869)
0.18.0 - 2024-01-23
- 🤖 [
ergoCubSN001
] UpdateYarpRobotLoggerDevice
configuration file to exclude the head-imu and include the arms FTs (ami-iit#798) - Avoid to call
BufferedPort::prepare
every timeVectorsCollectionServer::populateData
is called (ami-iit#790) - Check that the size the gains vectors in the
IK::JointTrackingTask
,IK::JointLimitsTask
andTSID::JointLimitsTask
are correct (ami-iit#797) - Check that the size of the weights in
MultiStateWeightProvider
are all the same (ami-iit#797)
0.17.0 - 2023-12-23
- Implement
ContactList::getNextContact
andContactList::getActiveContact
inContact
component (ami-iit#764) - Implement
MANN::generateDummyMANNOutput
andMANN::generateDummyMANNInput
inML
component (ami-iit#771) - Add
MANNAutoregressive
andMANNTrajectoryGenerator
examples (ami-iit#771) - Implement
Spline::evaluateOrderedPoints
to evaluate the spline at a set of time ordered points (ami-iit#773) - Add process model for external contacts in
RobotDynamicsEstimator
(ami-iit#759) - 🤖 Add
ergoCubSN001
configuration files for thebalancing-position-control
application (ami-iit#776) - Implement
VectorsCollectionServer
python bindings (ami-iit#776) - Implement
toString()
methods inPlannedContact
,ContactList
,ContactPhase
andContactPhaseList
(ami-iit#777) - Implement
LinearSpline
inMath
component (ami-iit#782) - Add the support of QP problems with no constraint in
QPInverseKinematics
andQPTSID
(ami-iit#784) - Implement
blf-joints-grid-position-tracking
application inutilities
(ami-iit#787) - Add the possibility to resample the contact in a given contact list (ami-iit#788)
- Restructure of the
CentroidalMPC
class inReducedModelControllers
component. Specifically, theCentroidalMPC
now provides a contact phase list instead of indicating the next active contact. Additionally, users can now switch betweenipopt
andsqpmethod
to solve the optimization problem. Furthermore, the update allows for setting the warm-start for the non-linear solver. (ami-iit#766) - Restructured the swing foot planner to handle corners case that came out while testing DNN-MPC integration (ami-iit#765)
- Avoid returning internal references for
get_next_contact
get_present_contact
andget_active_contact
(ami-iit#765) - Introducing Metadata Support for
VectorsCollection
(ami-iit#767) - Restructure
MANNAutoregressive
to effectively manage resets (ami-iit#771) - Restructure
MANNTrajectoryGenerator
to remove the need for foot positions insetInitialState
and enhanced reset capabilities. Corrected position and time scaling for precise CoM, base, and feet positioning (ami-iit#771) - Move
Spline
intoMath
component. (ami-iit#773) - Deprecate
Planners::Spline
,Planners::QuinticSpline
,Planners::CubicSpline
in favor ofMath::Spline
,Math::QuinticSpline
,Math::CubicSpline
(ami-iit#773) - Change use of dynamics name for fts, contacts, accelerometers, gyroscopes in
RobotDynamicsEstimator
(ami-iit#759) - 🤖 Modify the
YarpRobotLoggerDevice
ofergoCubSN001
to be compliant with the latest robots-configuration files (ami-iit#772) - Modify the
balancing-position-control
application to be compliant with the new implementation of the spline and theVectorsCollectionServer
(ami-iit#776) - Add the joint tracking error plot in joint-position-tracking script (ami-iit#775)
- Force the MPC to require correctly time-sampled contacts (ami-iit#788)
- Remove the latex dependency in the joint-position-tracking script (ami-iit#775)
0.16.1 - 2023-11-17
- [ergoCubSN000] Update the YarpRobotLogger configuration file to be mpliant with robots-configuration v2.5.2 (ami-iit#763)
- Fixed compilation on Windows of fmt formatter for Eigen types (ami-iit#762)
0.16.0 - 2023-11-15
- Add the possibility to control a subset of coordinates in
TSID::CoMTask
(ami-iit#724, ami-iit#727) - Add the possibility to set the maximum number of accepted deadline miss in
System::AdvanceableRunner
(ami-iit#726) - Add the
getControllerOutput
method to theTSID::SE3Task
class (ami-iit#740) - Implement the python bindings for the
Wrench
class (ami-iit#716) - Implement the python bindings for the
SimplifiedModelControllers
components (ami-iit#716) - 🤖 Add the configuration files to use
YarpRobotLoggerDevice
withergoCubSN001
(ami-iit#747) - Added the
DistanceTask
andGravityTask
to the IK (ami-iit#717) - Add the possibility to control a subset of linear coordinates in
TSID::SE3Task
(ami-iit#738) - Implement
GlobalCoPEvaluator
inContacts
component (ami-iit#745) - Implement
Wrench::getLocalCoP()
method (ami-iit#745) - Add tests for classes of
RobotDynamicsEstimator
library (ami-iit#743) - Implement inequality operator for the
PlannedContact
class (ami-iit#750) - Finalize
RobotDynamicsEstimator
library and add complete library test (ami-iit#744) - Add Python bindings for
RobotDynamicsEstimator
library (ami-iit#755) - Add possibility to set the regularization on the mass matrix for the
TSID::JointDynamicsTask
(ami-iit#722) - Implement
RobotDynamicsEstimatorDevice
(ami-iit#756)
- Remove the possibility to disable the telemetry in
System::AdvanceableRunner
(ami-iit#726) - Change implementation of classes used in
RobotDynamicsEstimator
to optimize performance (ami-iit#731) - CMake: Permit to explictly specify Python installation directory by setting the
FRAMEWORK_PYTHON_INSTALL_DIR
CMake variable (ami-iit#741) - Remove outdated tests for
RobotDynamicsEstimator
library (ami-iit#742) - Modify CI to install
RobotDynamicsEstimator
library (ami-iit#746) - Restructure the balancing-position-control script (ami-iit#716)
- Avoid to download the robot and the network models if the tests are not enabled in
ML
component (ami-iit#749) - Update the CMakeLists.txt to be compliant with
Python 3.12
(ami-iit#752)
- Fix timestamp logging for the cameras (ami-iit#748)
- Fix missing include(FetchContent) in Python bindings CMake code (ami-iit#757)
0.15.0 - 2023-09-05
- 🤖 Add the configuration files to use
YarpRobotLogger
withergoCubGazeboV1
(ami-iit#690) - Implement
RK4
integrator inContinuousDynamicalSystem
component and expose the python bindings (ami-iit#711) - Implement
blf-balancing-torque-control
inutilities
(ami-iit#707) - Implement
setControlMode
inIRobotControl
and the associated python bindings (ami-iit#707) - Expose
ContactBase
methods forDiscreteGeometryContact
bindings (ami-iit#712) - Expose the CoM trajectory and angular momentum trajectory in
MANNTrajectoryGenerator
bindings (ami-iit#712) - Expose the CoM trajectory computed by the
CentroidalMPC
(ami-iit#712) - Implement python bindings for
CameraBridge
(ami-iit#695) - Implement
constructRDGBSensorClient()
inRobotInterface
component (ami-iit#695)
- Use
std::chorno::nanoseconds
inclock
andAdvanceableRunner
(ami-iit#702) - Give the possibility to set an external wrench in the
CentroidalDynamics
instead of a pure force (ami-iit#705) - Use c version of
qhull
in the Planner component. This fixes the compatibility with PCL in ubuntu 20.04 (ami-iit#713) - Make
ICameraBridge::isValid()
virtual function (ami-iit#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 (ami-iit#720)
- Remove duplicated
find_package
inBipedalLocomotionFrameworkDependencies.cmake
file (ami-iit#709) - Fix handling of feedforward acceleration in
BipedalLocomotion::TSID::JointTrackingTask::setSetPoint
(ami-iit#719)
0.14.1 - 2023-07-07
- Fix python bindings compilation when toml is not installed (ami-iit#700)
- Fix
YarpRobotLoggerDevice
ifYARP_ROBOT_NAME
is not defined (ami-iit#701)
0.14.0 - 2023-07-04
- Implement a class to perform inference with the MANN network (ami-iit#652, ami-iit#686)
- Add some useful methods to the
SubModel
andSubModelKinDynWrapper
classes (ami-iit#661) - Implement
Dynamics
,ZeroVelocityDynamics
, andJointVelocityStateDynamics
classes inRobotDynamicsEstimator
(ami-iit#662) - Implement
AccelerometerMeasurementDynamics
andGyroscopeMeasurementDynamics
classes inRobotDynamicsEstimator
(ami-iit#666) - Implement
FrictionTorqueStateDynamics
andMotorCurrentMeasurementDynamics
classes inRobotDynamicsEstimator
(ami-iit#667) - Add logging of FTs on the ergoCub legs and fix FT and IMU port names (ami-iit#671)
- Add the possibility to log the video stream as set of frames or as video in
YarpRobotLoggerDevice
(ami-iit#672) - Add the possibility to log the RGBD stream in
YarpRobotLoggerDevice
(ami-iit#672) - Implement
LieGroupDynamics
inContinuousDynamicalSystem
component (ami-iit#659) - Implement
Conversions::toiDynTreePose()
(ami-iit#659) - Implement
Conversions::toiDynTreePose()
(ami-iit#659) - Implement
MANNAutoregressive
class inML
component (ami-iit#659) - Implement
UkfState
class inRobotDynamicsEstimator
(ami-iit#669) - Implement
MANNTrajectoryGenerator
class inML
component (ami-iit#668) - Implement a bash script to automatically log the audio along with the YarpRobotLoggerDevice (ami-iit#681)
- Implement
QuadraticBezierCurve
inMath
component (ami-iit#689) - Implement
MANNAutoregressiveInputBuilder
inML
component (ami-iit#689) - Implement the
CentroidalMPC
inReducedModelControllers
component (ami-iit#645) - Implement the
BaseEstimatorFromFootIMU
in theEstimators
component (ami-iit#641) - Add bindings for
CentroidalMPC
,CentroidalDynamics
,ContactPhaseList
,DiscreteGeometryContact
andCorner
component (ami-iit#650)
- Restructure application folders of
YarpRobotLoggerDevice
(ami-iit#670) - 🤖 [ergoCubSN000] Clean the mas remapper files of the
YarpRobotLoggerDevice
(ami-iit#673) - 🤖 [ergoCubSN000] Enable the logging of the realsense camera
YarpRobotLoggerDevice
(ami-iit#672) - Add the possibility to force the internal state of the
SchmittTrigger
(ami-iit#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 (ami-iit#688)
- Add the possibility to set the boundary condition for the velocity and acceleration of the
SO3Planner
(ami-iit#688) - Satisfies the rule of 5 for
InputPort
,OutputPort
,Advanceable
,Sink
andSource
inSystem
component (ami-iit#397).
- Fix RobotDynamicsEstimator compilation dependencies (ami-iit#665)
- Fix the metadata assignment of the rgbd cameras (ami-iit#672)
- Fix the RGB to BGR conversion in YarpCameraBridge for FlexImage (ami-iit#672)
- Make the YarpSensorBridge compatible with MAS that use the same name between gyro ac magn and orientation (ami-iit#692)
0.13.0 - 2023-04-22
- Implement the
DiscreteGeometryContact
in Contacts component (ami-iit#626) - Implement the
SchmittTrigger
in componentMath
and the associated python bindings (ami-iit#624) - Add the support of
std::chrono
in The text logging (ami-iit#630) - Add the possibility to retrieve and set duration from the
IParametersHandler
(ami-iit#630) - Add the possibility to update the contact list in the swing foot trajectory planner (ami-iit#637)
- Implement
System::NamedTuple
class (ami-iit#642) - Implement
ContinuousDynamicalSystem::CentroidalDynamics
class (ami-iit#642)
- Update the
IK tutorial
to useQPInverseKinematics::build
(ami-iit#621) - Handle case where no FT sensors are specified to split the model (ami-iit#625)
- General restructure of the
ContactDetector
and the derived classes (SchmittTriggerDetector
andFixedFootDetector
) (ami-iit#624) Thanks to this refactory theFixedFootDetector
usage 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 ifadvance
was called after getting the output of the detector. - Restructure the
Contacts
component to handle time withstd::chrono::nanoseconds
(ami-iit#630) - Restructure the
Planners
component to handle time withstd::chrono::nanoseconds
(ami-iit#630) - Restructure the
FloatingBaseEstimator
component to handle time withstd::chrono::nanoseconds
(ami-iit#630) - Update the
blf-position-tracking
to handle time withstd::chrono::nanoseconds
(ami-iit#630) - Update the python bindings to consider the time with
std::chrono::nanoseconds
(ami-iit#630) - Robustify SubModelCreator and SubModelKinDynWrapper tests (ami-iit#631)
SwingFootTrajectoryPlanner::advance()
must be called before getting the output (ami-iit#637)- Update the already existing classes in
ContinuousDynamicalSystem
to be compatible with theSystem::NamedTuple
(ami-iit#642) - Update the code to be compatible with LieGroupControllers v0.2.0 (ami-iit#653)
- Allow use of vectors for task gains (ami-iit#654)
Catch2
is now downloaded withFetchContent
ifBUILD_TESTING
is set toON
(ami-iit#655)- The tests now uses
Catch2 v3
(ami-iit#655) - Add the possibility to set vectorial gains in CoM IK and TSID tasks (ami-iit#656)
- Return an error if an invalid
KinDynComputations
object is passed toQPInverseKinematics::build()
(ami-iit#622) - Fix
QPTSID
documentation (ami-iit#634) - Fix error messages in
QPTSID
class (ami-iit#639) - Fix compilation failure when using CMake 3.26.1 and pybind11 2.4.3 (ami-iit#643)
- Fixed changelog checker (ami-iit#856)
0.12.0 - 2023-03-07
- Add the possibility to attach all the multiple analog sensor clients (ami-iit#569)
- Add a tutorial for the inverse kinematics (ami-iit#596)
- Implement the ROS2 sink for the
TextLogging
(ami-iit#587) - Implement the
QPFixedBaseInverseKinematics
in theIK
component (ami-iit#599) - 🤖 [ergoCubSN000] Add configuration files for the YarpRobotLoggerDevice (ami-iit#600)
- Add functions to split a model in a set of submodels in the Estimator component (ami-iit#604)
- Add the possibity to call the advanceable capabilities of the
QuinticSpline
from the python (ami-iit#609) - Implement the
CubicSpline
python bindings (ami-iit#609) - Implement the python bindings for the iDynTree to manif conversions (ami-iit#610)
- Implement
blf-balancing-position-control
application (ami-iit#611) - Implement the python bindings for
YarpTextLogging
(ami-iit#611) - Add SubModelKinDynWrapper class to handle the
KinDynComputation
object of a sub-model (ami-iit#605) - Implement the
JointLimitsTask
for the IK (ami-iit#603) - Add the possibility to programmatically build an IK problem from a configuration file (ami-iit#614, ami-iit#619)
- Ask for
toml++ v3.0.1
(ami-iit#581) - The YarpRobotLogger will now automatically connect to the exogenous signal port if available (ami-iit#570)
- 🤖 [iCubGenova09] Add the left and right hands skin (raw and filtered) data acquisition (ami-iit#570)
- Add informative prints
YarpSensorBridge::Impl
(ami-iit#569) - The minimum version of iDynTree now supported is iDynTree 4.3.0 (ami-iit#588).
- Allow using the
iDynTree swig
bindings inQPFixedBaseTSID
for the kindyncomputation object (ami-iit#599) - Add the possibility to customize the video codec in the
YarpRobotLoggerDevice
(ami-iit#607)
- Return an invalid
PolyDriverDescriptor
ifdescription
is not found inconstructMultipleAnalogSensorsRemapper()
(ami-iit#569) - Fix compatibility with OpenCV 4.7.0 (ami-iit#589)
- Fix
attachRemappedRemoteControlBoard
inYarpSensorBridge
when theRemoteControlBoard
is not the first polydriver in the polydriverlist (ami-iit#608) - Fix race condition in System::ClockBuilder (ami-iit#618)
0.11.1 - 2022-12-19
- Fix the compilation of the
YarpRobotLoggerDevice
inWindows
andmacOS
(ami-iit#580)
0.11.0 - 2022-12-17
- Log the status of the system in
YarpRobotLoggerDevice
(ami-iit#571) - Add the
ROS2
implementation for Clock class (ami-iit#575)
- YARP devices are now enabled by default if YARP is found (ami-iit#576).
- Restructure the python bindings to support official
iDynTree
bindings (ami-iit#578) - Remove unofficial
iDynTree
bindings based on pybind11 (ami-iit#578)
- Fix compatibility with YARP 3.8 (ami-iit#577).
0.10.0 - 2022-09-23
- Add the possibility to set the exogenous feedback for the
IK::SE3Task
(ami-iit#567) - Implement
RobotInterface::constructMultipleAnalogSensorsClient()
andRobotInterface::constructMultipleAnalogsensorsRemapper()
methods (ami-iit#568)
- Add the possibility to log only a subset of text logging ports in
YarpRobotLogger
device (ami-iit#561) - Accept boolean as integer while getting an element from searchable in
YarpUtilities
(ami-iit#566)
- Fix typo in the
RobotInterface::constructGenericSensorClient()
documentation (ami-iit#568) - Fix compatibility with qhull installed by vcpkg
2022.07.25
and robotology-superbuild-dependencies-vcpkg0.10.1
(ami-iit#565).
0.9.0 - 2022-09-09
- Implement the
MultiStateWeightProvider
inContinuousDynamicalSystem
(ami-iit#555) - Implement
PortInput
andPortOutput
inSystem
(ami-iit#555) - Implement
toManifTwist
inConversions
component (ami-iit#557) - Add the default value for the desired spatial and angular velocity to the
IK::SO3Task
andIK::SE3Task
(ami-iit#557) - Implement the
IK::R3Task
class (ami-iit#559)
- Now
Advanceable
inherits fromPortInput
andPortOutput
(ami-iit#555)
- Fix the dependency required to compile the YarpRobotLogger device (ami-iit#554)
- Fix the compatibility with fmt v9.0.0 (ami-iit#556)
0.8.0 - 2022-07-29
- Add the possibility to log the YarpTextLogging in the YarpRobotLogger (ami-iit#541)
- Enable the logging FTs and IMU logging of iCubGenova09 (ami-iit#546)
- Ported
YarpLoggerDevice
torobometry
(ami-iit#533) - bipedal locomotion framework now depends on YARP 3.7.0 (ami-iit#541)
- Avoid to use deprecated function cv::aruco::drawAxis in ArucoDetector to fix compilation with OpenCV 4.6.0 (ami-iit#552)
0.7.0 - 2022-06-21
- Implement the python bindings for the clock machinery and for the yarp clock (ami-iit#500)
- Implement the
IWeightProvider
interface and theConstantWeightProvider
class in the System component (ami-iit#506) - Add installation of pip metadata files for when blf python bindings are installed only via CMake (ami-iit#508)
- Implement the python bindings for the VectorsCollection message and the associated buffered port (ami-iit#511)
- Implement the
VectorsCollectionWrapper
device for collection of arbitrary vector ports (ami-iit#512) - Add reading of right upper leg FT for
iCubGenova09
and associated cartesian wrench inYarpRobotLoggerDevice
configuration files (ami-iit#513) - Add reading of right and left arms FT for
iCubGenova09
inYarpRobotLoggerDevice
configuration files (ami-iit#515) - Add reading of right and left arms and right upper leg FTs and cartesian wrenches for
iCubGazeboV3
inYarpRobotLoggerDevice
(ami-iit#525) - Add the possibility to retrieve the temperature sensor from
SensorBridge
(ami-iit#519) - Add the possibility to set only the velocity in
CubicSpline::setInitialConditions
andCubicSpline::setFinalConditions
(ami-iit#528) - Implement the python bindings for the
ContinuousDynamicalSystem
component (ami-iit#532) - Add the possibility to log the video in the
YarpRobotLoggerDevice
(ami-iit#516)
- An error it will be returned if the user tries to change the clock type once the
clock()
has been already called once (ami-iit#500) - Log the arms external wrenches on the YarpRobotLogger for iCubGenova09 (ami-iit#502)
- IK and TSID now uses the weight provider to specify the weight associated to a task (ami-iit#506)
- The
Planners
,System
,RobotInterface
andYarpImplementation
components are no more mandatory to compile the python bindings (ami-iit#511) - Reorganize the multiple FT sensor and external wrench files into a single file in the YarpRobotLoggerDevice (ami-iit#525)
- Save the robot name and the names of the channel's elements in the YarpRobotLoggerDevice (ami-iit#522)
- Use icub-models to get the urdf models for the tests (ami-iit#526)
- The FT sensor are now considered as
multianalogsensor
inYarpSensorBridge
(ami-iit#519) - Make
YarpRobotLogger
compatible withyarp-telemetry
v0.5.1 (ami-iit#535) - Set for
yarp-telemetry
minimum version to v0.5.1 (ami-iit#535) - Make
YarpCameraBridge::getColorImage()
andYarpCameraBridge::getDepthImage()
thread safe (ami-iit#516) - Deprecate
YarpCameraBridge::get()
in favor ofYarpCameraBridge::getMetaData()
(ami-iit#516) - Move from LGPL to BSD3 license (ami-iit#550)
- Remove outdated includes in YarpRobotLoggerDevice.cpp (ami-iit#502)
0.6.0 - 2022-01-10
- Add the reading of the orientation of the head IMU in
YarpRobotLoggerDevice
(ami-iit#471) - Add the possibility to change the weight in TSID/IK (ami-iit#475)
- Implement a
FirstOrderSmoother
class inContinuousDynamicalSystem
component (ami-iit#476) - Implement
getIntegrationStep
inFixedIntegration
class (ami-iit#476) - Add the possibility to create custom
LinearTasks
in python (ami-iit#480) - Implement the possibility to compute the residual terms in the
LinearTask
(ami-iit#483) - Define
VectorsCollection
message inYarpUtilities
(ami-iit#483) - Add the reading of the joint and motor acceleration in
YarpSensorBridge
(ami-iit#492)
- Use yarp clock instead of system clock in
YarpRobotLoggerDevice
(ami-iit#473) - Reduce code duplication in python bindings (ami-iit#484)
- Use
TextLogger
inYarpRobotLoggerDevice
instead ofyarp
commands (ami-iit#486) - Ask for
osqp-eigen 0.6.4.100
(ami-iit#490) - Use enum underlying type to convert
TextLogging
verbosity level tospdlog
verbosity level (ami-iit#495) yarp-telemetry
is now a dependency of theYarpRobotLoggerDevice
(ami-iit#487)- Fix deprecated
YARP
functions inYarpUtilities
component (ami-iit#491)
- Fix the population of the jointAccelerations and baseAcceleration variables in QPTSID (ami-iit#478)
- Fix the documentation in the
Advanceable
class (ami-iit#476) - Add virtual destrutors in
System::Sink
,System::Source
,System::LinearTask
,System::ITaskControlMode
,TSID::TSIDLinearTask
andIK::IKLinearTask
classes (ami-iit#480) - The joint torques is now correctly retrieved in QPTSID class (ami-iit#482)
- The motor velocity and positions are now returned in rad/s and rad (ami-iit#489)
- Fix
YarpRobotLoggerDevice
documentation (ami-iit#472)
0.5.0 - 2021-11-30
- Implement Python bindings for the TSID component (ami-iit#428)
- Add the possibility to set the name of each element of a variable stored in the variables handler (ami-iit#429)
- Develop the python bindings for toml implementation of the parameters handler (ami-iit#432)
- Implement the VariableRegularizationTask in TSID (ami-iit#431)
- Implement
create_tsid
utility function for the python bindings (ami-iit#433) - Implement the
AngularMomentumTask
in theTSID
component and the associated python bindings (ami-iit#436) - Implement
QPTSID::toString
method and the associated python bindings (ami-iit#440) - Implement
ContactWrench
python bindings (ami-iit#441) - Implement AngularMomentum task in the IK component and the associated bindings (ami-iit#443)
- Implement
create_ik
utility function for the python bindings (ami-iit#444) - Add the possibility to set the task controller mode for the SE3Task in the TSID component (ami-iit#445)
- Expose the
ITaskControlMode
class in the python bindings (ami-iit#445) - Add the possibility to enable/disable the joints and motors state logging in the
YarpRobotLoggerDevice
(ami-iit#453) - Implement
QPInverseKinematics::toString
method and the associated python bindings (ami-iit#461) - Add the cartesian wrenches logging in
YarpRobotLoggerDevice
(ami-iit#447) - Implement the python bindings for the manif conversions methods (ami-iit#465)
- Inherits all the
Eigen::Matrix
constructors in theWrenchd
class (ami-iit#441) - Bump the minimum
cmake
version to3.16.0
(ami-iit#468)
- Fix Analog FT Sensor reading in
YarpSensorBridgeImpl
(ami-iit#459) - Fix config files in
YarpRobotLoggerDevice
for iCub3 head IMU reading (ami-iit#467)
0.4.0 - 2021-10-15
- Implement
AdvanceableRunner::isRunning()
method (ami-iit#395) - Implement
ContactPhaseList::getPresentPhase()
method (ami-iit#396) - Add a synchronization mechanism for the
AdvanceableRunner
class (ami-iit#403) - Add the possibility to use spdlog with YARP (ami-iit#408)
- Add new Advanceable exposing
UnicyclePlanner
(ami-iit#320)
- Add
name
parameter to theAdvanceableRunner
class (ami-iit#406) - Set the required
spdlog
version in the cmake file (ami-iit#415) - Add features to FTIMULoggerDevice and rename it in YarpRobotLoggerDevice (ami-iit#405)
- Fix missing components dependencies in the
CMake
machinery (ami-iit#414) - Fixed missing include in
FloatingBaseEstimatorIO.h
(ami-iit#417)
0.3.0 - 2021-08-12
- Implement
CubicSpline
class (ami-iit#344) - Implement
PWM
control in RobotControl class (ami-iit#346) - Implement
ContactWrenchCone
class in Math component (ami-iit#352) - Implement
skew
function in Math component (ami-iit#352) - Implement
QPTSID
class (ami-iit#366) - Implement motor pwm, motor encoders, wbd joint torque estimates, pid reading in
YarpSensorBridge
(ami-iit#359). - Implement FeasibleContactWrenchTask for TSID component (ami-iit#369).
- Implement python bindings for QPInverseKinematics class (ami-iit#303)
- Implement
ControlTask
in for System component (ami-iit#373). - Allow changing the log verbosity (ami-iit#385)
- Implement the CoMZMP controller (ami-iit#387)
- Add common Python files to gitignore (ami-iit#338)
- General improvements of
blf-calibration-delta-updater
(ami-iit#361) - Add the possibility to control a subset of coordinates in
IK::SE3Task
(ami-iit#356) - Add the possibility to control a subset of coordinates in
IK::CoMTask
(ami-iit#357) - Reduce the duplicate code in IK and TSID (ami-iit#364)
QPFixedBaseTSID
now inherits fromQPTSID
(ami-iit#366)- Enable the Current control in
RobotInterface
class (ami-iit#375) - Add the possibility to disable and enable the PD controllers in
IK::SE3Task
(ami-iit#373). - Add the possibility to use manif objects in the ForwardEuler integrator (ami-iit#379).
- Fixed the crashing of
YarpSensorBridge
while trying to access unconfigured control board sensors data by adding some checks (ami-iit#378) - Fixed the compilation of Python bindings (enabled by the
FRAMEWORK_COMPILE_PYTHON_BINDINGS
CMake option) when compiling with Visual Studio (ami-iit#380). - Fixed the
TOML
andYARP
implementation of the parameters handler when astd::vector<bool>
is passed to thesetParameter()
method (ami-iit#390).
0.2.0 - 2021-06-15
- Implement IRobotControl python bindings (ami-iit#200)
- Implement ISensorBridge python bindings (ami-iit#203)
- Implement
LeggedOdometry
class as a part ofFloatingBaseEstimators
library and handle arbitrary contacts inFloatingBaseEstimator
. (ami-iit#151) - Implement the possibility to set a desired reference trajectory in the TimeVaryingDCMPlanner. (ami-iit#208)
- Implement SchmittTriggerDetector python bindings (ami-iit#213)
- Implement ModelComputationsHelper for quick construction of KinDynComputations object using parameters handler (ami-iit#216)
- Implement FloatingBaseEstimator and LeggedOdometry python bindings (ami-iit#218)
- Add spdlog as mandatory dependency of the project (ami-iit#225)
- Implement
ICameraBridge
andIPointCloudBridge
interface classes as a part ofPerceptionInterface
library. (ami-iit#165) - Implement
RealSense
driver class as a part ofPerceptionCapture
library. (ami-iit#165) - Implement
realsense-test
utility application. (ami-iit#165) - Implement the inverse kinematics component (ami-iit#229)
- Implement LinearizedFrictionCone class (ami-iit#244)
- Added a check on whether the installed public headers have the correct folder structure (ami-iit#247)
- Implement python bindings for VariablesHandler class (ami-iit#234)
- Implement
PerceptionFeatures
library and implementArucoDetector
. (ami-iit#159) - Implement FixedBaseDynamics class (ami-iit#242)
- Implemented Sink and Source classes (ami-iit#267)
- Implement the IClock, StdClock and YarpClock classes (ami-iit#269)
- Implement
YarpCameraBridge
class for Yarp implementation of ICameraBridge (ami-iit#237) - Implement
PointCloudProcessor
class and modifyrealsense-test
to test point clouds handling with Realsense. (ami-iit#236) - Implement
AdvanceableRunner
andSharedResource
classes in System component (ami-iit#272) - Implement
handleQuitSignals()
function in System component (ami-iit#277) - Implement TaskSpaceInverseDynamics interface (ami-iit#279)
- Implement
Wrench
class (ami-iit#279) - Implement
SO3Task
inTSID
component (ami-iit#281) - Implement clone method in ParametersHandler classes (ami-iit#288)
- Implement
VariablesHandler::clear()
andVariablesHandler::initialize()
(ami-iit#291) - Implement the possibility to set the default contact in the
ContactList
class (ami-iit#297) - Implement
FixedFootDetector
class (ami-iit#284) - Implement QPFixedBaseTSID class (ami-iit#251)
- Implement
YarpImplementation::setFromFile()
(ami-iit#307) - Implement
CoMTask
in TSID (ami-iit#304) - Implement
YarpParametersHandler
bindings (ami-iit#309) - Implement
contactListMapFromJson()
andcontactListMapToJson()
methods and python bindings (ami-iit#316) - Implement a matioCpp-based strain2 sensors' FT-IMU logger example device (ami-iit#326)
- Implement
TomlImplementation
inParametersHandler
(ami-iit#328) - Implement blf_calibration_delta_updater.py application (ami-iit#332)
- Move all the Contacts related classes in Contacts component (ami-iit#204)
- Move all the ContactDetectors related classes in Contacts component (ami-iit#209)
- The DCMPlanner and TimeVaryingDCMPlanner initialize functions take as input an std::weak_ptr. (ami-iit#208)
- Use
Math::StandardAccelerationOfGravitation
instead of hardcoding 9.81. (ami-iit#211) - Convert iDynTree types in FloatingBaseEstimators component to Eigen/manif types (ami-iit#215)
- Use std::optional instead of raw pointer in ISensorBridge. (ami-iit#226)
- Use
System::LinearTask
in TSID component (ami-iit#240) - Restructure python bindings in submodules (ami-iit#238)
- Integrators and DynamicalSystems are now in the
ContinuousDynamicalSystem
component (ami-iit#242) - Add Input template class to
System::Advanceable
(ami-iit#267) - Add support for landmarks and kinematics-free estimation in
FloatingBaseEstimators
. (ami-iit#254) - If FRAMEWORK_DETECT_ACTIVE_PYTHON_SITEPACKAGES is OFF, for Python bindings use installation directory provided by sysconfig Python module. (ami-iit#274)
- Reduce memory allocation in
YarpSensorBridge
(ami-iit#278) - Use
TextLogging
inVariablesHandler
class (ami-iit#291) - Fix
YarpImplementation::setParameterPrivate()
when a boolean or a vector of boolean is passed (ami-iit#311) - Add
foot_take_off_acceleration
andfoot_take_off_velocity
parameters in theSwingFootPlanner
class (ami-iit#323) - Change the parameters handler verbosity (ami-iit#330)
- Restore backward compatibility of SwingFootPlanner parameters (ami-iit#334)
- Bump manif version to 0.0.4 (ami-iit#339)
- Fix missing implementation of
YarpSensorBridge::getFailedSensorReads()
. (ami-iit#202) - Fixed
mas-imu-test
configuration files after FW fix. - Fixed the implementation ``YarpSensorBridge::attachAllSixAxisForceTorqueSensors()`. (ami-iit#231)
- Avoid the "Generating the Urdf Model from" message to appear when doing ccmake. (ami-iit#243)
- Fixed the installation path of public headers related to perception libraries. (ami-iit#245)
- Fixed InstallBasicPackageFiles to avoid the same problem of ami-iit/matio-cpp#41 (ami-iit#253)
- Call
positionInterface->setRefSpeeds()
only once when a position reference is set inYarpRobotControl
(ami-iit#271) - Fix initialization of reference frame for world in
LeggedOdometry
class. (ami-iit#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. (ami-iit#292)- Avoid to use the default copy-constructor and copy-assignment operator in
ContactPhaseList
class (ami-iit#295) - Fix
toString()
method ofVariablesHandler
class (ami-iit#302) - Fix in
YarpUtilities::getVectorFromSearchable
when a vector of boolean is passed as input (ami-iit#313) - Various fixes for the yarp devices (ami-iit#337)
0.1.1 - 2021-05-08
- Fix the documentation in
TemplateHelpers.h
0.1.0 - 2021-02-22
- 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. (ami-iit#43 and ami-iit#45) - Implement the first version of the
TimeVaryingDCMPlanner
(ami-iit#61) - Implement the Quintic Spline class (ami-iit#83)
- Implement the
ConvexHullHelper
class (ami-iit#51) - Implement the
DynamicalSystem
andIntegrator
class (ami-iit#46) - Implement the
IRobotControl
interface and the YARP specialization (ami-iit#97, ami-iit#192) - Add
SensorBridge
interface (ami-iit#87) - Add the
YarpSensorBridge
Implementation (ami-iit#106) - Added
CommonConversions
,ManifConversions
, andmatioCppConversions
libraries to handle type conversions. (ami-iit#138 and ami-iit#143) - Implement the
JointPositionTracking
application. (ami-iit#136) - Initial implementation of Python bindings using pybind11 (ami-iit#134)
- Implement
FloatingBaseEstimatorDevice
YARP device for wrapping floating base estimation algorithms. (ami-iit#130) - Implement Continuous algebraic Riccati equation function (ami-iit#157)
- Implement YARP based
ROSPublisher
in theYarpUtilities
library. (ami-iit#156) - Implement example YARP device
ROSPublisherTestDevice
for understanding the usage ofROSPublisher
. (ami-iit#160) - Implement
TSID
library. (ami-iit#167, ami-iit#170, ami-iit#178) - Implement the
JointTrajectoryPlayer
application. (ami-iit#169 - Implement
ContactDetectors
library. (ami-iit#142) - Added
mas-imu-test
application to check the output of MAS IMUs (ami-iit#62) - Implement motor currents reading in
YarpSensorBridge
. (ami-iit#187)