Releases: robotology/yarp
YARP 3.3.1
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
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 ofos
(lowercase).
Libraries
YARP_os
- The
YARP_OS
was renamedYARP_os
. Using the old name is still supported,
but deprecated. yAssert
is now a proper assertion macro (removed whenNDEBUG
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
ofstd::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*)
- Classes:
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_separator
respectively.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 ofint
.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
andyarp::dev::DataSource2
are now deprecated.yarp::dev::DataWriter
andyarp::dev::DataWriter2
are now deprecated
New Features
Build System
- The
yarp_idl_to_dir
command now accepts thePLACEMENT
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 forSEPARATE
SEPARATE_ODD
: headers in<OUTPUT_DIR>/include/<namespace>
sources in<OUTPUT_DIR>/src
For backwards compatibility the default value isSEPARATE_ODD
.
- After calling the
yarp_add_idl
method, theYARP_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 ofyarp::os::Mutex
to
yarp::os::Timer
. - The Log colors can now be enabled also on windows when supported
(#2076) - Added
setCallbackLock
overrides toyarp::os::Contactable
,
yarp::os::AbstractContactable
,yarp::os::Port
,yarp::os::BufferedPort
to pass astd::mutex
instead of ayarp::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 therpc:o
andmeasures: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 portmeasures:o
of the server after
being opened, and to work also when therpc:o
port is missing (e.g with the
yarpdataplayer
).
realsense2
- Deprecated the
needAlignment
parameter in favour ofalignmentFrame
.
The default behaviour has been maintaned, if not specifiedalignmentFrame
isRGB
. The allowed values areRGB
,Depth
andNone
.
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
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
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
Devices
MultipleAnalogSensorsRemapper
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)
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 theServerSoundGrabber
device drivers are deprecated.
New Features
Build System
.ini
files for plugins configured withyarp_prepare_plugin
can now be
automatically generated byyarp_add_plugin
and installed by passing the
YARP_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 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: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.
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
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 of
appendString()
.- 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;
-
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 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 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
- New data types:
YARP_dev
yarp::dev::IMap2D::clear()
method renamed to
yarp::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 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 classyarp::dev::Map2DArea
.yarp::dev::INavigation2D
. Added methodsgetArea()
,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 forwrenchStamped
ros msg type. - Added
const
counterpart ofyarp::dev::CanBuffer::getPointer()
. yarp::dev::IMap2D
Added methodyarp::dev::IMap2D::renameLocation()
- `yarp::dev:...
YARP 3.1.2 (2019-06-03)
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)
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
toIRobotDescription
. - Made optional the view of
IFrameGrabberControls
inRGBDSensorWrapper
(#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)
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, andyarp::os::createVocab
replacesVOCAB1\2\3\4
that are now deprecated.
YARP_DEV
- The following files have been renamed:
yarp/dev/ImplementControlLimits.h
(fromyarp/dev/IControlLimitsImpl.h
)yarp/dev/ImplementControlLimits2.h
(fromyarp/dev/IControlLimits2Impl.h
)yarp/dev/ImplementInteractionMode.h
(fromyarp/dev/IInteractionModeImpl.h
)yarp/dev/ImplementPidControl.h
(fromyarp/dev/IPidControlImpl.h
)yarp/dev/ImplementPositionControl.h
(fromyarp/dev/IPositionControlImpl.h
)yarp/dev/ImplementPositionControl2.h
(fromyarp/dev/IPositionControl2Impl.h
)yarp/dev/ImplementPositionDirect.h
(fromyarp/dev/IPositionDirectImpl.h
)yarp/dev/ImplementVelocityControl.h
(fromyarp/dev/IVelocityControlImpl.h
)yarp/dev/ImplementVelocityControl2.h
(fromyarp/dev/IVelocityControl2Impl.h
)yarp/dev/ImplementVirtualAnalogSensor.h
(fromyarp/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.
- These classes are no more template classes:
- 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 ofVectorOf<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 theyarp::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)
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 useyarp_idl_to_dir
andyarp_add_idl
.
YARP_rosmsg
- Removed all
getTypeText()
andtypeText()
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 theDESCRIPTION
and
URL
properties. - When using
FeatureSummary
,find_package(YARP)
no longer addsYCM
to the
optional dependencies. - Fixed behavior of
OPTIONAL_COMPONENTS
infind_package(YARP)
calls when
theREQUIRED
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
andyarp_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
inNetwork::initMinimum
.
YARP_dev
- Fixed getCurrent/getCurrents. Now the
stateExt
port is used, and the methods
are called through theiCurrentControl
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
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)
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
infind_package(YARP)
calls.
TheYARP_LIBRARIES
variable contains only the libraries corresponding to the
components requested in the lastfind_package(YARP)
call.
If no components are specified, theOS
,sig
,dev
andmath
(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 usingfind_package(YARP COMPONENTS math)
Libraries
YARP_conf
- The
YARP_WRAP_STL_STRING
andYARP_WRAP_STL_STRING_INLINE
are now
always undefined, and they are now considered deprecated.
YARP_OS
- The
shmem
carrier is no longer builtin insideYARP_OS
and it is now a
plugin. - The
Run
class was moved to the new libraryYARP_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 ofstd::string
.- Replaced
YARP_INT{8,16,32,64}
withstd::int{8,16,32,64}_t
fromcstdint
- Use defines from
cinttypes
instead ofYARP_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 ofstd::int{8,16,32,64}_t
- Deprecate
YARP_FLOAT{32,64}
in favour ofyarp::conf::float{32,64}_t
- Deprecate
YARP_INT64_FMT
in favour ofPRId64
- Deprecate
YARP_CONF_SSIZE_T
in favour ofyarp::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 acceptint
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()
andsetDefaultStackSize()
are now deprecated and
no longer doing anything.- The
YARP_STACK_SIZE
environment variable is no longer used. Portable::getType()
becamePortable::getType() const
(#1617).PortWriter::getWriteType()
becamePortWriter::getWriteType() const
(#1621).PortReader::getReadType()
becamePortReader::getReadType() const
(#1616).Companion
has been moved to a dedicated library (#1509). As consequences:- Following functions has been moved from
Companion
toNetworkBase
:
disconnectInput
,poll
,sendMessage
,wait
(wait()
has been splitted
into two new functionswaitConnection()
andwaitPort()
. Companion::exists()
has been removed unifying its code with
NetworkBase::exists()
.readString()
function has been deprecated inNetworkBase
.
- Following functions has been moved from
RateThread
has been deprecated in favour of the new classPeriodicThread
.
Note thatRateThread
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 aPort
. const Bytes
andconst 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 ofbemf
,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()
toIAmplifierControl
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 ofICalibrateControl
.ICalibrateControl2Raw
in favour ofICalibrateControlRaw
.IFrameGrabberControl2
in favour ofIFrameGrabberControl.
FrameGrabberControl2Impl
in favour ofFrameGrabberControlImpl
IControlLimits2
in favour ofIControlLimits
.IControlLimits2Raw
in favour ofIControlLimitsRaw
.ImplementControlLimits2
in favour ofImplementControlLimits
.IControlMode2
in favour ofIControlMode
.IControlMode2Raw
in favour ofIControlModeRaw
.ImplementControlMode2
in favour ofImplementControlMode
.IPositionControl2Raw
in favour ofIPositionControlRaw
.IPositionControl2
in favour ofIPositionControl
.ImplementPositionControl2
in favour ofImplementPositionControl
.IVelocityControl2Raw
in favour ofIVelocityControlRaw
.IVelocityControl2
in favour ofIVelocityControl
.ImplementVelocityControl2
in favour ofImplementVelocityControl
.
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...