Skip to content

Releases: robotology/yarp

YARP 3.10.1

26 Nov 17:51
Compare
Choose a tag to compare

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 <silvio.traversaro@iit.it>
     2	robotology-bot (Tag Repository Action) <robotology@iit.it>
     1	Marco Randazzo <marco.randazzo@iit.it>

YARP 3.10.0

13 Nov 08:59
Compare
Choose a tag to compare

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

Deprecations and removals

  • Removed xmlrpc and tcpros 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 images
    • yarp_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 the tcp carrier, instead of using the carrier 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 to yarp_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 to yarp_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 <marco.randazzo@iit.it>
    24	Silvio Traversaro <silvio.traversaro@iit.it>
    12	Nicolò Genesio <nicolo.genesio@iit.it>
    10	Stefano Dafarra <stefano.dafarra@iit.it>
     7	fbrand-new <francesco.brand@iit.it>
     3	robotology-bot (Tag Repository Action) <robotology@iit.it>
     2	Ettore Landini <ettore.landini@iit.it>
     1	Alessandro Croci <57228872+xela-95@users.noreply.github.com>
     1	Alessandro Croci <alessandro.croci@iit.it>
     1	Bartek Łukawski <PeterBowman@users.noreply.github.com>
     1	Bartek Łukawski <bwmn.peter@gmail.com>
     1	Giovanni Fregonese <giotherobot@gmail.com>
     1	elisabeth-ms <emenende@ing.uc3m.es>

YARP 3.9.0

24 Nov 10:56
Compare
Choose a tag to compare

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 to std::chrono::system_clock instead of std::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) of yarp::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 and frameTransformServer configuration files. The extern-name for this parameter is:
    ftc_storage_timeout for frameTransformClient files; fts_storage_timeout for frameTransformServer files

chatBot

  • Added nwc device chatBot_nwc_yarp for the IChatBot interface and the corresponding test
  • Added nws device chatBot_nws_yarp
  • Added fake device fakeChatBotDevice

speechSynthesizer

  • Added nwc device speechSynthesizer_nwc_yarp for the ISpeechSynthesizer interface and the corresponding test
  • Added nws device speechSynthesizer_nws_yarp
  • Added fake device fakeSpeechSynthesizer

speechTranscription

  • Added nwc device speechTranscription_nwc_yarp for the ISpeechTranscription 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 <marco.randazzo@iit.it>
    37	Ettore Landini <ettore.landini@iit.it>
    14	Nicolò Genesio <nicolo.genesio@iit.it>
    14	fbrand-new <francesco.brand@iit.it>
     7	Silvio Traversaro <silvio.traversaro@iit.it>
     6	Arren Glover <arren.glover@iit.it>
     4	robotology-bot (Tag Repository Action) <robotology@iit.it>
     3	Bartek Łukawski <bwmn.peter@gmail.com>
     2	Davide <davidegorbani@gmail.com>
     2	Ugo Pattacini <ugo.pattacini@iit.it>
     1	Davide Gorbani <101326942+davidegorbani@users.noreply.github.com>
     1	Marco Randazzo <marco.randazzo@.iit.it>
     1	Simone <simone.girardi@iit.it>
     1	Simone Girardi <simone.girardi@iit.it>
     1	Stefano Dafarra <stefano.dafarra@iit.it>

YARP 3.8.1

05 Jun 13:19
Compare
Choose a tag to compare

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 <marco.randazzo@iit.it>
     5	Silvio Traversaro <silvio.traversaro@iit.it>
     2	Nicolò Genesio <nicolo.genesio@iit.it>
     2	robotology-bot (Tag Repository Action) <robotology@iit.it>
     1	Bartek Łukawski <bwmn.peter@gmail.com>
     1	Ugo Pattacini <ugo.pattacini@iit.it>
     1	fbrand-new <francesco.brand@iit.it>

YARP 3.8.0

06 Mar 10:45
Compare
Choose a tag to compare

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 use yarprobotinterface instead.
  • Class DriverLinkCreator, used only by device group, 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 of yarp::sig::VectorOf<T>.

lib_yarp_dev

  • Added method bool getAxes(int* ax) to yarp::dev::IAxisInfo interface.

bindings

  • yarp bindings: Added corresponding getAxes() method to IAxisInfo interface + python example.

libYARP_dev_tests

  • A new library yarp_dev_tests: is now exported.
    It contains common sources to test Yarp device through lib_yarpdev (also outside yarp repo)

libYARP_robotinterface

  • Added support to ${portprefix} variable in parameters (#2819).

Devices

fakeLaserWithMotor

  • added new device fakeLaserWithMotor

rangefinder2D_nwc_yarp

  • added new device rangefinder2D_nwc_yarp (including IRangefinder2D tests)

frameTransformServer + frameTransformClient

  • Now both frameTransformClient and frameTransformServer will search for "test" configurations not relying on an absolute path passed as a parameter but will take advantage of yarp::os::ResourceFinder using a file name and a context 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 to Catch V3.2.1.

sqlite3

  • Migration from sqlite to sqlite3. Fixed issue preventing extern/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 passed yarpview 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 to YCM 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 of yarp::dev::IMultipleWrapper

AudioPlayerWrapper

  • It now inherits from yarp::dev::WrapperSingle instead of yarp::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),
    the controlboardwrapper/yarprobotinterface does not segfaults.

multipleanalogsensorsremapper

  • Add more verbosity when sensor name is not found.

Tools

