YARP 3.0.0 Released #299
mbrunettini
started this conversation in
Releases
Replies: 1 comment
-
Starting with this release, we are trying to adopt the Semantic Versioning version policy. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
YARP 3.0.0 was released today and is now available for download at: https://github.com/robotology/yarp/releases/. This release is a major release and introduces several new features and important breaking changes since YARP 2.3.72.
A (partial) list of bug fixed and issues resolved in this release can be found
here.
Important Changes
BSD-3-Clause license. See the accompanying LICENSE file for details.
Build System
CREATE_DEVICE_LIBRARY_MODULES
option was renamedYARP_COMPILE_DEVICE_PLUGINS
and is now enabled by default.CREATE_OPTIONAL_CARRIERS
option was renamedYARP_COMPILE_CARRIER_PLUGINS
and is now enabled by default.COMPONENTS
infind_package(YARP)
calls.The
YARP_LIBRARIES
variable contains only the libraries corresponding to thecomponents requested in the last
find_package(YARP)
call.If no components are specified, the
OS
,sig
,dev
andmath
(only whenenabled) components are searched.
YARP_INCLUDE_DIRS
variable is deprecated, as it is handled automaticallyby CMake targets.
YARP_MATH_LIBRARY
is deprecated.You can check for YARP_math using
find_package(YARP COMPONENTS math)
Libraries
YARP_conf
YARP_WRAP_STL_STRING
andYARP_WRAP_STL_STRING_INLINE
are nowalways undefined, and they are now considered deprecated.
YARP_OS
shmem
carrier is no longer builtin insideYARP_OS
and it is now aplugin.
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 processwhen called without arguments.
yarp::os::Mutex::tryLock()
andyarp::os::RecursiveMutex::tryLock()
were deprecated in favour oftry_lock()
.ConstString
is now deprecated in favour ofstd::string
.YARP_INT{8,16,32,64}
withstd::int{8,16,32,64}_t
fromcstdint
cinttypes
instead ofYARP_INT64_FMT
yarp::conf::float{32,64,128}_t
(128 only if supported)yarp::conf::ssize_t
YARP_INT{8,16,32,64}
in favour ofstd::int{8,16,32,64}_t
YARP_FLOAT{32,64}
in favour ofyarp::conf::float{32,64}_t
YARP_INT64_FMT
in favour ofPRId64
YARP_CONF_SSIZE_T
in favour ofyarp::conf::ssize_t
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
)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
anddouble
.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
Thread
setOptions()
andsetDefaultStackSize()
are now deprecated andno longer doing anything.
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:Companion
toNetworkBase
:disconnectInput
,poll
,sendMessage
,wait
(wait()
has been splittedinto two new functions
waitConnection()
andwaitPort()
.Companion::exists()
has been removed unifying its code withNetworkBase::exists()
.readString()
function has been deprecated inNetworkBase
.RateThread
has been deprecated in favour of the new classPeriodicThread
.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.
#1738 for details).
const Portable
on aPort
.const Bytes
andconst ManagedBytes
can no longer return non-const pointersto the underlying data.
YARP_dev
serial
device is no longer a plugin, but it is automatically built withYARP_dev
.YARP_dev
and are now plugins:ServerSoundGrabber
BatteryClient
BatteryWrapper
FrameTransformClient
FrameTransformServer
Localization2DClient
Map2DClient
Map2DServer
Navigation2DClient
Rangefinder2DClient
Rangefinder2DWrapper
/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
/yarp/dev/MultipleAnalogSensorsInterfaces.h
multipleanalogsensorsserver
,multipleanalogsensorsclient
andmultipleanalogsensorsremapper
are available for exposing and accessing themultiple analog sensors over a network, and for combining multiple devices in
a single device (remapper).
metric to machine units.
TorqueControlImpl
to allow conversion ofbemf
,ktau
parameters from metric to machine units.
ControlBoardHelper
classes, implementation is now containedin a separate
.cpp
file. Removed inline functions.PidEnums.h
setNominalCurrentRaw()
toIAmplifierControl
interface.
setTorquePid()
,setPositionMode()
etc, marked as deprecated since 2.3.70for 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.
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*)
becameIPositionDirectRaw::setPositionsRaw(const int, const int*, const double*)
.IPositionDirect::setPositions(const int, const int*, double*)
becameIPositionDirect::setPositions(const int, const int*, const double*)
(#1351).yarp/dev/ControlBoardInterfacesImpl.inl
was renamedyarp/dev/ControlBoardInterfacesImpl-inl.h
#1738 for details).
YARP_sig
yarp/sig/IplImage.h
is deprecated, use opencv headers instead.yarp::sig::PointCloud
class. See the documentation for details.save jpeg images.
YARP_manager
/yarp/manager/ymm-dir.h
libyarpcxx
libyarpcxx
was removed.YARP_math
confusion with method toRotationMatrix3x3().
yarp::math::<class>
es have been moved from theyarp::math
tothe global namespace.
libYARP_math
is now enabled by default ifEigen3
is found.YARP_companion
yarp::os::Companion
.Tools
yarpidl_thrift
8/16 bits instead of 32. This makes it incompatible with YARP 2.
Devices
available in the
yarp-deprecated-devices
repository:
New Features
Build System
CLICOLOR_FORCE=1
environment variable. This is not enabled by defaultbecause it is not GUI friendly.
CMake Modules
YarpPlugin
OPTION
,DEFAULT
andDOC
options toyarp_begin_plugin_library
.If the option is disabled, all plugins in the bundle are automatically
disabled.
VERBOSE
andYarpPlugin_VERBOSE
options toyarp_prepare_plugin
Libraries
YARP_OS
C++11 Mutex concept.
thread after a period x, every y milliseconds, for z times or w seconds.
has been added in the
SocketTwoWayStream::open()
, inSocketTwoWayStream::flush
is disabled and then re-enabled.ResourceFinder::setDefault()
overloads forint32_t
andfloat64_t
.YARP_sig
yarp::sig::file::[read|write](ImageOf<PixelFloat>&)
servicesrefactored to store data in binary formats.
Carriers
mjpeg
carrier is now compatible also with mono images.Tools
yarpidl_thrift
yarpdatadumper
yarpidl_rosmsg
yarp_idl_to_dir
andyarp_add_idl
, using theNO_RECURSE
argument.yarp::rosmsg
namespace.yarp/rosmsg
subfolder._indexALL.txt
files are generated only for the requested types.yarpidl_rosmsg
is not built withYARP_NO_DEPRECATED
enabled, but they are considered deprecated.yarp_add_idl
.Devices
ControlBoardWrapper
Bindings
IMotorEncoders interface bindings
IMotorEncoders
interface methods can be used to directly monitor the motorshaft position and speed or even to control the motor positions individually
when estimating coupled motors friction parameters.
The change extends the
yarp::dev::PolyDriver
and theyarp::dev::IMotorEncoders
classes.Bug Fixes
Libraries
YARP_OS
Int64
value no longer returns true whenisInt()
is called.GUIs
yarpdataplayer
able to deal withImageOf<PixelFloat>
also withOpenCV.
yarpdataplayer
image overlapping.Contributors
This is a list of people that contributed to this release (generated from the
git history using
git shortlog -ens --no-merges v2.3.72..v3.0.0
):Beta Was this translation helpful? Give feedback.
All reactions