Skip to content

Releases: robotology/yarp

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 <[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

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 <[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

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 <[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

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 <[email protected]>
     3	Nicola Piga <[email protected]>
     2	robotology-bot (Tag Repository Action) <[email protected]>
     1	Bartek Łukawski <[email protected]>

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 <[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

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 <[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

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 <[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

15 Jul 08:34
Compare
Choose a tag to compare

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

Deprecation and Behaviour Changes

  • A few default values for the environment variables used by yarp are now
    different:
    • Linux:
    • Windows:
      • YARP_DATA_DIRS defaults to %%ALLUSERSPROFILE%%\yarp
      • YARP_CONFIG_DIRS defaults to %%ALLUSERSPROFILE%%\yarp\config

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 and YARP_DEPRECATED_API_MSG defines are now
    deprecated in favour of YARP_DEPRECATED_EXPORT, YARP_DEPRECATED_IMPORT,
    YARP_DEPRECATED_MSG_EXPORT, and YARP_DEPRECATED_MSG_IMPORT.

os

Bottle
  • BOTTLE_TAG_INT is deprecated in favour of BOTTLE_TAG_INT32
  • BOTTLE_TAG_DOUBLE is deprecated in favour of BOTTLE_TAG_FLOAT64
  • BOTTLE_TAG_VOCAB is deprecated in favour of BOTTLE_TAG_VOCAB32
  • addInt is deprecated in favour of addInt32
  • addDouble is deprecated in favour of addFloat64
  • yarp::os::Bottle::addVocab() is deprecated in favour of
    yarp::os::Bottle::addVocab32()
ConnectionReader
  • expectInt is deprecated in favour of expectInt32
  • expectDouble is deprecated in favour of expectFloat64
ConnectionWriter
  • appendInt is deprecated in favour of appendInt32
  • appendDouble is deprecated in favour of appendFloat64
LogStream
  • The operator<< for std::ostream and std::vector which caused conflicts
    with Casadi was removed (#2067).
NetType
  • toHexString is deprecated in favour of yarp::conf::numeric::to_hex_string
  • toString is deprecated in favour of yarp::conf::numeric::to_string
  • toInt, toFloat32 and toFloat64 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 of std::string).
    • The yarpdatahome() and yarpconfighome() do not create the directory,
      it must be created manually (for example with yarp::os::mkdir_p()) if
      required.
Stamp
  • Using Header instead of Stamp is now recommended.
Value
  • isInt() is deprecated in favour of isInt32()
  • isDouble() is deprecated in favour of isFloat64()
  • asInt() is deprecated in favour of asInt32()
  • asDouble() is deprecated in favour of asFloat64()
  • makeInt() is deprecated in favour of makeInt32()
  • makeDouble() is deprecated in favour of makeFloat64()
  • isVocab() is deprecated in favour of isVocab32()
  • asVocab() is deprecated in favour of asVocab32()
  • makeVocab() is deprecated in favour of makeVocab32()
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 of getIsVocab32()
  • readVocab() is now deprecated in favour of readVocab32()
WireWriter
  • writeVocab() is now deprecated in favour of writeVocab32()

sig

IntrinsicParams
  • YARP_PLUM_BOB is deprecated in favour of YARP_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 file ILocalization2D.h has been
    renamed to VOCAB_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), while VOCAB_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 of IRgbVisualParams.h
    and IDepthVisualParams.
  • All headers for the deprecated interfaces are now properly deprecated.
  • The interfaces IFrameGrabber and IFrameGrabberRgb are now deprecated.
IDepthVisualParams
  • The retificationMatrix parameter was renamed rectificationMatrix
IRgbVisualParams
  • The retificationMatrix parameter was renamed rectificationMatrix

robotinterface

  • The robotinterface library is no longer considered experimental, all
    files in the experimental folder and classes in the experimental 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 of fakeFrameGrabber
    • fakeMotor in favour of fakeMotionControl
    • test_motor in favour of fakeMotionControl
    • fakebot
  • The following devices will be replaced by NWS/NWC in the next release, and
    print a warning when opened:

    • controlboardwrapper2 (replaced by controlboardremapper + controlBoard_nws_yarp)
    • RGBDSensorWrapper (replaced by rgbdSensor_nws_yarp)
    • Rangefinder2DWrapper (replaced by rangefinder2D_nws_yarp)
    • grabberDual (replaced by frameGrabber_nws_yarp, and eventually frameGrabberCropper)
    • inertial (replaced by multipleanalogsensorsremapper + multipleanalogsensorsserver + IMURosPublisher)
    • localization2DServer (replaced by localization2D_nws_yarp)
    • map2DServer (replaced by map2D_nws_yarp)
    • transformClient (replaced by frameTransformClient)
    • transformServer (replaced by frameTransformServer)

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()
      ...
Read more

YARP 3.4.6

02 Jul 15:35
Compare
Choose a tag to compare

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 when YARP_COMPILE_EXECUTABLES is disabled. (#2598)

Libraries

sig

Image

  • Fixed compatibility with images with topIsLow==false sent by YARP 3.5 (#2612).

dev

DeviceResponder

  • Removed the debug messages flooding (#2630, #2631).

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]>