yarprobotinterface

  • yarprobotinterface: is now able to parse enabled_by and disabled_by xml attributes. See yarprobotinterface Doxygen documentation.

Yarp companion

  • Fixed yarp command write throwing segmentation fault when argc 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 <marco.randazzo@iit.it>
    21	Ettore Landini <ettore.landini@iit.it>
    13	Silvio Traversaro <silvio.traversaro@iit.it>
     6	robotology-bot (Tag Repository Action) <robotology@iit.it>
     5	tumme <davide.tome@iit.it>
     4	Ugo Pattacini <ugo.pattacini@iit.it>
     3	Bartek Łukawski <bwmn.peter@gmail.com>
     3	Nicola Piga <nicola.piga@iit.it>
     3	hypothe <markeagle98@gmail.com>
     1	Marco Gabriele Fedozzi <73471964+hypothe@users.noreply.github.com>
     1	Mattia Fussi <mattia.fussi@iit.it>
     1	fbrand-new <francesco.brand@iit.it>

YARP 3.7.2

30 Jun 19:05
Compare
Choose a tag to compare

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 <marco.randazzo@iit.it>
     3	Nicola Piga <nicola.piga@iit.it>
     2	robotology-bot (Tag Repository Action) <robotology@iit.it>
     1	Bartek Łukawski <bwmn.peter@gmail.com>

YARP 3.7.1

30 Jun 13:00
Compare
Choose a tag to compare

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 <marco.randazzo@iit.it>
     5	Silvio Traversaro <silvio.traversaro@iit.it>
     2	robotology-bot (Tag Repository Action) <robotology@iit.it>
     1	Ettore Landini <ettore.landini@iit.it>
     1	Ugo Pattacini <ugo.pattacini@iit.it>

YARP 3.7.0

25 May 22:50
Compare
Choose a tag to compare

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 command yarp write.

  • added once option to companion command yarp read.

  • Companion commands yarp read and yarp 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 <marco.randazzo@iit.it>
    20	Stefano Dafarra <stefano.dafarra@iit.it>
    14	Daniele E. Domenichelli <daniele.domenichelli@iit.it>
    13	Silvio Traversaro <silvio.traversaro@iit.it>
    10	Simone Girardi <simone.girardi@iit.it>
     2	Ugo Pattacini <ugo.pattacini@iit.it>
     1	Ettore Landini <ettore.landini@iit.it>
     1	Matteo Brunettini <matteo.brunettini@iit.it>
     1	Simone <simone.girardi@iit.it>
     1	robotology-bot (Tag Repository Action) <robotology@iit.it>

YARP 3.6.0

31 Dec 08:29
Compare
Choose a tag to compare

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 by localization2D_nwc_yarp)
    • map2DClient (replaced by map2D_nwc_yarp)
    • navigation2DServer (replaced by navigation2D_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 the updateReply method, what was the
    request for the reply received.
Log
  • In addition to the previously supported std::vector, it is now also possible
    to call yInfo() << collection where the collection is a std::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 file yarp/sig/SoundFilters.h.

dev

  • Added new interfaces:
    • yarp::dev::IJointFault.
    • yarp::dev::Nav2D::IOdometry2D.
DeviceDriver
  • Added id() and setId() methods
PolyDriver
  • The device id can be set passing the id option to the open method (or
    passing --id to yarpdev).
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() and yarp::os::Portable::read() handle the
    compression before sending data to the network.
    The method MapGrid2D::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 from IMap2D 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 the IPositionSensors and IOrientationSensors 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 replace localization2DClient
    • map2D_nwc_yarp YARP NWS which connects to map2D_nws_yarp and can be used
      to replace map2DClient
    • 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 to map2D_nws_yarp,
      localization2D_nws_yarp and navigation2D_nws_yarp.
    • odometry2D_nws_yarp: YARP NWS which can be attached to a IOdometry2D
      interface and publish the data on a YARP port.
    • odometry2D_nws_ros: ROS NWS which can be attached to a IOdometry2D
      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 for Map2DLocation,
    Map2DArea and Map2DPath 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
    a SensorStreamingData data type to a yarp::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 the robot 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 the YARP_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 the 20050 port.
    Port numbers (if present) are applied before prefixes specified with
    YARP_PORT_PREFIX and renames specified with YARP_RENAME (if present).
    WARNING, if the same port is opened with the same name but different port
    number by two pr...
Read more

YARP 3.5.1

10 Nov 16:01
Compare
Choose a tag to compare

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 the idl_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 and getHomeRobotPath.
idl::WireReader
  • Fixed reading empty string as latest argument.

dev

  • Fixed parsing of parameters hw_gain and sw_gain in the two classes
    AudioPlayerDeviceBase and AudioRecorderDeviceBase

  • Fixed issue with case insensitive file systems.

  • Added methods startStorageThread() and stopStorageThread() 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
    methods IFrameTransformStorageUtils::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 its FrameTransformContainer 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 return true 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 the checkAndRemoveExpired().
  • 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 <daniele.domenichelli@iit.it>
    23	Marco Randazzo <marco.randazzo@iit.it>
    20	Ettore Landini <ettore.landini@iit.it>
     6	Diego Ferigo <diego.ferigo@iit.it>
     2	Bartek Łukawski <bwmn.peter@gmail.com>
     1	Marco Randazzo <marco.randaz@iit.it>
     1	Silvio Traversaro <silvio.traversaro@iit.it>
     1	Stefano Bernagozzi <stefano.bernagozzi@iit.it>
     1	Ugo Pattacini <ugo.pattacini@iit.it>