Skip to content

Releases: robotology/yarp

YARP 3.3.1

17 Jan 13:56
Compare
Choose a tag to compare

YARP 3.3.1 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Important Changes

Dependencies

  • OpenCV 4 is now supported.

Bug Fixes

Libraries

YARP_dev

  • Fixed missing header for deprecation warning macro.

Devices

grabberDual

  • Fixed the double open issue. (#2121)

Tools

yarpdataplayer

  • Fixed the part-port mismatch due to bad sorting. (#2173)
  • Fixed the clock drifting when the player was paused for long time. (#2139)
  • Fixed the rpc request play while it is already running. (#2144)

Bindings

Perl

  • The RPATH for installed perl bindings is now correct.

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.3.0..v3.3.1):

    16	Nicolò Genesio <[email protected]>
     6	Daniele E. Domenichelli <[email protected]>
     1	Bartek Łukawski <[email protected]>

YARP 3.3.0

05 Dec 07:23
Compare
Choose a tag to compare

YARP 3.3.0 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Important Changes

Dependencies

  • CMake 3.12 or later is now required.
  • Optional dependency on YCM now requires version 0.11.0 or later.
  • C++14 is now required.
  • OpenCV 4 is now explicitly unsupported.
  • Visual Studio 2015 is no longer supported.

Build System

  • CMake config files are now installed in lib/cmake also on windows.
  • The OS component is deprecated in favour of os (lowercase).

Libraries

YARP_os

  • The YARP_OS was renamed YARP_os. Using the old name is still supported,
    but deprecated.
  • yAssert is now a proper assertion macro (removed when NDEBUG is defined,
    i.e. `Release builds). If the expression tested has side-effects, program
    behavior will be different depending on whether NDEBUG is defined. This may
    create Heisenbugs which go away when debugging is turned on.
  • All yarp::os::Mutex related classes and methods are now deprecated in favour
    of std::mutex:
    • Classes:
      • yarp::os::Mutex
      • yarp::os::RecursiveMutex
      • yarp::os::AbstractLockGuard
      • yarp::os::LockGuard
      • yarp::os::RecursiveLockGuard
    • Methods:
      • yarp::os::Contactable::setCallbackLock(yarp::os::Mutex*)
      • yarp::os::AbstractContactable::setCallbackLock(yarp::os::Mutex*)
      • yarp::os::Port::setCallbackLock(yarp::os::Mutex*)
      • yarp::os::Buffered::setCallbackLock(yarp::os::Mutex*)
      • yarp::os::Timer::Timer(..., yarp::os::Mutex*)
  • yarp::os::Network::getDirectorySeparator and
    yarp::os::Network::getPathSeparator are now deprecated in favour of
    yarp::conf::filesystem::preferred_separator and
    yarp::conf::filesystem::path_separatorrespectively.
  • yarp::os::Runnable is now deprecated.
  • yarp::os::RateThreadWrapper is now deprecated.
  • The yarp::os::Property constructor using 'hash_size' was deprecated (it was
    already unused since the internal structure was ported to use std::map).
  • yarp::os::MessageStack constructor now accepts the max number of thread as
    size_t instead of int.
  • yarp::os::MessageStack constructor is now explicit.
  • yarp::os::MessageStack copy and move constructors and operators are now
    explicitly deleted.

YARP_dev

  • All devices are now plugins. They are enabled by default, but can be disabled
    if required.
  • The <yarp/dev/GenericSensorInterfaces.h> include file is deprecated in
    favour of <yarp/dev/IGenericSensor.h>.
  • The <yarp/dev/PreciselyTimed.h> include file is deprecated in favour of
    <yarp/dev/IPreciselyTimed.h>.
  • The <yarp/dev/SerialInterfaces.h> include file is deprecated in favour of
    <yarp/dev/ISerialDevice.h>.
  • The <yarp/dev/Wrapper.h> include file is deprecated in favour of
    <yarp/dev/IWrapper.h> and <yarp/dev/IMultipleWrapper.h>.
  • yarp::dev::DataSource and yarp::dev::DataSource2 are now deprecated.
  • yarp::dev::DataWriter and yarp::dev::DataWriter2 are now deprecated

New Features

Build System

  • The yarp_idl_to_dir command now accepts the PLACEMENT option:
    • MERGED: headers and sources in <OUTPUT_DIR>/<namespace>
    • SEPARATE: headers in <OUTPUT_DIR>/include/<namespace> sources in <OUTPUT_DIR>/src/<namespace>
    • SEPARATE_EVEN: alias for SEPARATE
    • SEPARATE_ODD: headers in <OUTPUT_DIR>/include/<namespace> sources in <OUTPUT_DIR>/src
      For backwards compatibility the default value is SEPARATE_ODD.
  • After calling the yarp_add_idl method, the YARP_ADD_IDL_INCLUDE_DIR
    variable contains the include directory for using the header files

Libraries

YARP_conf

  • Added yarp::conf::filesystem utilities (#1855).

YARP_os

  • Cleanup of the signature of the following methods of yarp::os::Network:
    • static bool connect(const std::string& src, const std::string& dest, const ContactStyle& style)
    • static bool connect(const std::string& src, const std::string& dest, const std::string& carrier = "", bool quiet = true)
    • static bool connect(const char* src, const char* dest, const char* carrier, bool quiet = true)
    • static bool disconnect(const std::string& src, const std::string& dest, bool quiet)
    • static bool disconnect(const std::string& src, const std::string& dest, const ContactStyle& style)
    • static bool disconnect(const std::string& src, const std::string& dest, const std::string& carrier = "", bool quiet = true)
    • static bool disconnect(const char* src, const char* dest, const char* carrier, bool quiet = true)
    • static bool isConnected(const std::string& src, const std::string& dest, bool quiet)
    • static bool isConnected(const std::string& src, const std::string& dest, const ContactStyle& style)
    • static bool isConnected(const std::string& src, const std::string& dest, const std::string& carrier = "", bool quiet = true)
    • static bool isConnected(const char* src, const char* dest, const char* carrier, bool quiet = true)
  • Added move constructor and assignment operator to yarp::os::Searchable.
  • Added move constructor and assignment operator to yarp::os::Bottle.
  • Added move constructor and assignment operator to yarp::os::Property.
  • Added constructors that accept std::mutex instead of yarp::os::Mutex to
    yarp::os::Timer.
  • The Log colors can now be enabled also on windows when supported
    (#2076)
  • Added setCallbackLock overrides to yarp::os::Contactable,
    yarp::os::AbstractContactable, yarp::os::Port, yarp::os::BufferedPort
    to pass a std::mutex instead of a yarp::os::Mutex.

YARP_dev

  • Added new interface yarp::dev::IFrameTranformClientControl
  • yarp::dev::TransformClient implements the new interface
    yarp::dev::IFrameTranformClientControl.
  • The rpc port of the yarp::dev::TransformClient allows to reconnect to the
    server.
  • yarp::dev::TransformServer allows the use of wildcard to erase all the
    transforms between a specified source and * or between * and a specified
    destination.
  • The rpc port of the yarp::dev::TransformServer allows to delete a given
    transform.

YARP_run

  • The ENABLE_YARPRUN_LOG fixed and deprecated in favour of
    YARP_ENABLE_YARPRUN_LOG.

Tools

yarpidl_trift

  • yarpidl_thrift now places the source files according to the "separate" layout.

yarpdatadumper

  • Fixed creating directories whose name contains not allowed characters (e.g.
    :, *, ...).
  • It's now possible to dump PNG images.
  • The timestamp info are now provided within info.log.

GUIs

yarpdataplayer

  • info.log files containing timestamp info are now handled.

devices

multipleanalogsensorsclient

  • Added the option externalConnection(false by default). This option disables
    the automatic connect to the rpc:o and measures:o of the respective
    multipleanalogsensorsserver. This implies that with this configuration the
    metadata is missing, then the device lacks of some informations such as the
    sensor name, the frame name etc. On the other hand it allows to
    connect/disconnect the client to the port measures:o of the server after
    being opened, and to work also when the rpc:o port is missing (e.g with the
    yarpdataplayer).

realsense2

  • Deprecated the needAlignment parameter in favour of alignmentFrame.
    The default behaviour has been maintaned, if not specified alignmentFrame
    is RGB. The allowed values are RGB, Depth and None.

mjpeg

  • The MJPEG_AUTOCOMPRESS CMake option is deprecated in favour of
    YARP_MJPEG_AUTOCOMPRESS

mpi

  • The MPI_DEBUG_MSG CMake option is deprecated in favour of
    YARP_MPI_DEBUG_MSG.

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.2.0..v3.3.0):

   332	Daniele E. Domenichelli <[email protected]>
    26	Nicolò Genesio <[email protected]>
     7	Ugo Pattacini <[email protected]>
     5	Vadim Tikhanoff <[email protected]>
     4	Marco Randazzo <[email protected]>
     2	Bartek Łukawski <[email protected]>
     1	Carlotta Sartore <[email protected]>
     1	Giovanni Saponaro <[email protected]>
     1	Giulio Romualdi <[email protected]>
     1	Nicola Piga <[email protected]>
     1	Silvio Traversaro <[email protected]>
     1	Valentina Gaggero <[email protected]>

YARP 3.2.2

29 Nov 14:43
Compare
Choose a tag to compare

YARP 3.2.2 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Bug Fixes

Build System

  • OpenCV 4 is not supported yet, and rejected by the build system.

Devices

ovrheadset

  • Added the hands_relative parameter (#2106)

USBCameraDriverRaw

  • Do not try to build when missing dependencies

Tools

yarpdataplayer

  • Fixed speed control not working

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.2.1..v3.2.2):

     7	Daniele E. Domenichelli <[email protected]>
     3	Vadim Tikhanoff <[email protected]>
     1	Giulio Romualdi <[email protected]>
     1	Marco Randazzo <[email protected]>

YARP 3.2.1

25 Sep 15:55
Compare
Choose a tag to compare

YARP 3.2.1 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Bug Fixes

Carriers

mjpeg

  • Fixed mjpeg carrier using BGR images (#2060, #2061).

Devices

MultipleAnalogSensorsRemapper

  • Fixed getTemperatureSensorMeasure method (#2056, #2058).

Tools

yarpidl_thrift

  • Fixed deserialization for map types (#2054).

yarprun

  • Fixed remote commands execution getting stucks with no answer (#2091).

GUIs

yarpdataplayer

  • Fixed internal virtual timing in the yarpdataplayer as timestamps were not
    consistent (#2049, #2052).

yarpmanager

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.2.0..v3.2.1):

   170	Daniele E. Domenichelli <[email protected]>
     4	Nicolò Genesio <[email protected]>
     2	Vadim Tikhanoff <[email protected]>
     1	Giovanni Saponaro <[email protected]>
     1	Valentina Gaggero <[email protected]>

YARP 3.2.0 (2019-06-27)

27 Jun 08:59
Compare
Choose a tag to compare

YARP 3.2.0 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Important Changes

Dependencies

  • Optional dependency on YCM now requires version 0.10.4 or later.
  • Optional dependency on RobotTestingFramework now requires version 2 or later.
  • Rplidar SDK updated to 1.9.0
  • Thrift updated to 0.12.0
  • QCustomPlot 2 is now supported.
  • Optional dependency on LibOVR now requires version 1.17 or later.

Bindings

  • Removed support for 'Chicken Scheme' and 'Allegro Common Lisp'.
  • Swig 4 is now supported.

Devices

  • The portaudio and the ServerSoundGrabber device drivers are deprecated.

New Features

Build System

  • .ini files for plugins configured with yarp_prepare_plugin can now be
    automatically generated by yarp_add_plugin and installed by passing the
    YARP_INI DESTINATION argument to yarp_install.
  • The CREATE_LIB_MATH CMake option was renamed YARP_COMPILE_libYARP_math.
  • The CREATE_GUIS CMake option was renamed YARP_COMPILE_GUIS.
  • All the CREATE_<UPPERCASE_EXECUTABLE> were renamed
    YARP_COMPILE_<lowercase-executable>
  • All the YARP_USE_<UPPERCASEPACKAGENAME> were renamed
    YARP_USE_<PackageName>
  • All the YARP_USE_SYSTEM_<UPPERCASEPACKAGENAME> were renamed
    YARP_USE_SYSTEM_<PackageName>
  • All the internal CMake variables related to packages now use the same case
    as the relative CMake module (i.e. YARP_HAS_OpenCV instead of
    YARP_HAS_OPENCV)
  • yarp_idl_to_dir signature changed, and now supports passing optional
    parameters:
       yarp_idl_to_dir(INPUT_FILES <file> [file]
                       OUTPUT_DIR <dir>
                       [SOURCES_VAR <var>]
                       [HEADERS_VAR <var>]
                       [INCLUDE_DIRS_VAR <var>]
                       [THRIFT_INCLUDE_PREFIX]
                       [THRIFT_NO_NAMESPACE_PREFIX]
                       [THRIFT_NO_COPYRIGHT}
                       [THRIFT_NO_EDITOR]
                       [THRIFT_NO_DOC]
                       [VERBOSE])
    
    The old behaviour is still supported, but deprecated.
  • yarp_idl_to_dir always regenerates files if they are not available.
  • yarp_idl_to_dir No longer generates build targets.
  • Files returned by yarp_idl_to_dir are now relative to current directory.

Libraries

YARP_conf

  • The yarp/conf/options.h header file is deprecated.

YARP_OS

  • The following methods signatures were changed to accept const char instead
    of int as terminating character:
    • ConnectionReader::expectText()
    • ConnectionWriter::appendString()
    • InputStream::readLine()
  • Added YarpPluginSelector::checkPlugin() static method.
  • ConnectionWriter::appendString() is deprecated in favour of appendText().
  • ConnectionWriter::appendRawString() is deprecated in favour of
    appendString().
  • Added ConnectionReader::expectString().
  • Added the initiliizer_list constructor in yarp::os::Property.
  • Added the initiliizer_list constructor in yarp::os::Bottle.
  • yarp::os::NameSpace: All methods in the interface that take ContactStyle
    as parameter, are now passed by reference instead of by value.
    • - virtual bool connectPortToTopic(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool connectPortToTopic(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;
    • - virtual bool connectTopicToPort(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool connectTopicToPort(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;
    • - virtual bool disconnectPortFromTopic(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool disconnectPortFromTopic(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;
    • - virtual bool disconnectTopicFromPort(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool disconnectTopicFromPort(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;
    • - virtual bool connectPortToPortPersistently(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool connectPortToPortPersistently(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;
    • - virtual bool disconnectPortToPortPersistently(const Contact& src, const Contact& dest, ContactStyle style) = 0;
      + virtual bool disconnectPortToPortPersistently(const Contact& src, const Contact& dest, const ContactStyle& style) = 0;

YARP_sig

  • Added ImageUtils.h, an header containing the following image utilities:

    • utils::vertSplit
    • utils::horzSplit
    • utils::vertConcat
    • utils::horzConcat
  • yarp::sig::file Added support to write .png files

  • Added the following methods to VectorOf:

    • VectorOf(std::initializer_list)
    • begin(), end(), cbegin(), cend()
    • reserve(size_t)
    • capacity()
    • push_back(T&&)
    • emplace_back(_Args...)
  • Deprecated VectorOf::getFirst() in favour of data() and begin().
    Use either data() if you need the pointer to the first element, or begin()
    if you need the iterator.

  • Added yarp::sig::IntrinsicParams and yarp::sig::YarpDistortion emum.

  • Added two methods for computing a yarp::sig::PointCloud from depth images:

    • utils::depthToPC
    • utils::depthRgbToPC
  • Deprecated getIplImage and wrapIplImage in favour of the new utilities of
    YARP_cv.

  • Added move semantics in yarp::sig::Image.

  • The yarp::sig::Sound class was heavily refactored:

    • New data types:
      • Sound::audio_sample (short int)
    • Changed signatures:
      • - Sound(int bytesPerSample)
        + Sound(size_t bytesPerSample)
      • - int get(size_t sample, size_t channel) const
        + audio_sample get(size_t sample, size_t channel) const
      • - void set(int value, size_t sample, size_t channel)
        + void set(audio_sample value, size_t sample, size_t channel)
      • - void setSafe(int value, size_t sample, size_t channel)
        + void setSafe(audio_sample value, size_t sample, size_t channel)
      • - size_t getFrequency() const
        + int getFrequency() const
      • - void setFrequency(size_t freq)
        + void setFrequency(int freq)
    • Removed methods:
      • unsigned char *getRawData() const
      • size_t getRawDataSize() const
    • Added methods:
      • bool operator==(const Sound& alt) const
      • bool clearChannel(size_t channel)
      • Sound extractChannelAsSound(size_t channel_id) const
      • std::vector<std::reference_wrapper<audio_sample>> getChannel(size_t channel_id)
      • bool replaceChannel(size_t id, Sound channel)
      • std::vector<std::reference_wrapper<audio_sample>> getInterleavedAudioRawData() const
      • std::vector<std::reference_wrapper<audio_sample>> getNonInterleavedAudioRawData() const
      • std::string toString() const
      • double getDuration() const

YARP_dev

  • yarp::dev::IMap2D::clear() method renamed to
    yarp::dev::IMap2D::clearAllMaps().
  • yarp::dev::INavigation2D derives from INavigation2DControlActions
    and INavigation2DTargetActions.
  • yarp::dev::INavigation2DControlActions. The following methods have been
    added:
    getAllNavigationWaypoints(std::vector<yarp::dev::Map2DLocation>& waypoints)
    getCurrentNavigationWaypoint(yarp::dev::Map2DLocation& curr_waypoint)
    getCurrentNavigationMap(yarp::dev::NavigationMapTypeEnum map_type, yarp::dev::MapGrid2D& map)
  • yarp::dev::INavigation2DTargetActions. The following method has been added:
    gotoTargetByRelativeLocation(double x, double y)
  • The following method now accepts a parameter (with default value = infinite
    for backward compatibility):
    yarp::dev::INavigation2DTargetActions::suspendNavigation(const double time_s = std::numeric_limits<double>::infinity())
  • yarp::dev::ILocalization2D added the new two following methods:
    • bool getLocalizationStatus(LocalizationStatusEnum& status)
    • bool getEstimatedPoses(std::vector<yarp::dev::Map2DLocation>& poses)
  • yarp::dev::ILocalization2D added the new type: LocalizationStatusEnum
  • yarp::dev::IBattery::getBatteryStatus() now uses Battery_status enum,
    instead of int.
  • yarp::dev::INavigation2D. Added method
    yarp::dev::INavigation2DControlActions::recomputeCurrentNavigationPath().
  • yarp::dev::INavigation2D. Added helper static methods:
    • yarp::dev::INavigation2DHelpers::statusToString()
    • yarp::dev::INavigation2DHelpers::stringToStatus()
  • yarp::dev::INavigation2D. Added method:
    yarp::dev::INavigation2D::getNameOfCurrentTarget() to the interface.
  • yarp::dev::INavigation2D. Method:
    yarp::dev::INavigation2D::gotoTargetByLocationName() now accepts area names.
  • yarp::dev::INavigation2D. Added class yarp::dev::Map2DArea.
  • yarp::dev::INavigation2D. Added methods getArea(), checkInsideArea() and
    checkNearToLocation().
  • yarp::dev::INavigation2DTargetActions. Added method
    applyVelocityCommand().
  • yarp::dev::Map2DServer. Changed locations.ini file format to support
    load/save of Map2DLocation and Map2DArea.
  • Updated AnalogWrapper to open multiple ros topics for wrenchStamped
    ros msg type.
  • Added const counterpart of yarp::dev::CanBuffer::getPointer().
  • yarp::dev::IMap2D Added method yarp::dev::IMap2D::renameLocation()
  • `yarp::dev:...
Read more

YARP 3.1.2 (2019-06-03)

03 Jun 15:45
Compare
Choose a tag to compare

YARP 3.1.2 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Bug Fixes

CMake

  • Fixed issue in YarpPlugin when INTERNAL is enabled and dependencies are not
    available (#2024).

Libraries

YARP_dev

  • Fixed PolyDriver linking issues on Ubuntu 18.04.

Devices

realsense2

  • Correctly detect color sensor on D435i (#2010).

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.1.1..v3.1.2):

     8	Daniele E. Domenichelli <[email protected]>
     2	Alberto Cardellino <[email protected]>
     1	Bartek Łukawski <[email protected]>
     1	Emilio Benenati <[email protected]>

YARP 3.1.1 (2019-04-18)

18 Apr 12:41
Compare
Choose a tag to compare

YARP 3.1.1 Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

New Features

Build System

  • Added YARP_DISABLE_VERSION_SOURCE cmake variable to disable version source
    when building YARP. This is an useful option for developers, since it
    avoids rebuilding everything whenever the commit or the dirty state changes.
    Please disable this option when including YARP version in bugs reports.

Bug Fixes

CMake Modules

YarpInstallationHelpers

  • Changed / in \ path.d under Windows (#1513).

Libraries

YARP_OS

  • Fixed write() in BufferedPort after interrupting-resuming(#1834).
  • Fixed assertion when YARP_FORWARD_LOG_ENABLE=1 (#1851).
  • Fixed impl/PlatformSysStat.h installation.
  • Fixed Port from performing resume() operations if not interrupted(#1896).
  • Fixes missing initialization value for Network Clock port

YARP_dev

  • Fixed IControlLimits.h not being a self-sufficient header (#1845).
  • Added missing YARP_dev_API to IRobotDescription.
  • Made optional the view of IFrameGrabberControls in RGBDSensorWrapper
    (#1875).
  • Fixed header inclusion in ImplementControlLimits2.h.
  • Fixed interface pointer checks in ControlBoardWrapper.
  • Added timeout check in all data streamed by *\stateExt:o ports (#1833).

YARP_companion

  • Fixed api.h installation.

YARP_sig

  • Fixed element contruction when calling VectorOf<T>::push_back().
  • Fixed build when ZFP is installed.
  • Fixed possible buffer overrun in PointCloudTypes

Tools

yarpidl_thrift

  • Fixed serialisation / deserialisation of maps (#1802).

Bindings

  • Fixed usage of methods that take in input a yarp::sig::Vector in bindings
    (#1828).
  • Disabled extended analog sensor interfaces in C# to allow compilation of these
    bindings (#1830).
  • Added bindings for yarp::os::Wire and yarp::os::WireLink

GUIs

yarpdataplayer

  • Fixed memory leak when using cvLoad(...).

Devices

RemoteControlBoard

  • Added timeout parameter.

realsense2

  • Fixed set/getDepthAccuracy methods (#1877).

ffmpeg

  • Fixed compilation on debian testing (#1849).

imuBosch_BNO055

  • Fixed runtime linking issue.
  • Fixed shifted read from i2c.

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.1.0..v3.1.1):

   112	Daniele E. Domenichelli <[email protected]>
    33	Nicolò Genesio <[email protected]>
     8	Damiano Enerli <[email protected]>
     7	Alberto Cardellino <[email protected]>
     6	Silvio Traversaro <[email protected]>
     3	Bartek Łukawski <[email protected]>
     3	Marco Randazzo <[email protected]>
     2	Andrea Ruzzenenti <[email protected]>
     2	Arren Glover <[email protected]>
     2	Diego Ferigo <[email protected]>
     2	Nuno Guedelha <[email protected]>
     2	Tobias Fischer <[email protected]>
     2	Ugo Pattacini <[email protected]>
     1	Claudio Fantacci <[email protected]>
     1	Matteo Brunettini <[email protected]>
     1	Mohamed Babiker Mohamed Elobaid <[email protected]>
     1	Valentina Gaggero <[email protected]>

YARP 3.1.0 (2018-07-31)

31 Jul 14:25
Compare
Choose a tag to compare

YARP 3.1.0 (2018-07-31) Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

New Features

Libraries

YARP_OS

  • Vocab is now a namespace, and yarp::os::createVocab replaces VOCAB1\2\3\4
    that are now deprecated.

YARP_DEV

  • The following files have been renamed:
    • yarp/dev/ImplementControlLimits.h
      (from yarp/dev/IControlLimitsImpl.h)
    • yarp/dev/ImplementControlLimits2.h
      (from yarp/dev/IControlLimits2Impl.h)
    • yarp/dev/ImplementInteractionMode.h
      (from yarp/dev/IInteractionModeImpl.h)
    • yarp/dev/ImplementPidControl.h
      (from yarp/dev/IPidControlImpl.h)
    • yarp/dev/ImplementPositionControl.h
      (from yarp/dev/IPositionControlImpl.h)
    • yarp/dev/ImplementPositionControl2.h
      (from yarp/dev/IPositionControl2Impl.h)
    • yarp/dev/ImplementPositionDirect.h
      (from yarp/dev/IPositionDirectImpl.h)
    • yarp/dev/ImplementVelocityControl.h
      (from yarp/dev/IVelocityControlImpl.h)
    • yarp/dev/ImplementVelocityControl2.h
      (from yarp/dev/IVelocityControl2Impl.h)
    • yarp/dev/ImplementVirtualAnalogSensor.h
      (from yarp/dev/IVirtualAnalogSensorImpl.h)
  • The following classes have been refactored.
    • These classes are no more template classes:
      • ImplementControlCalibration
      • ImplementAmplifierControl
      • ImplementEncoders
    • Class definitions were moved from
      yarp/dev/ImplementControlBoardInterfaces.h to:
      • yarp/dev/ImplementControlCalibration.h
      • yarp/dev/ImplementAmplifierControl.h
      • yarp/dev/ImplementEncoders.h
    • File yarp/dev/ControlBoardInterfacesImpl-inl.h has been removed.
  • Class IControlCalibration refactored.
    The following methods were renamed:
    • done(int j) -> calibrationDone(int j)
    • doneRaw(int j) -> calibrationDoneRaw(int j)
    • calibrate() -> calibrateRobot()
  • Class IControlCalibrationRaw refactored.
    The following methods were renamed:
    • calibrateRaw(int, unsigned int, double, double, double) ->
      calibrateAxisWithParamsRaw(int, unsigned int, double, double, double)
    • calibrate(int, unsigned int, double, double, double) ->
      calibrateAxisWithParams(int, unsigned int, double, double, double)
  • The file yarp/dev/ControlBoardInterfaces.h has been split into multiple
    files:
    • yarp/dev/IAmplifierControl.h
    • yarp/dev/IAxisInfo.h
    • yarp/dev/IControlDebug.h
    • yarp/dev/IControlLimits.h

YARP_sig

  • Vector made typedef of VectorOf<double>(#1598).

Devices

imuBosch_BNO055

  • Added support for i2c.

yarp_test_grabber

  • Added test [time] which draws a text timestamp directly on the image.

Tools

yarp

  • Added yarp name runners command to get a list of the ports offering
    yarprun utilities

Bindings

IInteractionMode interface bindings

  • Added bindings for the interface IInteractionMode.
    The change extends the yarp::dev::IInteractionMode and the
    yarp::dev::IImpedanceControl classes.

Multiple Analog Sensors interfaces bindings

  • Minor refactoring of main header MultipleAnalogSensorsInterfaces.h defining
    the interfaces:
    IThreeAxisGyroscopes, IThreeAxisLinearAccelerometers,
    IThreeAxisMagnetometers, IOrientationSensors, ITemperatureSensors,
    ISixAxisForceTorqueSensors, IContactLoadCellArrays, IEncoderArrays,
    ISkinPatches.
  • Extended these interfaces for wrapping the cast functions
    (PolyDriver*)->view(<sensor_interface*>).
  • For this purpose, defined and used a new macro CAST_POLYDRIVER_TO_INTERFACE.
  • extended the new interfaces for wrapping all other methods which Swig
    struggles to handle, using a new Swig macro defined in
    macrosForMultipleAnalogSensors.i
  • refactored the from/toMatlab() wrappers and extended them to the classes:
    std::vector<double>, std::vector<bool>, std::vector<int>,
    yarp::sig::Vector.

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.0.0..v3.1.0):

   100	Daniele E. Domenichelli <[email protected]>
    69	Nicolò Genesio <[email protected]>
    26	Damiano Enerli <[email protected]>
    17	Marco Randazzo <[email protected]>
     8	Nuno Guedelha <[email protected]>
     4	Valentina Gaggero <[email protected]>
     2	Bartek Łukawski <[email protected]>
     2	Emilio Cartoni <[email protected]>
     2	Lorenzo Rapetti <[email protected]>
     2	Matteo Brunettini <[email protected]>
     2	Ugo Pattacini <[email protected]>
     1	Alberto Cardellino <[email protected]>
     1	Andrea Ruzzenenti <[email protected]>
     1	Claudio Fantacci <[email protected]>
     1	Mohamed Babiker Mohamed Elobaid <[email protected]>

YARP 3.0.1 (2018-07-25)

25 Jul 12:17
Compare
Choose a tag to compare

YARP 3.0.1 (2018-07-25) Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Important Changes

  • Optional dependency on YCM now requires version 0.9.0 or later.
  • The idl_tools component is now required in order to use yarp_idl_to_dir
    and yarp_add_idl.

YARP_rosmsg

  • Removed all getTypeText() and typeText() methods, replaced by
    static constexpr const char* typeText variable.

New Features

  • Python and ruby bindings tests are now integrated with ctest

Libraries

YARP_rosmsg

  • Added static constexpr const char* typeName,
    static constexpr const char* typeChecksum and
    static constexpr const char* typeText variables to all generated
    classes.

Tools

yarprobotinterface

  • Added parser for yarprobotinterface .xml format 3.0

Bug Fixes

Build System

  • Fixed issue with vtk config files when looking for the pcl component.
  • Fixed java bindings.
  • Fixed static builds.
  • Added components for private libraries (needed for static builds)
  • Added components for yarpcar and yarpmod.
  • When using YARP_MODULE_PATH a deprecation warning is printed (YCM should
    be used instead).
  • Deprecation warnings when calling find_package(YARP) more than once are no
    longer printed.
  • Fix configuration when YARP_COMPILE_CARRIER_PLUGINS and
    YARP_COMPILE_DEVICE_PLUGINS is set to OFF.
  • When using FeatureSummary, find_package(YARP) adds the DESCRIPTION and
    URL properties.
  • When using FeatureSummary, find_package(YARP) no longer adds YCM to the
    optional dependencies.
  • Fixed behavior of OPTIONAL_COMPONENTS in find_package(YARP) calls when
    the REQUIRED option was passed on. Now, a YARP bundle will be considered
    not found if any of such components is missing.
  • Plugins not enabled due to missing dependencies are now shown in ccmake and
    cmake-gui together with a list of dependencies that are not satisfied.
  • Removed the NO_RECURSE argument to yarp_idl_to_dir and yarp_add_idl.

Libraries

YARP_OS

  • Fixed SharedLibraryClass::getContent(). Now a const and a non const version
    are available.
  • Fixed SharedLibraryClassFactory::destroy(). Now it is const like create().
  • Added initialization of MultiNameSpace in Network::initMinimum.

YARP_dev

  • Fixed getCurrent/getCurrents. Now the stateExt port is used, and the methods
    are called through the iCurrentControl interface.
  • Fixed deprecation message placement for the constructor of
    IJoypadEventDriven. It was failing enabling c++14 compiling with gcc(#1747).
  • Fixed ImplementCurrentControl::getCurrentRanges(double*min, double *max):
    where conversion from Sensor to Ampere was missing.
  • Fixed ImplementCurrentControl::getCurrentRanges(j, double *min, double *max):
    where conversion from Sensor to Ampere was missing.
  • Fixed ImplementPositionControl::checkMotionDone(bool *flag) where axes
    conversion was missing.

YARP_math

  • Fixed a regression in the build system that prevented YARP from being
    compiled if Eigen3 was available.

YARP_pcl

  • Fixed missing isDense parmeter.

YARP_sig

  • Fixed negative vocab(#1749).

YARP_rosmsg

  • Fixed message_definition property for all classes.

Tools

yarpidl_rosmsg

  • Removed the --no-recurse option.
  • The message_definition property is now properly generated.

GUIs

yarpscope

  • Fixed double free during the closure. It has been introduced by #1685
    (commit 02abf63).

Devices

rplidar2

  • Fixed compilation (#1689).

realsense2

  • Fixed deadlock on macOS(see IntelRealSense/librealsense:#1855). Actually to
    fix it also are needed these changes IntelRealSense/librealsense:#2022.

multipleanalogsensorsremapper

  • Fixed sensors name remapping in MultipleAnalogSensorsRemapper class.

batteryClient

  • Fixed plugin name.

batteryWrapper

  • Fixed plugin name.

Contributors

This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.0.0..v3.0.1):

    93	Daniele E. Domenichelli <[email protected]>
    28	Nicolò Genesio <[email protected]>
    24	Damiano Enerli <[email protected]>
     5	Marco Randazzo <[email protected]>
     3	Valentina Gaggero <[email protected]>
     2	Bartek Łukawski <[email protected]>
     2	Lorenzo Rapetti <[email protected]>
     2	Ugo Pattacini <[email protected]>
     1	Alberto Cardellino <[email protected]>
     1	Claudio Fantacci <[email protected]>
     1	Mohamed Babiker Mohamed Elobaid <[email protected]>
     1	Nuno Guedelha <[email protected]>

YARP 3.0.0 (2018-06-11)

11 Jun 13:29
Compare
Choose a tag to compare

YARP 3.0.0 (2018-06-11) Release Notes

A (partial) list of bug fixed and issues resolved in this release can be found
here.

Important Changes

  • All YARP libraries can now be modified and distributed under the terms of the
    BSD-3-Clause license. See the accompanying LICENSE file for details.
  • Visual Studio 2013 is no longer supported.
  • CMake 3.5 or later is now required.
  • Optional dependency on YCM now requires version 0.8.0 or later.
  • All the functionalities deprecated before YARP 2.3.72 were removed.

Build System

  • The CREATE_DEVICE_LIBRARY_MODULES option was renamed
    YARP_COMPILE_DEVICE_PLUGINS and is now enabled by default.
  • The CREATE_OPTIONAL_CARRIERS option was renamed
    YARP_COMPILE_CARRIER_PLUGINS and is now enabled by default.
  • YARP now accepts the keyboard COMPONENTS in find_package(YARP) calls.
    The YARP_LIBRARIES variable contains only the libraries corresponding to the
    components requested in the last find_package(YARP) call.
    If no components are specified, the OS, sig, dev and math (only when
    enabled) components are searched.
  • The YARP_INCLUDE_DIRS variable is deprecated, as it is handled automatically
    by CMake targets.
  • The YARP_MATH_LIBRARY is deprecated.
    You can check for YARP_math using find_package(YARP COMPONENTS math)

Libraries

YARP_conf

  • The YARP_WRAP_STL_STRING and YARP_WRAP_STL_STRING_INLINE are now
    always undefined, and they are now considered deprecated.

YARP_OS

  • The shmem carrier is no longer builtin inside YARP_OS and it is now a
    plugin.
  • The Run class was moved to the new library YARP_run
  • yarp::os::setprogname() is now deprecated.
  • yarp::os::getprogname() is now deprecated.
  • yarp::os::SystemInfo::getProcessInfo() now returns info for current process
    when called without arguments.
  • The methods yarp::os::Mutex::tryLock() and
    yarp::os::RecursiveMutex::tryLock() were deprecated in favour of
    try_lock().
  • ConstString is now deprecated in favour of std::string.
  • Replaced YARP_INT{8,16,32,64} with std::int{8,16,32,64}_t from cstdint
  • Use defines from cinttypes instead of YARP_INT64_FMT
  • Add yarp::conf::float{32,64,128}_t (128 only if supported)
  • Add yarp::conf::ssize_t
  • Deprecate YARP_INT{8,16,32,64} in favour of std::int{8,16,32,64}_t
  • Deprecate YARP_FLOAT{32,64} in favour of yarp::conf::float{32,64}_t
  • Deprecate YARP_INT64_FMT in favour of PRId64
  • Deprecate YARP_CONF_SSIZE_T in favour of yarp::conf::ssize_t
  • Add the following methods:
    • yarp::os::Bottle::addInt{8,16,32,64}()
    • yarp::os::Bottle::addFloat{32,64}()
    • yarp::os::Value::{is,as,make}Int{8,16,32,64}()
    • yarp::os::Value::{is,as,make}Float{32,64}()
    • yarp::os::ConnectionWriter::appendInt{8,16,32,64}()
    • yarp::os::ConnectionWriter::appendFloat{32,64}()
    • yarp::os::ConnectionReader::expectInt{8,16,32,64}()
    • yarp::os::ConnectionReader::expectFloat{32,64}()
    • BOTTLE_TAG_INT{8,16,32,64} (BOTTLE_TAG_INT32 = BOTTLE_TAG_INT)
    • BOTTLE_TAG_FLOAT{32,64} (BOTTLE_TAG_FLOAT64 = BOTTLE_TAG_DOUBLE)
  • The following methods are not deprecated due to the large codebase where they
    are used, but their usage in new code is discouraged, and it is forbidden
    inside YARP.
    Anyway, all these methods are now calling the corresponding Int32 and Float64
    version, but are not architecture safe, since they still accept int and
    double.
    • yarp::os::Bottle::addInt()
    • yarp::os::Bottle::addDouble()
    • yarp::os::Value::isInt()
    • yarp::os::Value::isDouble()
    • yarp::os::Value::asInt()
    • yarp::os::Value::asDouble()
    • yarp::os::Value::makeInt()
    • yarp::os::Value::makeDouble()
    • yarp::os::ConnectionWriter::appendInt()
    • yarp::os::ConnectionWriter::appendDouble()
    • yarp::os::ConnectionReader::expectInt()
    • yarp::os::ConnectionReader::expectDouble()
    • BOTTLE_TAG_INT
    • BOTTLE_TAG_DOUBLE
  • Value constructors are now explicit.
  • Thread setOptions() and setDefaultStackSize() are now deprecated and
    no longer doing anything.
  • The YARP_STACK_SIZE environment variable is no longer used.
  • Portable::getType() became Portable::getType() const(#1617).
  • PortWriter::getWriteType() became PortWriter::getWriteType() const(#1621).
  • PortReader::getReadType() became PortReader::getReadType() const(#1616).
  • Companion has been moved to a dedicated library (#1509). As consequences:
    • Following functions has been moved from Companion to NetworkBase:
      disconnectInput, poll, sendMessage, wait (wait() has been splitted
      into two new functions waitConnection() and waitPort().
    • Companion::exists() has been removed unifying its code with
      NetworkBase::exists().
    • readString() function has been deprecated in NetworkBase.
  • RateThread has been deprecated in favour of the new class PeriodicThread.
    Note that RateThread used the period in msec(int), PeriodicThread
    requires the period in sec(double), so remember to consider a x1000 factor
    when migrate the code.
  • Several methods in public interfaces have a slightly different signature (see
    #1738 for details).
  • It is now possible to write a const Portable on a Port.
  • const Bytes and const ManagedBytes can no longer return non-const pointers
    to the underlying data.

YARP_dev

  • The serial device is no longer a plugin, but it is automatically built with
    YARP_dev.
  • The following devices are no longer built with YARP_dev and are now plugins:
    • ServerSoundGrabber
    • BatteryClient
    • BatteryWrapper
    • FrameTransformClient
    • FrameTransformServer
    • Localization2DClient
    • Map2DClient
    • Map2DServer
    • Navigation2DClient
    • Rangefinder2DClient
    • Rangefinder2DWrapper
  • The following headers were removed:
    • /yarp/dev/DeviceGroup.h
    • /yarp/dev/DevicePipe.h
    • /yarp/dev/IKinectDeviceDriver.h
    • /yarp/dev/IOpenNI2DeviceDriver.h
    • /yarp/dev/RemoteFrameGrabber.h
    • /yarp/dev/ServerFrameGrabber.h
    • /yarp/dev/ServerSerial.h
    • /yarp/dev/ServerSoundGrabber.h
    • /yarp/dev/TestMotor.h
    • /yarp/dev/RemoteFrameGrabberDC1394.h
  • A class of interfaces to wrap multiple analog sensors is now available in:
    • /yarp/dev/MultipleAnalogSensorsInterfaces.h
  • The devices multipleanalogsensorsserver, multipleanalogsensorsclient and
    multipleanalogsensorsremapper are available for exposing and accessing the
    multiple analog sensors over a network, and for combining multiple devices in
    a single device (remapper).
  • Major changes to IPidControlImpl.cpp to allow conversion of PID gains from
    metric to machine units.
  • Major changes to TorqueControlImpl to allow conversion of bemf, ktau
    parameters from metric to machine units.
  • Major changes to ControlBoardHelper classes, implementation is now contained
    in a separate .cpp file. Removed inline functions.
  • Added file PidEnums.h
  • Added missing method setNominalCurrentRaw() to IAmplifierControl
    interface.
  • Removed all control board interfaces methods e.g. setTorquePid(),
    setPositionMode() etc, marked as deprecated since 2.3.70
  • In ControlBoardWrapper functions for all joints invoke the equivalent function
    for all joints of motion control device. In the previous versions, that
    function call the equivalent function single-joint in a for-cicle, so the
    function for all joints in motion control devices have never been called.
    So please, check the implementation of function for all joints in your motion
    control device because now they will be invoked for the fisrt time.
  • The following classes have been deprecated:
    • ICalibrateControl2 in favour of ICalibrateControl.
    • ICalibrateControl2Raw in favour of ICalibrateControlRaw.
    • IFrameGrabberControl2 in favour of IFrameGrabberControl.
    • FrameGrabberControl2Impl in favour of FrameGrabberControlImpl
    • IControlLimits2 in favour of IControlLimits.
    • IControlLimits2Raw in favour of IControlLimitsRaw.
    • ImplementControlLimits2 in favour of ImplementControlLimits.
    • IControlMode2 in favour of IControlMode.
    • IControlMode2Raw in favour of IControlModeRaw.
    • ImplementControlMode2 in favour of ImplementControlMode.
    • IPositionControl2Raw in favour of IPositionControlRaw.
    • IPositionControl2 in favour of IPositionControl.
    • ImplementPositionControl2 in favour of ImplementPositionControl.
    • IVelocityControl2Raw in favour of IVelocityControlRaw.
    • IVelocityControl2 in favour of IVelocityControl.
    • ImplementVelocityControl2 in favour of ImplementVelocityControl.
  • IPositionDirectRaw::setPositionsRaw(const int, const int*, double*) became
    IPositionDirectRaw::setPositionsRaw(const int, const int*, const double*).
  • IPositionDirect::setPositions(const int, const int*, double*) became
    IPositionDirect::setPositions(const int, const int*, const double*)(#1351).
  • The file yarp/dev/ControlBoardInterfacesImpl.inl was renamed
    yarp/dev/ControlBoardInterfacesImpl-inl.h
  • Several methods in public interfaces have a slightly different signature (see
    #1738 for details).

YARP_sig

  • The file yarp/sig/IplImage.h is deprecated, use opencv headers instead.
  • Added the yarp::sig::PointCloud class. See the documentation for details.
  • if libjpeg is found, namespace yarp::sig::file implements a write method to
    save jpeg images.

YARP_manager

  • The following headers were removed:
    • /yarp/manager/ymm-dir.h

libyarpcxx

  • The `l...
Read more