Releases: robotology/yarp
YARP 3.9.0
YARP 3.9.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Major Behaviour Changes
- Yarp now supports C++20 standard.
- Catch2 library updated to version: 3.4.0
- YCM library updated to 0.15.3
Deprecations and removals
- Removed yarp companion command TopicTest.
- Removed unnecessary rosmsg dependencies in yarpdataplayer.
- Removed UNMAINTAINED executable yarpfs.
- Removed UNMAINTAINED library libyarpc.
- Removed deprecated device controlboardwrapper2.
Fixes
- General improvement to yarp github CI to support Ubuntu22.04+clang17, Windows2022+VS17
- Fixed segfault in
audioRecorderDeviceBase
device. - Added missing doxygen tags to several interfaces and devices.
- Fixed segfault when reading a mono .wav file from disk in
SoundFileWav.cpp
. - Fixed stdin in
yarprun --cmd <cmd> --stdio
. - Removed robot and
iCubGui
inertial ports from the example app as the GUI is unable to handle the MAS client. - Fix bug that forces images to be sent through RPC calls in
frameGrabber_nwc_yarp
. - The error message upon inconsistent encoder timestamps has been throttled in
controlBoard_nws_yarp
. - Fixed issue regarding windows/linux timestamps synchronization:
yarp::os::SystemClock::nowSystem()
now maps tostd::chrono::system_clock
instead ofstd::chrono::high_resolution_clock
New Features
Docker
Added new experimental docker image for Ubuntu22.04 http://github.com/robotology/yarp/docker
GUIs
yarpaudiocontrolgui
Added new gui yarpaudiocontrolgui
to start/stop an audioRecorder_nwc_yarp
or an audioPlayer_nwc_yarp
device.
yarpllmgui
Added new gui yarpllmgui
to control IChatbot
devices.
Libraries
libYARP_sig
- The class
yarp::sig::sound
has refactored to avoid the internal use (private implementation) ofyarp::sig::Image
data type.
libYARP_companion
- Added companion command
yarp split
. The command splits an heterogeneous nested bottle received from a port into multiple ports.
libYARP_dev
- Added new interface:
IJointCoupling
, an interface for handling coupled joints. - Added new interfaces:
ISpeechSynthesizer
,ISpeechTranscription
. - Added new interface:
IChatBot
to interact with chatbots. - The interface
ITorqueControl
now supports four a new friction parameters:velocityThresh
.
These parameters are used to enable the new torque control law and fine tune the the friction compensation at FW level.
Devices
frameTransformStorage + frameTransformClient + frameTransformServer
- Added a timeout related parameter (
FrameTransform_container_timeout
) to change the refresh interval for old timed frame transforms. - The parameter has also been added to the
frameTransformClient
andframeTransformServer
configuration files. Theextern-name
for this parameter is:
ftc_storage_timeout
forframeTransformClient
files;fts_storage_timeout
forframeTransformServer
files
chatBot
- Added nwc device
chatBot_nwc_yarp
for theIChatBot
interface and the corresponding test - Added nws device
chatBot_nws_yarp
- Added fake device
fakeChatBotDevice
speechSynthesizer
- Added nwc device
speechSynthesizer_nwc_yarp
for theISpeechSynthesizer
interface and the corresponding test - Added nws device
speechSynthesizer_nws_yarp
- Added fake device
fakeSpeechSynthesizer
speechTranscription
- Added nwc device
speechTranscription_nwc_yarp
for theISpeechTranscription
interface and the corresponding test - Added nws device
speechTranscription_nws_yarp
- Added fake device
fakeSpeechTranscription
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.8.0..v3.9.0
):
127 Marco Randazzo <[email protected]>
37 Ettore Landini <[email protected]>
14 Nicolò Genesio <[email protected]>
14 fbrand-new <[email protected]>
7 Silvio Traversaro <[email protected]>
6 Arren Glover <[email protected]>
4 robotology-bot (Tag Repository Action) <[email protected]>
3 Bartek Łukawski <[email protected]>
2 Davide <[email protected]>
2 Ugo Pattacini <[email protected]>
1 Davide Gorbani <[email protected]>
1 Marco Randazzo <[email protected]>
1 Simone <[email protected]>
1 Simone Girardi <[email protected]>
1 Stefano Dafarra <[email protected]>
YARP 3.8.1
YARP 3.8.1 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
tools
yarpmotorgui
- Fixed an issue regarding high CPU usage (#2955).
devices
multipleanalogsensorsserver
Fixed bug that resulted in a segmentation fault if one of the device to which
multipleanalogsensorsserver
was attached did not resized the measure vector.
serialPort_nws_yarp serialPort_nwc_yarp
Fixed segfault in serialPort_nws_yarp if devices is used but not attached yet.
Fixed communication with serialPort_nwc_yarp.
opencv_grabber
Removed use of highgui.h include file.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.8.0..v3.8.1
):
8 Marco Randazzo <[email protected]>
5 Silvio Traversaro <[email protected]>
2 Nicolò Genesio <[email protected]>
2 robotology-bot (Tag Repository Action) <[email protected]>
1 Bartek Łukawski <[email protected]>
1 Ugo Pattacini <[email protected]>
1 fbrand-new <[email protected]>
YARP 3.8.0
YARP 3.8.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Deprecation and Behaviour Changes
lib_yarp_os
- Removed old deprecated functions related to the usage of unsafe network data types
(e.g. asVocab() -> asVocab32(), asInt() -> asInt32(), asDouble -> asFloat64() etc.)
Devices
- device
group
has been removed because of faulty/incomplete implementation and unused. Please useyarprobotinterface
instead. - Class
DriverLinkCreator
, used only by devicegroup
, has been removed. - device
pipe
has been removed because of faulty/incomplete implementation and unused. - device
dualGrabber
, previously deprecated, has been removed. - device
remote_grabber
, previously deprecated, has been removed.
New Features
Libraries
lib_yarp_companion
- Added companion command
yarp split
. The command splits an heterogeneous nested bottle received from a port into multiple ports.
lib_yarp_os
yarp::os::LogStream
now can chain instances ofyarp::sig::VectorOf<T>
.
lib_yarp_dev
- Added method
bool getAxes(int* ax)
toyarp::dev::IAxisInfo
interface.
bindings
- yarp bindings: Added corresponding
getAxes()
method toIAxisInfo
interface + python example.
libYARP_dev_tests
- A new library
yarp_dev_tests
: is now exported.
It contains common sources to test Yarp device throughlib_yarpdev
(also outside yarp repo)
libYARP_robotinterface
- Added support to
${portprefix}
variable in parameters (#2819).
Devices
- Removed devices
rpLidar
,rpLidar2
,rpLidar3
, and the corresponding sdk inextern/rplidar
.
The devices can be now found in https://github.com/robotology/yarp-device-rplidar
fakeLaserWithMotor
- added new device
fakeLaserWithMotor
rangefinder2D_nwc_yarp
- added new device
rangefinder2D_nwc_yarp
(including IRangefinder2D tests)
frameTransformServer
+ frameTransformClient
- Now both
frameTransformClient
andframeTransformServer
will search for "test" configurations not relying on an absolute path passed as a parameter but will take advantage ofyarp::os::ResourceFinder
using afile name
and acontext
passed to them in this way:
> yarpdev --device frameTransformClient --testxml_from testconfig.xml --testxml_context test_folder
yarpidl_thrift
- Improved thrift generator in order to handle default values of the variables declared inside a .thrift file.
Extern
Catch
- Migration from
Catch V2.13.8
toCatch V3.2.1
.
sqlite3
- Migration from
sqlite
tosqlite3
. Fixed issue preventingextern/sqlite3
(i.e.YARP_priv_SQLite3
) to be correctly found as a dependency by other projects.
GUIs
yarpview
- Added the possibility to set a custom title for
yarpview
by passing--title
+ custom title to the executable - If the
title
argument is not passedyarpview
window title will be assigned as it has been until now
yarpmotorgui
- Added visualization of motor position when a joint is in hardware fault.
- Improved sliders labels alignment.
- Added a new option to set the number of decimal digits of the slider.
YCM
- migration from
YCM 0.13
toYCM 0.15.1
Other
- added option
YARP_COMPILE_ALL_FAKE_DEVICES
to build all fake devices in one single shot
Portmonitors
image_rotation
- added new portmonitor
image_rotation
Bug Fixes
bindings
IGazeControl.storeContext()
: now the method is correctly exposed to Python, returning the ID instead of trying to modify a pointer to it.
devices
ffmpeg_grabber
- Fixed linking problems on Windows.
AudioRecorderWrapper
- It now inherits from
yarp::dev::WrapperSingle
instead ofyarp::dev::IMultipleWrapper
AudioPlayerWrapper
- It now inherits from
yarp::dev::WrapperSingle
instead ofyarp::dev::IMultipleWrapper
frameTransformClient
- Now, if the selected configuration xml file does not include a certain interface, the device is still correctly initialized but that interface won't be available. If a method that involves the missing interface is called, an error will be returned.
controlBoard_nws_yarp
- Fixed handling of
IRemoteVariables
messages via RPC. RPCMessagesParser
: several calls to various motor control interfaces have been protected so that
if an interface is not available in the hardware device (i.e. the view() fails),
thecontrolboardwrapper/yarprobotinterface
does not segfaults.
multipleanalogsensorsremapper
- Add more verbosity when sensor name is not found.
Tools
yarprobotinterface
yarprobotinterface
: is now able to parseenabled_by
anddisabled_by
xml attributes. See yarprobotinterface Doxygen documentation.
Yarp companion
- Fixed yarp command
write
throwing segmentation fault whenargc
was less than 2.
Integration Tests
- Tests: Added integration tests to check the correct execution of the following commands:
yarp --version
yarpdev --list
yarp plugin --all
- Tests: If no plugins are available, the command
yarp plugin --all
now returns 0 (OK) instead of 1 (ERROR).
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.7.0..v3.8.0
):
185 Marco Randazzo <[email protected]>
21 Ettore Landini <[email protected]>
13 Silvio Traversaro <[email protected]>
6 robotology-bot (Tag Repository Action) <[email protected]>
5 tumme <[email protected]>
4 Ugo Pattacini <[email protected]>
3 Bartek Łukawski <[email protected]>
3 Nicola Piga <[email protected]>
3 hypothe <[email protected]>
1 Marco Gabriele Fedozzi <[email protected]>
1 Mattia Fussi <[email protected]>
1 fbrand-new <[email protected]>
YARP 3.7.2
YARP 3.7.2 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
Documentation
- Major improvements to Yarp documentation
Libraries
lib_yarp_os
- Yarp now displays an error message if it is unable to save its configuration file
Devices
controlBoard_nws_yarp
- Encoder timestamps are now properly updated
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.7.1..v3.7.2
):
5 Marco Randazzo <[email protected]>
3 Nicola Piga <[email protected]>
2 robotology-bot (Tag Repository Action) <[email protected]>
1 Bartek Łukawski <[email protected]>
YARP 3.7.1
YARP 3.7.1 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Bug Fixes
CMake
-
Fix compilation against graphviz 3 on Windows. To work correctly, the fix requires that YCM >= 0.14.2 is used.
-
Migrate to use CMake's official
FindSQLite3.cmake
module.
Devices
GenericSensorRosPublisher
(and derived devices): added checks if the interfaces are available in the Attach phase
Libraries
lib_yarp_dev
- added missing timestamp to
IOdometry2D::getOdometry()
method
Tools
yarpmotorgui
- This pr solves the problem reported in issue #issue2839. Now
yarpmotorgui
does not show the error dialog when setting only a subset of the
available robot parts to a custom position
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.7.0..v3.7.1
):
8 Marco Randazzo <[email protected]>
5 Silvio Traversaro <[email protected]>
2 robotology-bot (Tag Repository Action) <[email protected]>
1 Ettore Landini <[email protected]>
1 Ugo Pattacini <[email protected]>
YARP 3.7.0
YARP 3.7.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Deprecation and Behaviour Changes
lib_yarp_os
- Removed old deprecated functions related to the usage of unsafe network data types
(e.g. asVocab() -> asVocab32(), asInt() -> asInt32(), asDouble -> asFloat64() etc.)
Devices
- removed deprecated devices:
NavigationServer -> please use: navigation2D_nws_yarp
NavigationClient -> please use: navigation2D_nwc_yarp
Map2DServer -> please use: map2D_nws_yarp
Map2DClient -> please use: map2D_nwc_yarp
Localization2DCServer -> please use: localization2D_nws_yarp
Localization2DClient -> please use: localization2D_nwc_yarp
rangefinder2DWrapper -> please use: rangefinder2D_nws_yarp
New Features
Libraries
lib_yarp_os
idl/WireReader
- Added
readBlock
method.
idl/WireWriter
- Added
writeBlock
method. - Added
skip_tag
flag to all write methods.
lib_yarp_dev
- ITorqueControl supports four new friction parameters: viscousPos, viscousNeg, coulombPos, coulombNeg.
These parameters are used to improve the friction model (and its compensation at FW level).
lib_yarp_companion
-
added
period
option to companion commandyarp write
. -
added
once
option to companion commandyarp read
. -
Companion commands
yarp read
andyarp write
now perform a check to verify that th
target ports do not already exist. -
Added new companion command
yarp topic-test
.
libYARP_robotinterface
- Added support to
${portprefix}
variable in parameters (#2819).
Devices
audioToFileDevice
- added new option
--add_marker
- added new option
--save_mode break_file
Port Monitors
- Added new portmonitor
depthimage_to_vector
- added new portmonitor
sound_marker
Tools
yarpidl_thrift
- Improved serialization for lists of basic types.
When possible, instead of being serialized element by element, lists of basic
types are now serialized as blocks.
GUIs
yarpmotorgui
- Added an alternative visualization to the tree view on the left of the yarpmotorgui.
It is a Widget visualization with the flow layout. In this way, it is possible to see the
status of all the joints in a single screen.
Bug Fixes
Catch2
- Imported
Catch v2.13.8
(#2795). This fixes building the unit tests on some configurations.
CMake
- fixed compatibility with
CMake 3.23.1
on macOS.
GUIs
yarpmotorgui
- The target box for the joints sliders now lands where expected (#2824).
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.6.0..v3.7.0
):
41 Marco Randazzo <[email protected]>
20 Stefano Dafarra <[email protected]>
14 Daniele E. Domenichelli <[email protected]>
13 Silvio Traversaro <[email protected]>
10 Simone Girardi <[email protected]>
2 Ugo Pattacini <[email protected]>
1 Ettore Landini <[email protected]>
1 Matteo Brunettini <[email protected]>
1 Simone <[email protected]>
1 robotology-bot (Tag Repository Action) <[email protected]>
YARP 3.6.0
YARP 3.6.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Important Changes
Dependencies
- SWIG 4 or later is now required to build YARP bindings
- CMake 3.16 or later is now required
- A compiler that supports C++17 is now required
Deprecation and Behaviour Changes
Devices
- Deprecation of the devices replaced by NWS/NWC was postponed to the next
release. - The following devices will be replaced by NWS/NWC in the next release, and
print a warning when opened:localization2DClient
(replaced bylocalization2D_nwc_yarp
)map2DClient
(replaced bymap2D_nwc_yarp
)navigation2DServer
(replaced bynavigation2D_nws_yarp
)
New Features
Libraries
conf
- The
YARP_VERSION_COMPARE
macro has been added to version.h to simplify how
YARP versions are compared e.g. in#if
guards. For instance, the condition
#if YARP_VERSION_COMPARE(>=, 3, 6, 0)
will yield true if the current YARP
version is equal to or greater than 3.6.0.
os
- Added
CommandBottle
class.
This is a class that contains both the command and the reply.
The only advantage of this class compared to using two bottles is that
portmonitors are able to know, in theupdateReply
method, what was the
request for the reply received.
Log
- In addition to the previously supported
std::vector
, it is now also possible
to callyInfo() << collection
where the collection is astd::array
,
std::list
,std::set
,std::map
, C-array,std::tuple
... - Added the new family of logging macros with "Id" (
yIDebug
).
See [documentation](
ef yarp_logging). - The
YARP_LOG_PROCESS_LABEL
environment variable is now checked when output
is forwarded. If found, the label is appended to the executable name in the
log port name e.g. (/log/hostname/yarpdev[mylabel]/123123
)
ConnectionWriter
- Replaced
getBuffer
with const/non-const versions
ConnectionReader
flushWriter
is now an interface method.
idl/WireReader
- Added
getReader()
method.
idl/WireWriter
- Flush the connection when the object is destroyed.
sig
- Added new method
yarp::sig::soundfilters::resample()
contained in the new
header fileyarp/sig/SoundFilters.h
.
dev
- Added new interfaces:
yarp::dev::IJointFault
.yarp::dev::Nav2D::IOdometry2D
.
DeviceDriver
- Added
id()
andsetId()
methods
PolyDriver
- The device id can be set passing the
id
option to theopen
method (or
passing--id
toyarpdev
).
Nav2D::INavigation2DVelocityActions
applyVelocityCommand()
method was moved from
yarp::dev::Nav2D::INavigation2DTargetActions
to a new interface
yarp::dev::Nav2D::INavigation2DVelocityActions
.
Nav2D::MapGrid2D
- Added internal lossless compression for datatype
yarp::dev::Nav2D::MapGrid2D
using Zlib: the methods
yarp::os::Portable::write()
andyarp::os::Portable::read()
handle the
compression before sending data to the network.
The methodMapGrid2D::enable_map_compression_over_network()
enables/disables
the data compression over the network (default true).
If the Zlib library is not available, compression will be disabled.
Nav2D::Map2DArea
- Added new method
Map2DArea::getCentroid()
. - Added new
description
field which can now be filled by the user for generic
purposes.
Nav2D::Map2DLocation
- Added new
description
field which can now be filled by the user for generic
purposes.
Nav2D::Map2DPath
- Added new
description
field which can now be filled by the user for generic
purposes.
Nav2D::IMap2D
- Added the following methods:
getAllLocations(std::vector<yarp::dev::Nav2D::Map2DLocation>& locations)
getAllAreas(std::vector<yarp::dev::Nav2D::Map2DArea>& areas)
getAllPaths(std::vector<yarp::dev::Nav2D::Map2DPath>& paths)
Nav2D::INavigation2D
INavigation2D
interface now derives fromIMap2D
interface
Devices
-
Most of the clients/nwcs now implement the option
carrier
to set the carrier
for the connection with the server. -
Added the following new EXPERIMENTAL devices:
rpLidar3
that supports the 3rd revision of the rpLidar hardware.fakeOdometry
that generates a fake odometry and makes it available from
IOdometry2D
interface.fakePositionSensor
that simulate a position sensor and makes it available
through theIPositionSensors
andIOrientationSensors
interfaces.
-
Added more EXPERIMENTAL devices in order to implement the Network Wrapper
Server/Client Architecture described in
ef nws_and_nwc_architecture.
These devices do not implement internal logic, therefore they might need to be
used together with a different device.
This architecture and all these devices are to be considered experimental,
and may be modified/renamed/removed at any time without any notice.localization2D_nwc_yarp
: YARP NWS which connects to
localization2D_nws_yarp
: and can be used to replacelocalization2DClient
map2D_nwc_yarp
YARP NWS which connects tomap2D_nws_yarp
and can be used
to replacemap2DClient
mobileBaseVelocityControl_nws_yarp
: YARP NWS to control the velocity of a
mobile base.mobileBaseVelocityControl_nwc_yarp
: YARP NWC to control the velocity of a
mobile base.mobileBaseVelocityControl_nws_ros
: ROS NWS to control the velocity of a
mobile base.navigation2D_nws_yarp
: YARP NWS that can be used to replace
navigation2DServer
.navigation2D_nwc_yarp
: YARP NWC that connects tomap2D_nws_yarp
,
localization2D_nws_yarp
andnavigation2D_nws_yarp
.odometry2D_nws_yarp
: YARP NWS which can be attached to aIOdometry2D
interface and publish the data on a YARP port.odometry2D_nws_ros
: ROS NWS which can be attached to aIOdometry2D
interface and publish the data on a ROS topic.
fakeLaser
- Can now be connected to
localization2D_nwc_yarp
instead of
localization2DClient
frameTransformServer
- Added the option to use an extern xml file (by providing its absolute path).
frameTransformClient
- Added the option to use an extern xml file (by providing its absolute path).
- Added optional parameter
FrameTransform_verbose_debug
frameTransformStorage
- Extra debug information is now printed when parameter
FrameTransform_verbose_debug
is set to 1. - All xml files now expose the parameter
FrameTransform_verbose_debug
(default = 0)
frameTransformContainer
- Extra debug information is now printed when parameter
FrameTransform_verbose_debug
is set to 1. - All xml files now expose the parameter
FrameTransform_verbose_debug
(default = 0)
map2DStorage
- The new
v3
file format, which includes the description forMap2DLocation
,
Map2DArea
andMap2DPath
is now supported.
map2DServer
- Added rpc command
enable_maps_compression <0/1>
remote_controlboard
- The
IJointFault
device is now implemented by the device.
controlBoard_nws_yarp
- The
IJointFault
device is now implemented by the device.
controlboardremapper
- The
IJointFault
device is now implemented by the device.
fakeMotionControl
- A hardware fault is now simulated when a TorqueCommand > 1Nm is received.
portaudio
- 'id' parameter was renamed to 'dev_id'.
portaudioPlayer
- 'id' parameter was renamed to 'dev_id'.
portaudioRecorder
- 'id' parameter was renamed to 'dev_id'.
Port Monitors
- Added
bottle_compression_zlib
portmonitor to compress bottles (or other
data types which can be converted to bottle). - Added
soundfilter_resample
portmonitor to resample audio streams. - Added
sensorMeasurements_to_vector
portmonitor which converts a 6D Pose from
aSensorStreamingData
data type to ayarp::sig::Vector
data type.
Tools
yarp
- Added option
testdata_filename
to latency-test companion.
It allows to load a file which will be transmitted over the network as
benchmark.
Different files can be used to test latency when using a compression
portmonitor (the compression factor will depend on the entropy of the file).
yarprun
- If the environment variable
YARP_LOG_PROCESS_LABEL
is found, the label is
now appended to the executable name in the log port name
(e.g./log/yaprunname/yarpdev[mylabel]/123123
)
robotinterface
- Added
--dryrun
option to test the xml file without actually opening devices. - Added
reverse-shutdown-action-order
attribute for therobot
tag.
This reverses the order of actions in shutdown and interrupt phase, making it
easier to write the actions when multiple attach and detach are involved. - All
device
tag parameters are now passed to all devices defined inside that
tag. - Added the
YARP_PORTNUMBER<XXX>
environment variable.
This allows to change the port number on which the corresponding port is
opened by setting theYARP_PORTNUMBER<XXX>
environment variable to the
desired port number of the port.
For example:YARP_PORTNUMBER_read=20050 yarp read /read
will open a port
named/read
on the20050
port.
Port numbers (if present) are applied before prefixes specified with
YARP_PORT_PREFIX
and renames specified withYARP_RENAME
(if present).
WARNING, if the same port is opened with the same name but different port
number by two pr...
YARP 3.5.1
YARP 3.5.1 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
New Features
Libraries
math
- added method
yarp::math::Quaternion::isValid()
- added method
yarp::math::FrameTransform::isValid()
Build System
- Fixed infinite loop when using yarp_add_idl and yarp_idl_to_dir without
searching theidl_tools
component. - Fixed build on Ubuntu Bionic when both PCL and OpenNI are enabled
Libraries
os
Log
- Fixed custom log components not forwarding the log properly when running under
yarprun
.
ResourceFinder
- Fixed folder creation in
getHomeContextPath
andgetHomeRobotPath
.
idl::WireReader
- Fixed reading empty string as latest argument.
dev
-
Fixed parsing of parameters
hw_gain
andsw_gain
in the two classes
AudioPlayerDeviceBase
andAudioRecorderDeviceBase
-
Fixed issue with case insensitive file systems.
-
Added methods
startStorageThread()
andstopStorageThread()
to interface
yarp::dev::IFrameTransformStorageUtils
robotinterface
- Fixed
extern-name
for non-string parameters.
run
- Fixed handling of multiple environment variables with
yarprun
on win32
Devices
audioFromFileDevice
- Fixed module when channels are > 1
controlBoard_nws_yarp
- Fixed segmentation fault if the device to which the nws attempts to attach was
not successfully opened.
controlBoard_nws_ros
/joint_states
is no longer appended to the topic name.
controlboardremapper
- Fixed segmentation fault.
ffmpeg_grabber
- Fixed symbol lookup runtime error.
ffmpeg_writer
- Fixed symbol lookup runtime error.
frameGrabber_nws_ros
- The
frame_id
parameter is no longer required to start with/
.
frameTransformClient
- Fixed concurrent access to the internal container.
- Timestamp is now set also for static_transforms
- Updated xml files according to the changes to the subdevices.
frameTransformServer
- Updated xml files according to the changes to the subdevices.
frameTransformGet_nwc_yarp
- Fixed missing callback initialization. Without it, no data was collected from
the streaming port.
frameTransformSetMultiplexer
- fixed race condition issue in
deleteTransform()
method.
frameTransformStorage
- Fixed race condition issue: added extra mutex to protect the periodicThread
from set/get/delete operations - the periodic thread can be now stopped/started on request by
methodsIFrameTransformStorageUtils::stopStorageThread
and
IFrameTransformStorageUtils::startStorageThread
. - Fixed
start
method not called after successfully attaching to a
yarp::dev::IFrameTransformStorageGet
interface.
The device is now able to update itsFrameTransformContainer
storage by
querying the device it was attached to. - Fixed attach function that did not performed the view on the
iFrameTransformStorageGet
interface and did not returntrue
when
successful.
frameTransformContainer
- Added new iterator class. It iterates only on valid transforms.
- when a transform is deleted, it is marked as invalid. The transform is then
removed during the next iteration of thecheckAndRemoveExpired()
. - Fixed bug in
frameTransformContainer
which was not correctly deleting old
transforms.
frameTransformSet_nwc_yarp
- The device was refactored in order to easily manage ports names.
frameTransformSet_nws_yarp
- The device was refactored in order to easily manage ports names.
frameTransformGet_nwc_yarp
- The device was refactored in order to easily manage ports names.
frameTransformGet_nws_yarp
- The device was refactored in order to easily manage ports names.
frameTransformSet_nwc_ros
- Fixed bug in
frameTransformSet_nwc_ros::publishFrameTransforms
.
frameTransformSet_nws_ros
- Fixed time stamps of the static transforms wrongly set to
yarp::os::Time::now()
.
frameTransformGet_nwc_ros
- Fixed
setStrict
not called for the subscribers ports for the/tf
and
/tf_static
topics, that was causing a loss of frameTransforms.
map2D_nws_yarp
- Fixed typos in
Map2D_nws_yarp::parse_vocab_command
.
opencv_grabber
- Efficiency has been improved as copies are (in most cases) no longer
performed in order to convert from OpenCV frames to YARP image structures. - Options
--flip_x
,--flip_y
and--transpose
are now also available
when reading from file (--movie
).
rgbdSensor_nws_ros
- Fixed bug in
rgbdSensor_nws::open
. The period was still in milliseconds.
transformClient
- Fixed method delete in
transformClient
, now avoiding race conditions during
server/client update via streaming port.
Port Monitors
image_compression_ffmpeg
- Fixed symbol lookup runtime error.
GUIs
yarplogger
- Fixed bug.
yarpmanager
- Port names containing trailing or leading white spaces not targeted as
non-existing
but throwing an error when trying to connect.
Bindings
Python
- Enable compilation of
libYARP_math
in the Python wheels
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.5.0..v3.5.1
):
26 Daniele E. Domenichelli <[email protected]>
23 Marco Randazzo <[email protected]>
20 Ettore Landini <[email protected]>
6 Diego Ferigo <[email protected]>
2 Bartek Łukawski <[email protected]>
1 Marco Randazzo <[email protected]>
1 Silvio Traversaro <[email protected]>
1 Stefano Bernagozzi <[email protected]>
1 Ugo Pattacini <[email protected]>
YARP 3.5.0
YARP is a library and toolkit for communication and device interfaces, used on
everything from humanoids to embedded devices.
YARP 3.5.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Important Changes
Dependencies
- YCM 0.13 is now required.
- OpenCV 2 is no longer supported.
- Added optional Zlib dependency.
- Qt 5.4 or later is now requred to build YARP GUIs.
Libraries
sig
Image
- Bottom to top images are no longer flipped when sent through the network. This
means that the image needs to be manually flipped after it is received. - Bottom to top images might cause issues when received by YARP 3.4.5 or
earlier.
Devices
- The
ovrheadset
device driver was moved to
https://github.com/robotology/yarp-device-ovrheadset - The
realsense2
,realsense2withIMU
andrealsense2Tracking
device drivers
were moved to https://github.com/robotology/yarp-device-realsense2 - This release introduces the Network Wrapper Server/Client Architecture
as described in #2441. This architecture enables ROS2 compatibility
which is currently developed in the
yarp-ros2 repository.
Deprecation and Behaviour Changes
- A few default values for the environment variables used by yarp are now
different:- Linux:
YARP_CONFIG_DIRS
defaults to/etc/xdg/yarp
to be compliant with the
XDG Base Directory Specification
- Windows:
YARP_DATA_DIRS
defaults to%%ALLUSERSPROFILE%%\yarp
YARP_CONFIG_DIRS
defaults to%%ALLUSERSPROFILE%%\yarp\config
- Linux:
Libraries
conf
filesystem::path_separator
is deprecated in favour of
environment::path_separator
yarp::conf::environment::getEnvironment
is deprecated in favour of
yarp::conf::environment::get_string
yarp::conf::environment::setEnvironment
is deprecated in favour of
yarp::conf::environment::set_string
yarp::conf::environment::unsetEnvironment
is deprecated in favour of
yarp::conf::environment::unset
- The
YARP_DEPRECATED_API
andYARP_DEPRECATED_API_MSG
defines are now
deprecated in favour ofYARP_DEPRECATED_EXPORT
,YARP_DEPRECATED_IMPORT
,
YARP_DEPRECATED_MSG_EXPORT
, andYARP_DEPRECATED_MSG_IMPORT
.
os
Bottle
BOTTLE_TAG_INT
is deprecated in favour ofBOTTLE_TAG_INT32
BOTTLE_TAG_DOUBLE
is deprecated in favour ofBOTTLE_TAG_FLOAT64
BOTTLE_TAG_VOCAB
is deprecated in favour ofBOTTLE_TAG_VOCAB32
addInt
is deprecated in favour ofaddInt32
addDouble
is deprecated in favour ofaddFloat64
yarp::os::Bottle::addVocab()
is deprecated in favour of
yarp::os::Bottle::addVocab32()
ConnectionReader
expectInt
is deprecated in favour ofexpectInt32
expectDouble
is deprecated in favour ofexpectFloat64
ConnectionWriter
appendInt
is deprecated in favour ofappendInt32
appendDouble
is deprecated in favour ofappendFloat64
LogStream
- The
operator<<
forstd::ostream
andstd::vector
which caused conflicts
with Casadi was removed (#2067).
NetType
toHexString
is deprecated in favour ofyarp::conf::numeric::to_hex_string
toString
is deprecated in favour ofyarp::conf::numeric::to_string
toInt
,toFloat32
andtoFloat64
are deprecated in favour of
yarp::conf::numeric::from_string
ResourceFinder
- Deprecated methods with alternatives in
yarp::conf::dirs
.
The following methods are now deprecated:yarp::os::ResourceFinder::getDataHome()
yarp::os::ResourceFinder::getDataHomeNoCreate()
yarp::os::ResourceFinder::getConfigHome()
yarp::os::ResourceFinder::getConfigHomeNoCreate()
yarp::os::ResourceFinder::getDataDirs()
yarp::os::ResourceFinder::getConfigDirs()
in favour of:yarp::conf::dirs::yarpdatahome()
yarp::conf::dirs::yarpconfighome()
yarp::conf::dirs::yarpdatadirs()
Warnings:- The return value of
yarpdatadirs()
is different
(std::vector<std::string>
instead ofstd::string
). - The
yarpdatahome()
andyarpconfighome()
do not create the directory,
it must be created manually (for example withyarp::os::mkdir_p()
) if
required.
Stamp
- Using
Header
instead ofStamp
is now recommended.
Value
isInt()
is deprecated in favour ofisInt32()
isDouble()
is deprecated in favour ofisFloat64()
asInt()
is deprecated in favour ofasInt32()
asDouble()
is deprecated in favour ofasFloat64()
makeInt()
is deprecated in favour ofmakeInt32()
makeDouble()
is deprecated in favour ofmakeFloat64()
isVocab()
is deprecated in favour ofisVocab32()
asVocab()
is deprecated in favour ofasVocab32()
makeVocab()
is deprecated in favour ofmakeVocab32()
Vocab
yarp::os::createVocab()
is deprecated in favour of
yarp::os::createVocab32()
yarp::os::Vocab::encode()
is deprecated in favour of
yarp::os::Vocab32::encode()
yarp::os::Vocab::decode()
is deprecated in favour of
yarp::os::Vocab32::decode()
WireReader
getIsVocab()
is deprecated in favour ofgetIsVocab32()
readVocab()
is now deprecated in favour ofreadVocab32()
WireWriter
writeVocab()
is now deprecated in favour ofwriteVocab32()
sig
IntrinsicParams
YARP_PLUM_BOB
is deprecated in favour ofYARP_PLUMB_BOB
.
dev
- The
yarp/dev/FrameGrabberControl2.h
header file was properly marked as
deprecated (it should have been deprecated in YARP 3.0) - The
yarp/dev/FrameGrabberInterfaces.h
header file was deprecated.
All interfaces were moved in the corresponding header. - All classes and vocabs moved in
framegrabber_protocol
library were removed.
This is an API break, but nobody should be using these outside of YARP. - The flag
VOCAB_NAV_CLEAR_X
, defined in fileILocalization2D.h
has been
renamed toVOCAB_NAV_CLEARALL_X
to avoid confusion with flag
VOCAB_NAV_DELETE_X
.
VOCAB_NAV_CLEARALL_X
clears all data belonging to the same category (all
maps, all locations, all areas, etc), whileVOCAB_NAV_DELETE_X
, deletes a
single entity (a map with name x, a location with name x etc). - The
IVisualParams.h
file was deprecated in favour ofIRgbVisualParams.h
andIDepthVisualParams
. - All headers for the deprecated interfaces are now properly deprecated.
- The interfaces
IFrameGrabber
andIFrameGrabberRgb
are now deprecated.
IDepthVisualParams
- The
retificationMatrix
parameter was renamedrectificationMatrix
IRgbVisualParams
- The
retificationMatrix
parameter was renamedrectificationMatrix
robotinterface
- The
robotinterface
library is no longer considered experimental, all
files in theexperimental
folder and classes in theexperimental
namespace
are now deprecated and will be removed in the next release.
Port Monitors
- Port monitors were reorganized and renamed without keeping the back
compatibility with the old name.
The new names are:depthimage_compression_zfp
(zfp
)depthimage_to_mono
(depthimage
)depthimage_to_rgb
(depthimage2
)segmentationimage_to_rgb
(segmentationimage
)
Devices
-
The following devices are now deprecated:
test_grabber
in favour offakeFrameGrabber
fakeMotor
in favour offakeMotionControl
test_motor
in favour offakeMotionControl
fakebot
-
The following devices will be replaced by NWS/NWC in the next release, and
print a warning when opened:controlboardwrapper2
(replaced bycontrolboardremapper
+controlBoard_nws_yarp
)RGBDSensorWrapper
(replaced byrgbdSensor_nws_yarp
)Rangefinder2DWrapper
(replaced byrangefinder2D_nws_yarp
)grabberDual
(replaced byframeGrabber_nws_yarp
, and eventuallyframeGrabberCropper
)inertial
(replaced bymultipleanalogsensorsremapper
+multipleanalogsensorsserver
+IMURosPublisher
)localization2DServer
(replaced bylocalization2D_nws_yarp
)map2DServer
(replaced bymap2D_nws_yarp
)transformClient
(replaced byframeTransformClient
)transformServer
(replaced byframeTransformServer
)
New Features
Libraries
conf
- Added the following functions in
<yarp/conf/numeric.h>
:yarp::conf::numeric::from_string
yarp::conf::numeric::to_string
yarp::conf::numeric::to_hex_string
- Added the header
<yarp/conf/string.h>
containing the following functions:yarp::conf::string::split
yarp::conf::string::join
- Added
environment::path_separator
- Added the following functions in
<yarp/conf/environment.h>
:yarp::conf::environment::get_string
yarp::conf::environment::set_string
yarp::conf::environment::get_bool
yarp::conf::environment::set_bool
yarp::conf::environment::get_numeric
yarp::conf::environment::set_numeric
yarp::conf::environment::split_path
yarp::conf::environment::join_path
yarp::conf::environment::get_path
yarp::conf::environment::set_path
yarp::conf::environment::unset
yarp::conf::environment::is_set
- Added the new
dirs.h
file with methods to retrieve the important folders - Added the following methods:
std::string yarp::conf::dirs::home()
std::string yarp::conf::dirs::tempdir()
...
YARP 3.4.6
YARP 3.4.6 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found here.
Bug Fixes
Build System
- The
yarpros
tool is no longer compiled whenYARP_COMPILE_EXECUTABLES
is disabled. (#2598)
Libraries
sig
Image
- Fixed compatibility with images with topIsLow==false sent by YARP 3.5 (#2612).
dev
DeviceResponder
GUIs
yarpview
- Fixed upside down image when topIsLow is false (Qt >= 5.3.2 only) (#2612).
Devices
localization2DClient
- Implemented missing method
getEstimatedOdometry()
.
navigation2DClient
- Implemented missing method
getEstimatedOdometry()
,
localization2DServer
- Implemented RPC.
Contributors
This is a list of people that contributed to this release (generated from the git history using git shortlog -ens --no-merges v3.4.5..v3.4.6
):
15 Daniele E. Domenichelli <[email protected]>
2 Marco Randazzo <[email protected]>
1 Silvio Traversaro <[email protected]>