Releases: robotology/yarp
YARP 3.10.1
YARP 3.10.1 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Fixes
bindings
- Fixed regression bug in yarp.i: the file swig_python_windows_preable.i is no more included when a downstream
project (like icub-main) includes the file in its own .i swig binding file. See #3148
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.10.0..v3.10.1
):
2 Silvio Traversaro <[email protected]>
2 robotology-bot (Tag Repository Action) <[email protected]>
1 Marco Randazzo <[email protected]>
YARP 3.10.0
YARP 3.10.0 Release Notes
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Major Behaviour Changes
- ROS1 support removed from github repo https://github.com/robotology/yarp and moved to legacy repo https://github.com/robotology/yarp-ros
- Removed support for CMake 3.16/3.17. CMake minimum version is now 3.19
Deprecations and removals
- Removed
xmlrpc
andtcpros
carriers. - Removed
yarpidl_rosmsg
. - Removed library
libYARP_wire_rep_utils
. - Removed
extern/md5
- Removed
extern/ros
messages and examples. - The syntax yarpdev --device xxx --subdevice yyy has been deprecated. See discussion: #3078
Fixes
- Configuration files installed by the
yarp_configure_plugins_installation
CMake macro are now relocatable (#2445, ). - Improved
ffmpeg
port monitor to allow using different couples of coders/decodes yarpbatterygui
now compatible with battery_nwc_yarp.- Fixed compilation of portmonitor carrier when a custom non-system swig is used
- Fixed compatibility with ffmpeg 7 (#3109).
- Fixed compilation with graphviz 10 (#3115).
- Fix sending empty yarp::sig::Vector when building in Debug (#3123).
New Features
- Added new command line tool
yarpDeviceParamParserGenerator
. See official yarp documentation (cmd_yarpDeviceParamParserGenerator.dox)
Docker
- Added two parameters to yarp
Dockerfile
:base_img
to allow starting from different parent imagesyarp_branch
to set the yarp version the users might need in their image
Carriers
- Removed h264 Carrier
- Added gstreamer carrier with extended functionalities.
- Added new gstreamers plugins: yarpvideosource, yarpvidepassthrough, yarpvideosink
- Fixed segfault on disconnection with shmem carrier.
Devices
- Most yarp devices now use yarpDeviceParamParserGenerator to generate parameters documentation.
controlboardremapper
- Aligned to
controlBoard_nws_yarp
in terms of required interfaces. See #3095.
deviceBundler
- Added new device
deviceBundler
which can be useful to open two devices and attach them while using a single yarpdev command line.
See #3078
llmDevice
- Added LLM_Message data type to propagate LLM answers
- Added refreshConversation feature in the interface to allow users to restart the conversation mantaining the same prompt.
Navigation2D
- Added followPath functionality
- Added paths as possible arguments in gotoLocation in Navigation2D_nwc
Rangefinder2DTransformer
- Removed deprecated device Rangerfinder2DClient
- Added device Rangerfinder2DTransformer, with similar functionalities to Rangerfinder2DClient.
Rangefinder2D_nwc_yarp, Rangefinder2D_nws_yarp
- Network protocol now uses IDL thrift
ffmpeg_grabber
- Deprecated device
ffmpeg_writer
- Deprecated device
portaudio
- Portaudio device, previously marked as deprecated, has been definitely removed from devices' CMakeLists.txt
FakePythonSpeechTranscription
- Added new device
FakePythonSpeechTranscription
. The device is also an example which demonstrates the encapsulation of python code inside a c++ device implementing a Yarp interface.
multipleanalogsensorsclient
- Always establish the
rpc
connection with thetcp
carrier, instead of using thecarrier
option as done in YARP <= 3.9 .
GUIs
yarpopencvdisplay
- added new executable
yarpopencvdisplay
. Similarly to yarpview, it's a basic window to display video streams. It also allows to save to .avi files.
Libraries
lib_yarp_dev
Drivers.cpp
If the user requests for a not existing plugin, the system now prints a message suggesting devices with similar names- The following data types have been migrated from
yarp_dev
toyarp_sig
library:AudioPlayerStatus, AudioRecorderStatus, AudioBufferSize, AudioBufferSizeData, LaserMeasurementData, LaserScan2D
.
lib_yarp_sig
- Improvements to serialization class
yarp::sig::Sound
(breaking change) - yarp_sig can now use IDL thrift to generate custom data types.
- The following data types have been migrated from
yarp_dev
toyarp_sig
library:AudioPlayerStatus, AudioRecorderStatus, AudioBufferSize, AudioBufferSizeData, LaserMeasurementData, LaserScan2D
.
Bindings
Python
- Fix loading of Python bindings on Windows when installed in arbitrary directory.
Contributors
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.9.0..v3.10.0
):
146 Marco Randazzo <[email protected]>
24 Silvio Traversaro <[email protected]>
12 Nicolò Genesio <[email protected]>
10 Stefano Dafarra <[email protected]>
7 fbrand-new <[email protected]>
3 robotology-bot (Tag Repository Action) <[email protected]>
2 Ettore Landini <[email protected]>
1 Alessandro Croci <[email protected]>
1 Alessandro Croci <[email protected]>
1 Bartek Łukawski <[email protected]>
1 Bartek Łukawski <[email protected]>
1 Giovanni Fregonese <[email protected]>
1 elisabeth-ms <[email protected]>
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]>