gazebo-yarp-plugins
Gazebo Plugins exposing YARP interfaces.
|
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 .
gazebo_yarp_controlboard
plugin gained support to load at runtime arbitrary couplings specified by a yarp device that exposes the yarp::dev::IJointCoupling
interface. The name of the yarp device used to load the coupling is passed via the device
parameter in the COUPLING
group. For an example of PR that uses this new feature, check https://github.com/icub-tech-iit/ergocub-software/pull/178 .gazebo_yarp_basestate
has been modified to be aligned w.r.t. of plugins in gazebo-yarp-plugins, supporting disableImplicitNetworkWrapper
and yarpDeviceName
parameters, and by supporting the use of gazebo_yarp_robotinterface
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/675).icub_hand_mk5
parameter in the COUPLING
the gazebo_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.icub_hand_mk5
coupling handler has been refactored, it now requires the group COUPLING_PARAMS
that allows to differentiate between the coupling mk5.0 and mk5.1(https://github.com/robotology/gazebo-yarp-plugins/pull/662).gazebo_yarp_forcetorque
plugin now exposes also the yarp::dev::ITemperatureSensors
interface, so it can stream fake temperature values (https://github.com/robotology/gazebo-yarp-plugins/pull/656).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 the useInitialSensorOrientationAsReference
config option (https://github.com/robotology/gazebo-yarp-plugins/pull/639).gazebo_yarp_controlboard
plugin is compiled using C++ 20 compiler features (https://github.com/robotology/gazebo-yarp-plugins/pull/650).BaseCouplingHandler::decoupleVelRef()
methods within gazebo_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.gazebo_yarp_controlboard
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/650).gazebo_yarp_controlboard
add the icub_hand_mk5
coupling that models the iCub mk5 hand, that is used also in ergoCub 1 robot (https://github.com/robotology/gazebo-yarp-plugins/pull/641).get**Name
methods in nested models (https://github.com/robotology/gazebo-yarp-plugins/pull/633).gazebo_yarp_forcetorque
plugin now exposes also the yarp::dev::ISixAxisForceTorqueSensors
interface, so it can be used with multipleanalogsensorsserver
, multipleanalogsensorsremapper
and multipleanalogsensorsclient
devices (https://github.com/robotology/gazebo-yarp-plugins/issues/384, https://github.com/robotology/gazebo-yarp-plugins/pull/628).GazeboYarpDepthCameraDriver::getDepthImage
which in at least one occasion caused an unexpected crash of the rgbdSensor_nws_yarp
. Also, the calculation of the scalar coefficient (involving math::pow
), used to cut the decimal figures from the depth data, has been moved outside the for loop that cycles through the whole image (https://github.com/robotology/gazebo-yarp-plugins/pull/623).gazebo_yarp_controlboard
update the parameters in icub_left_hand_mk4
regarding pinkie and thumb which are used to generate the look-up table to approximate the coupling laws. (https://github.com/robotology/gazebo-yarp-plugins/pull/624)gazebo_yarp_camera
parse the yarpDeviceName
option to enable its use with gazebo_yarp_robotinterface
(https://github.com/robotology/gazebo-yarp-plugins/pull/614).gazebo_yarp_controlboard
add the icub_left_hand_mk4
coupling that models the iCub mk4 left hand (https://github.com/robotology/gazebo-yarp-plugins/pull/620).gazebo_yarp_robotinterface
plugin to spawn their network wrapper servers (https://github.com/robotology/gazebo-yarp-plugins/pull/615 and https://github.com/robotology/gazebo-yarp-plugins/pull/616).gazebo_yarp_robotinterface
without any crash (https://github.com/robotology/gazebo-yarp-plugins/pull/618, https://github.com/robotology/gazebo-yarp-plugins/pull/619).gazebo_yarp_laser
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/617).disableImplicitNetworkWrapper
option to gazebo_yarp_forcetorque
, gazebo_yarp_depthcamera
, gazebo_yarp_lasersensor
, gazebo_yarp_imu
and gazebo_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 the gazebo_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 option GAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
to OFF
(https://github.com/robotology/gazebo-yarp-plugins/pull/586).gazebo_yarp_depthcamera
plugin, via the QUANT_PARAM::depth_quant
parameter. The data modification is performed in the GazeboYarpDepthCameraDriver::getDepthImage
function (https://github.com/robotology/gazebo-yarp-plugins/pull/608).getLastInputStamp
method from LaserSensorDriver
class in gazebo_yarp_lasersensor
. Furthermore, fix bug in gazebo_yarp_lasersensor
, by adding the update to the variable m_timestamp
inherited from yarp::dev::Lidar2DDeviceBase
(https://github.com/robotology/gazebo-yarp-plugins/pull/604).gazebo_yarp_worldinterface
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/609).gazebo_yarp_forcetorque
plugin now handle the yarpDeviceName
parameter (https://github.com/robotology/gazebo-yarp-plugins/pull/584).gazebo_yarp_forcetorque
plugin can be now opened without implicit wrapper, by using the GAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
CMake option (https://github.com/robotology/gazebo-yarp-plugins/pull/584).gazebo_imu
plugin now handle the yarpDeviceName
parameter (https://github.com/robotology/gazebo-yarp-plugins/pull/583).gazebo_imu
plugin can be now opened without implicit wrapper, by using the GAZEBO_YARP_PLUGINS_DISABLE_IMPLICIT_NETWORK_WRAPPERS
CMake option (https://github.com/robotology/gazebo-yarp-plugins/pull/583).yarp::dev::IRgbVisualParams
interface (https://github.com/robotology/gazebo-yarp-plugins/pull/558).yarpDeviceName
parameter (https://github.com/robotology/gazebo-yarp-plugins/pull/559).gazebo_yarp_multicamera
, gazebo_yarp_lasersensor
, gazebo_yarp_doublelaser
, gazebo_yarp_controlboard
and gazebo_yarp_depthCamera
plugins now log messages using the "Log Components" YARP logging feature.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
and gazebo_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 (https://github.com/robotology/gazebo-yarp-plugins/pull/562).gazebo_yarp_controlboard
plugin configuration, if the [VELOCITY_CONTROL]
group is present the velocityControlImplementationType
parameter is now compulsory, and model loading will fail if it is not set.getRgbIntrinsicParam()
, now contains rectificationMatrix
instead of rectificationMatrix
(https://github.com/robotology/gazebo-yarp-plugins/pull/558, see also https://github.com/robotology/yarp/pull/2593).gazebo_yarp_jointsensors
and the gazebo_yarp_doublelaser
have been removed (https://github.com/robotology/gazebo-yarp-plugins/pull/574).gazebo-yarp-plugins
now requires Gazebo 11 (https://github.com/robotology/gazebo-yarp-plugins/pull/575).gazebo_yarp_jointsensors
and the gazebo_yarp_doublelaser
have been deprecated and will be removed in the next major version of gazebo-yarp-plugins
.refSpeed
and refAcceleration
options to the TRAJECTORY_GENERATION
group of the gazebo_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).trapezoidal_speed
as a new supported value for option trajectory_type
of the gazebo_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.gazebo_yarp_robotinterface
plugin, the documentation for it can be found at plugins/robotinterface/README.md (https://github.com/robotology/gazebo-yarp-plugins/pull/532).gazebo_yarp_depthcamera
and gazebo_yarp_doublesensor
now accept a yarpDeviceName
parameter (https://github.com/robotology/gazebo-yarp-plugins/pull/532).deviceId
parameter of the gazebo_yarp_lasersensor
is now named yarpDeviceName
)https://github.com/robotology/gazebo-yarp-plugins/pull/532).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 (https://github.com/robotology/gazebo-yarp-plugins/pull/537).velocityControlImplementationType
option to the VELOCITY_CONTROL
group of the gazebo_yarp_controlboard
plugin configuration. This option permits to switch between direct_velocity_pid
, that is using a velocity PID for the Velocity Control Mode (what has been implemented until now) and integrator_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 to direct_velocity_pid
, but it will be compulsory in gazebo-yarp-plugins 4.x (https://github.com/robotology/gazebo-yarp-plugins/pull/514).VOCAB_CM_MIXED
control mode when the physics timestep is different from 1 millisecond (https://github.com/robotology/gazebo-yarp-plugins/pull/514).gazebo_yarp_controlboard
. In some cases this was causing crashes when a model that contained a gazebo_yarp_controlboard
plugin was removed from the simulation (https://github.com/robotology/gazebo-yarp-plugins/pull/514).externalwrench
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/495)linkattacher
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/497)gazebo_yarp_controlboard
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/499)gazebo_yarp_controlboard
(https://github.com/robotology/gazebo-yarp-plugins/pull/492).linkattacher
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/461).yarp::dev::IPositionControl::relativeMove
in gazebo_yarp_controlboard
(https://github.com/robotology/gazebo-yarp-plugins/pull/466).MultipleAnalogInterfaces
(https://www.yarp.it/group__dev__iface__multiple__analog.html) in the gazebo_yarp_imu
.externalwrench
plugin if the project is configured with Gazebo 7 (https://github.com/robotology/gazebo-yarp-plugins/pull/434).resetSimulation
method to reset simulation state and time time, in the gazebo_yarp_clock
RPC interface (https://github.com/robotology/gazebo-yarp-plugins/pull/345).resetSimulationState
method to reset simulation state, but not the time, in the gazebo_yarp_clock
RPC interface (https://github.com/robotology/gazebo-yarp-plugins/pull/424).gazebo_yarp_doublelaser
plugin to simulate a double laser device (https://github.com/robotology/gazebo-yarp-plugins/pull/419).gazebo_yarp_configurationoverride
plugin that can be attached to a model in order to override the sdf
configuration of any other plugin that is attached to the same model (https://github.com/robotology/gazebo-yarp-plugins/pull/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 .gazebo_yarp_externalwrench
to apply multiple external wrenchs at the same time (https://github.com/robotology/gazebo-yarp-plugins/pull/418) .yarpConfigurationString
to configure the YARP plugins with a single yarpConfigurationString
embedded in the SDF code of the plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/396).gazebo_depthCamera
plugin (https://github.com/robotology/gazebo-yarp-plugins/pull/408).