[TOC]
A (partial) list of bug fixed and issues resolved in this release can be found here.
- 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.
- Removed support for 'Chicken Scheme' and 'Allegro Common Lisp'.
- Swig 4 is now supported.
- The
portaudio
and theServerSoundGrabber
device drivers are deprecated.
.ini
files for plugins configured withyarp_prepare_plugin
can now be automatically generated byyarp_add_plugin
and installed by passing theYARP_INI DESTINATION
argument toyarp_install
.- The
CREATE_LIB_MATH
CMake option was renamedYARP_COMPILE_libYARP_math
. - The
CREATE_GUIS
CMake option was renamedYARP_COMPILE_GUIS
. - All the
CREATE_<UPPERCASE_EXECUTABLE>
were renamedYARP_COMPILE_<lowercase-executable>
- All the
YARP_USE_<UPPERCASEPACKAGENAME>
were renamedYARP_USE_<PackageName>
- All the
YARP_USE_SYSTEM_<UPPERCASEPACKAGENAME>
were renamedYARP_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 ofYARP_HAS_OPENCV
) yarp_idl_to_dir
signature changed, and now supports passing optional parameters:The old behaviour is still supported, but deprecated.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])
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.
- The
yarp/conf/options.h
header file is deprecated.
- The following methods signatures were changed to accept
const char
instead ofint
as terminating character:ConnectionReader::expectText()
ConnectionWriter::appendString()
InputStream::readLine()
- Added
YarpPluginSelector::checkPlugin()
static method. ConnectionWriter::appendString()
is deprecated in favour ofappendText()
.ConnectionWriter::appendRawString()
is deprecated in favour ofappendString()
.- Added
ConnectionReader::expectString()
. - Added the
initiliizer_list
constructor inyarp::os::Property
. - Added the
initiliizer_list
constructor inyarp::os::Bottle
. yarp::os::NameSpace
: All methods in the interface that takeContactStyle
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;
-
-
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 ofdata()
andbegin()
. Use eitherdata()
if you need the pointer to the first element, orbegin()
if you need the iterator. -
Added
yarp::sig::IntrinsicParams
andyarp::sig::YarpDistortion
emum. -
Added two methods for computing a
yarp::sig::PointCloud
from depth images:utils::depthToPC
utils::depthRgbToPC
-
Deprecated
getIplImage
andwrapIplImage
in favour of the new utilities ofYARP_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
- New data types:
yarp::dev::IMap2D::clear()
method renamed toyarp::dev::IMap2D::clearAllMaps()
.yarp::dev::INavigation2D
derives fromINavigation2DControlActions
andINavigation2DTargetActions
.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 methodyarp::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 classyarp::dev::Map2DArea
.yarp::dev::INavigation2D
. Added methodsgetArea()
,checkInsideArea()
andcheckNearToLocation()
.yarp::dev::INavigation2DTargetActions
. Added methodapplyVelocityCommand()
.yarp::dev::Map2DServer
. Changed locations.ini file format to support load/save of Map2DLocation and Map2DArea.- Updated
AnalogWrapper
to open multiple ros topics forwrenchStamped
ros msg type. - Added
const
counterpart ofyarp::dev::CanBuffer::getPointer()
. yarp::dev::IMap2D
Added methodyarp::dev::IMap2D::renameLocation()
yarp::dev::IMap2D
Added methodyarp::dev::IMap2D::renameArea()
- Added
yarp::dev::CircularAudioBuffer
andyarp::dev::AudioBufferSize
classes. - IAudioRender:
- Changed signatures:
-
- bool renderSound(yarp::sig::Sound& sound) + bool renderSound(const yarp::sig::Sound& sound)
-
- Added methods:
bool getPlaybackAudioBufferMaxSize(yarp::dev::AudioBufferSize& size)
bool getPlaybackAudioBufferCurrentSize(yarp::dev::AudioBufferSize& size)
bool resetPlaybackAudioBuffer()
bool getRecordingAudioBufferMaxSize(yarp::dev::AudioBufferSize& size)
bool getRecordingAudioBufferCurrentSize(yarp::dev::AudioBufferSize& size)
bool resetRecordingAudioBuffer()
- Changed signatures:
- IAudioGrabberSound:
- Changed signatures:
-
- bool getSound(yarp::sig::Sound& sound) + bool getSound(yarp::sig::Sound& sound, size_t min_number_of_samples, size_t max_number_of_samples, double max_samples_timeout_s)
-
- Added methods:
bool getRecordingAudioBufferMaxSize(yarp::dev::AudioBufferSize& size)
bool getRecordingAudioBufferCurrentSize(yarp::dev::AudioBufferSize& size)
bool resetRecordingAudioBuffer()
- Changed signatures:
- Added
YARP_cv
, a conversion library from YARP images to cv::Mat and viceversa.
- New devices:
fakeBattery
navigation2DServer
localization2DServer
usbCamera
(imported from the iCub repository)fakeNavigation
fakeLocalizer
audioRecorderWrapper
portaudioRecorder
portaudioPlayer
audioPlayerWrapper
fakeSpeaker
fakeMicrophone
- Add
physFocalLength
parameter for RGBD devices (check documentation for more details).
- Now handles correctly
--subdevice
option.
- Added
MultipleAnalogSensor
interface support. - Fixed conversion factor for gyro and magnetometer.
- Fixed unit measure in ThreeAxis interface.
- Added handler for rpc string commands.
By default the port is called
<client_name>/user_commands/rpc
.
- Added configuration parameters to set the range and the resolution of the device.
- Has learned to forward return codes to
analogSensorClient
(#1981). - Now forwards
calibrateSensor(const yarp::sig::Vector& value)
calls to wrapped subdevices.
- No longer implements
IAudioGrabberSound
.
- No longer implements audio interfaces.
- Added the possibility to compile
RFModule
s as plugin and load them runtime in a single process context.
- YARP//DTD yarprobotinterface 3.0//EN is now the default parser for robot xml configuration files.
yarprobotinterface
will not run anymore deprecated DTD format v1.0
- The thrift tool was refactored.
- Fix list serialization for i8, i16 and i64 (#1962)
- Structs can now be exported in dll APIs using the
yarp.api.include
andyarp.api.keyword
annotations. - Portables serialized using
appendExternalBlock
(i.e.yarp::sig::Vector
) can now be safely returned by thrift methods. - Files are now generating using namespace as subdirectory (this can be disabled using the no_namespace_prefix option.
- Constants and typedefs are now properly generated in the namespace.
- Use
portaudioPlayer
instead ofportaudio
device.
- Allow to specify an address for every host in the
cluster-config.xml
file. This allow to use host names that cannot be resolved automatically by the network.
- Added size (w,h) info for:
- the image received on the yarp port
- the image currently displayed in yarpview
ImplementPositionControl::checkMotionDone
now correctly returns a single value as from API (#2027).
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.2.0
):
413 Daniele E. Domenichelli <daniele.domenichelli@iit.it>
154 Nicolò Genesio <nicolo.genesio@iit.it>
76 Marco Randazzo <marco.randazzo@iit.it>
70 Alberto Cardellino <alberto.cardellino@iit.it>
19 Valentina Gaggero <valentina.gaggero@iit.it>
13 Silvio Traversaro <silvio.traversaro@iit.it>
11 Bartek Łukawski <bwmn.peter@gmail.com>
8 Damiano Enerli <damiano.enerli@iit.it>
7 Ugo Pattacini <ugo.pattacini@iit.it>
5 Yeshasvi Tirupachuri <yeshasvi.tirupachuri@iit.it>
4 Andrea Ruzzenenti <andrea.ruzzenenti@iit.it>
4 Claudio Fantacci <claudio.fantacci@iit.it>
4 Matteo Brunettini <matteo.brunettini@iit.it>
4 Stefano Dafarra <stefano.dafarra@iit.it>
3 Andrea Ruzzenenti <ruzzenenti.a@gmail.com>
2 Arren Glover <arren.glover@iit.it>
2 Diego Ferigo <diego.ferigo@iit.it>
2 Nuno Guedelha <nuno.guedelha@iit.it>
2 Prashanth Ramadoss <prashanth.ramadoss@iit.it>
2 Tobias Fischer <t.fischer@imperial.ac.uk>
1 Austin Kothig <kothiga2112@gmail.com>
1 Emilio Benenati <emilio.benenati@iit.it>
1 Francesco Romano <francesco.romano@iit.it>
1 GiulioRomualdi <giulio.romualdi@gmail.com>
1 Jason Chevrie <jason.chevrie@iit.it>
1 Mohamed Babiker Mohamed Elobaid <mohamed.elobaid@iit.it>
1 Vadim Tikhanoff <vadim.tikhanoff@iit.it>
1 YARP Developers <yarp0-devel@lists.sourceforge.net>