This file documents notable changes to this project done before February 2024. For changes after that date, plase refers to the release notes of each release at https://github.com/robotology/gazebo-yarp-plugins/releases .
- The
gazebo_yarp_controlboard
plugin gained support to load at runtime arbitrary couplings specified by a yarp device that exposes theyarp::dev::IJointCoupling
interface. The name of the yarp device used to load the coupling is passed via thedevice
parameter in theCOUPLING
group. For an example of PR that uses this new feature, check icub-tech-iit/ergocub-software#178 . - The
gazebo_yarp_basestate
has been modified to be aligned w.r.t. of plugins in gazebo-yarp-plugins, supportingdisableImplicitNetworkWrapper
andyarpDeviceName
parameters, and by supporting the use ofgazebo_yarp_robotinterface
plugin (#675).
- The support for passing the
icub_hand_mk5
parameter in theCOUPLING
thegazebo_yarp_controlboard
plugin was removed. This breaks compatibility with models contained in ergocub-software <= 0.6.0, to use those models use a newer version of ergocub-software.
- The
icub_hand_mk5
coupling handler has been refactored, it now requires the groupCOUPLING_PARAMS
that allows to differentiate between the coupling mk5.0 and mk5.1(#662).
- The
gazebo_yarp_forcetorque
plugin now exposes also theyarp::dev::ITemperatureSensors
interface, so it can stream fake temperature values (#656).
- Fix installation of import libraries on Windows (#657).
- The
gazebo_imu
plugin used to output orientation measurements as if the sensor was zero-aligned with the world frame, regardless of the initial orientation of the part the sensor is attached to. To match most real-world IMUs, the default behavior was changed to allow measuring orientation with regard to the world frame at all times. The old behavior can be restored by setting theuseInitialSensorOrientationAsReference
config option (#639). - The
gazebo_yarp_controlboard
plugin is compiled using C++ 20 compiler features (#650). - The
BaseCouplingHandler::decoupleVelRef()
methods withingazebo_yarp_controlboard
provides an input argument containing the full joints position feedback, to be used to implement velocity decoupling laws that depend on the joints position.
- Fix wrong install include for gazebo_yarp_lib_common library (#644).
- Fix wrong implementation of coupling handlers of ergoCub MK5 hands within the
gazebo_yarp_controlboard
plugin (#650).
- In
gazebo_yarp_controlboard
add theicub_hand_mk5
coupling that models the iCub mk5 hand, that is used also in ergoCub 1 robot (#641).
- Fix compatibility with YARP 3.8 (#640).
- Fix behaviour of MultipleAnalogSensor
get**Name
methods in nested models (#633).
- The
gazebo_yarp_forcetorque
plugin now exposes also theyarp::dev::ISixAxisForceTorqueSensors
interface, so it can be used withmultipleanalogsensorsserver
,multipleanalogsensorsremapper
andmultipleanalogsensorsclient
devices (#384, #628).
- Fix YARP 3.8 compatibility (#627).
- Removed implicit conversions from the depth data quantization in
GazeboYarpDepthCameraDriver::getDepthImage
which in at least one occasion caused an unexpected crash of thergbdSensor_nws_yarp
. Also, the calculation of the scalar coefficient (involvingmath::pow
), used to cut the decimal figures from the depth data, has been moved outside the for loop that cycles through the whole image (#623). - In
gazebo_yarp_controlboard
update the parameters inicub_left_hand_mk4
regarding pinkie and thumb which are used to generate the look-up table to approximate the coupling laws. (#624)
- In
gazebo_yarp_camera
parse theyarpDeviceName
option to enable its use withgazebo_yarp_robotinterface
(#614). - In
gazebo_yarp_controlboard
add theicub_left_hand_mk4
coupling that models the iCub mk4 left hand (#620).
- Migrate the example models under the tutorial directory to avoid the use of implicit network wrapper servers, and use the
gazebo_yarp_robotinterface
plugin to spawn their network wrapper servers (#615 and #616).
- It is now possible to remove and add again to the simulation models that use
gazebo_yarp_robotinterface
without any crash (#618, #619). - Fixed value returned by getDeviceStatus method in
gazebo_yarp_laser
plugin (#617).
- Added
disableImplicitNetworkWrapper
option togazebo_yarp_forcetorque
,gazebo_yarp_depthcamera
,gazebo_yarp_lasersensor
,gazebo_yarp_imu
andgazebo_yarp_controlboard
plugins. If present, this option disable any network wrapper server that the plugin created, by just creating the device itself. This option is meant to be used in conjuction with thegazebo_yarp_robotinterface
plugin, that can be used to launch and attach any networ wrapper server. This option is equivalent to the behavior that can be obtained by setting the CMake optionGAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
toOFF
(#586). - The possibility to limit the decimal places of the pixels values has been added to the
gazebo_yarp_depthcamera
plugin, via theQUANT_PARAM::depth_quant
parameter. The data modification is performed in theGazeboYarpDepthCameraDriver::getDepthImage
function (#608).
- Removed
getLastInputStamp
method fromLaserSensorDriver
class ingazebo_yarp_lasersensor
. Furthermore, fix bug ingazebo_yarp_lasersensor
, by adding the update to the variablem_timestamp
inherited fromyarp::dev::Lidar2DDeviceBase
(#604). - Fix use of yarpConfigurationString parameter in
gazebo_yarp_worldinterface
plugin (#609).
- The
gazebo_yarp_forcetorque
plugin now handle theyarpDeviceName
parameter (#584). - The
gazebo_yarp_forcetorque
plugin can be now opened without implicit wrapper, by using theGAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
CMake option (#584). - The
gazebo_imu
plugin now handle theyarpDeviceName
parameter (#583). - The
gazebo_imu
plugin can be now opened without implicit wrapper, by using theGAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
CMake option (#583).
- Fixed compilation with YARP 3.6 (#599).
- The multicamera plugin now implements the
yarp::dev::IRgbVisualParams
interface (#558). - The controlboard and multicamera plugins now handle the
yarpDeviceName
parameter (#559).
gazebo_yarp_multicamera
,gazebo_yarp_lasersensor
,gazebo_yarp_doublelaser
,gazebo_yarp_controlboard
andgazebo_yarp_depthCamera
plugins now log messages using the "Log Components" YARP logging feature.- A cmake option (
GAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
) has been added, if this option is enabled then implicit wrappers present ingazebo_yarp_multicamera
,gazebo_yarp_lasersensor
,gazebo_yarp_controlboard
andgazebo_yarp_depthCamera
are removed, the new way to have them is to attach the new nws to gazebo devices via yarprobotinterface. gazebo-yarp-plugins
now requires YARP 3.5 (#562).- In the
gazebo_yarp_controlboard
plugin configuration, if the[VELOCITY_CONTROL]
group is present thevelocityControlImplementationType
parameter is now compulsory, and model loading will fail if it is not set.
- Fixed the getRgbIntrinsicParam method in the depthCamera plugin when the distortion is not set (#558).
- The property returned by
getRgbIntrinsicParam()
, now containsrectificationMatrix
instead ofrectificationMatrix
(#558, see also robotology/yarp#2593).
- The
gazebo_yarp_jointsensors
and thegazebo_yarp_doublelaser
have been removed (#574). - The support for Gazebo 9 and 10 has been removed.
gazebo-yarp-plugins
now requires Gazebo 11 (#575).
- The
gazebo_yarp_jointsensors
and thegazebo_yarp_doublelaser
have been deprecated and will be removed in the next major version ofgazebo-yarp-plugins
.
- Fixed use of libYARP_robotinterface with YARP devices spawned by sensor plugins (#544).
- Fixed compilation against YARP 3.5 by removing spurious print in WorldInterface plugin (#548).
- Add
refSpeed
andrefAcceleration
options to theTRAJECTORY_GENERATION
group of thegazebo_yarp_controlboard
plugin configuration. They are expected to hold exactly n_joints values (an error is reported otherwise) describing reference speeds and accelerations, respectively, for use by the selected trajectory generator (if necessary). - Add
trapezoidal_speed
as a new supported value for optiontrajectory_type
of thegazebo_yarp_controlboard
plugin configuration. This generator enables the trajectory to follow a trapezoidal speed profile in position control mode, limited by provided reference speed (saturation) and acceleration (both ramps) values. If already executing a trajectory in this manner, newly generated trajectories take into account previous joint velocities and update the motion accordingly. - Add
gazebo_yarp_robotinterface
plugin, the documentation for it can be found at plugins/robotinterface/README.md (#532). - The
gazebo_yarp_depthcamera
andgazebo_yarp_doublesensor
now accept ayarpDeviceName
parameter (#532).
- The
deviceId
parameter of thegazebo_yarp_lasersensor
is now namedyarpDeviceName
)#532).
- Fix the support for running Gazebo itself with the
gazebo_yarp_clock
with YARP_CLOCK set, without Gazebo freezing at startup. In particular, setting YARP_CLOCK is suggested to ensure that all the threads of YARP Network Wrapper Servers are executed with the frequency correctly synchronized with the Gazebo simulation (#537).
- Add
velocityControlImplementationType
option to theVELOCITY_CONTROL
group of thegazebo_yarp_controlboard
plugin configuration. This option permits to switch betweendirect_velocity_pid
, that is using a velocity PID for the Velocity Control Mode (what has been implemented until now) andintegrator_and_position_pid
that uses an integrator that integrates the velocity reference and then uses the position low level PID, similarly to what is implement on real YARP-powered robot such as iCub or R1. The setting is now optional and if not present will default todirect_velocity_pid
, but it will be compulsory in gazebo-yarp-plugins 4.x (#514).
- Fixed use of the
VOCAB_CM_MIXED
control mode when the physics timestep is different from 1 millisecond (#514). - Fixed missing initialization of a pointer in
gazebo_yarp_controlboard
. In some cases this was causing crashes when a model that contained agazebo_yarp_controlboard
plugin was removed from the simulation (#514).
- Add the implementation to import models in the gazebo world in two configuration. First, load it directly with the pose in the sdf-file or second, load it with a given pose. (#467)
- Add external wrench smoothing feature for
externalwrench
plugin (#495) - Add the possibility to define initial configuration for
linkattacher
plugin (#497) - Add the possibility to specify limits for coupled joints for
gazebo_yarp_controlboard
plugin (#499)
- Fixed empty string return for creation of the cylinder object. (#467)
- Fixed empty pointer error in the creation process of the objects (sphere, box, cylinder) and the frame. (#467)
- Fixed wrong measurements feedback used for coupled joints in
gazebo_yarp_controlboard
(#492). - Fixed mismatched behavior, with respect to the real robot, of coupling handler FingersAbductionCouplingHandler in 'gazebo_yarp_controlboard' plugin (#499)
- Fixed mismatched behavior, with respect to the real robot, of mais analog sensors in 'gazebo_yarp_maissensor' plugin (#500)
- Removed Windows end of lines (#507).
- Fixed compilation with Boost 1.73 (#505).
- Add the possibility to create different types of joints with the
linkattacher
plugin (#461).
- Fixed initialization of the local simulation time from Gazebo simTime on first call of onUpdate (#478).
- Fix linking on MSVC when not using the vcpkg's CMAKE_TOOLCHAIN_FILE (#483).
- Solve the problem of setting the interaction mode when the mode of actuator has been already set on the same requested interaction mode (#464).
- Fix implementation of
yarp::dev::IPositionControl::relativeMove
ingazebo_yarp_controlboard
(#466).
- Add the usage of
MultipleAnalogInterfaces
(https://www.yarp.it/group__dev__iface__multiple__analog.html) in thegazebo_yarp_imu
.
- Fixed compilation on Gazebo 7 by disabling compilation of
externalwrench
plugin if the project is configured with Gazebo 7 (#434).
- Support for YARP <= 3.2 was removed. This release requires the use of YARP 3.3 .
- Add
resetSimulation
method to reset simulation state and time time, in thegazebo_yarp_clock
RPC interface (#345). - Add
resetSimulationState
method to reset simulation state, but not the time, in thegazebo_yarp_clock
RPC interface (#424). - Add
gazebo_yarp_doublelaser
plugin to simulate a double laser device (#419). - Add
gazebo_yarp_configurationoverride
plugin that can be attached to a model in order to override thesdf
configuration of any other plugin that is attached to the same model (#401). This plugin is particularly useful to set the initial configuration of a given model, and is documented in https://github.com/robotology/gazebo-yarp-plugins/blob/v3.2.0/plugins/configurationoverride/README.md . - Add features in
gazebo_yarp_externalwrench
to apply multiple external wrenchs at the same time (#418) . - Add the
yarpConfigurationString
to configure the YARP plugins with a singleyarpConfigurationString
embedded in the SDF code of the plugin (#396). - Add a ChangeLog document based on the format defined in Keep a Changelog.
- Fix invalid camera parameters in
gazebo_depthCamera
plugin (#408).