YARP - Yet Another Robot Platform
A (partial) list of bug fixed and issues resolved in this release can be found here.
sig
Image
BatteryWrapper
IBattery
interface are not implemented (returning false).
The only mandatory method is getBatteryStatus()
.This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.4..v3.4.5
):
6 Daniele E. Domenichelli <[email protected]>
1 Marco Randazzo <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
CMAKE_INSTALL_PYTHON3DIR
CMake variable to specify the
installation path of Python bindings, as in previous versions the variable
was defined but ignored (#2523).conf
os
yarp::os::NetworkClock
a clock reset is detected, fill the gap
between the waiter and the time published by the network clock port.
A network clock reset is defined as a jump in the past of the time published
by the network clock port.
This fix avoids that all the threads that are waiting a
yarp::os::NetworkClock::delay
call on that network clock remain blocked when
a time reset occurs (#800, #2494).YarpPluginSelector
, avoided concurrent access to variables (#2538).yarplogger
example_callback.py
, which showcases a BufferedPort
with an attached
callback handler for logging incoming bottles (#2555).This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.3..v3.4.4
):
25 Daniele E. Domenichelli <[email protected]>
4 Bartek Łukawski <[email protected]>
4 Silvio Traversaro <[email protected]>
3 Stefano Bernagozzi <[email protected]>
1 Ettore Landini <[email protected]>
1 Giuseppe L'Erario <[email protected]>
1 Nicolò Genesio <[email protected]>
1 Silvio Traversaro <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
robotinterface
attach
action for IWrapper
devices.controlboardwrapper2
getTorque
is no longer called twice.fakeFrameGrabber
rand
mode was fixed.virtualAnalogWrapper
networks
in the XML
files. The old style is deprecated but still accepted.
This is a fix in the sense that virtualAnalogWrapper
was behaving
differently from ControlBoardWrapper
.This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.2..v3.4.3
):
30 Daniele E. Domenichelli <[email protected]>
1 Ugo Pattacini <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
YARP_math
for several devices (laserFromExternalPort
,
laserFromPointCloud
, laserFromRosTopic
).rpLidar2
device is now disabled when building with Clang.upowerBattery
device in static builds.SKIP_ACE
from ON
to OFF
INTERFACE
libraries (YARP_cv, YARP_pcl)
are now properly set (#2438).os
LogComponent
YARP_COLORED_OUTPUT
is
enabled.NameSpace
checkNetwork
timeout variant not working as checkNetwork
when NetworkBase::setLocalMode(true)
is called.---sig
PointCloudTypes
toString()
for types DataRGBA
,
DataXYZRGBA
and DataXYZNormalRGBA
.utils
depthToPC()
, values are now correctly clipped.controlboardwrapper2
networks
keyword in the XML files to favor the use
of parentheses.ffmpeg
FfmpegGrabber.cpp
that caused a segmentation
fault when using a video with audio track as a source
for the device.realsense2
yarpmotorgui
yarpmobilebasegui
yarpviz
View
-> Render options
.
This checkable option labbelled Background grid
allows to enable/disable the
background grid.yarpbatterygui
--keep-above
switch
is provided to restore this behavior.This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.1..v3.4.2
):
66 Daniele E. Domenichelli <[email protected]>
5 Bartek Łukawski <[email protected]>
3 Ettore Landini <[email protected]>
3 Silvio Traversaro <[email protected]>
3 Ugo Pattacini <[email protected]>
2 Marco Randazzo <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
YARPConfig.cmake
was removed.-f(debug|macro|file)-prefix-map
compile options are no longer exported
in the YARPConfig.cmake
file.-fsanitize
compile options is passed by the user.os
Stamp
sig
PointCloudUtils
yarp::sig::utils::depthRgbToPC
for types without alpha channel
(#1959).utils::depthToPC()
which was not properly decimating the
pointcloud given in input.FakeFrameGrabber
multipleanalogsensorsserver
measures:o
port.realsense2Tracking
realsense2Tracking
--timestamp yarp
: yarp timestamp will be used--timestamp realsense
: realsense timestamp will be usedyarp timestamp
.ovrheadset
TextureBuffer.cpp
yarpdatadumper
yarpmanager
yarprobotinterface
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.4.0..v3.4.1
):
43 Daniele E. Domenichelli <[email protected]>
7 Nicolò Genesio <[email protected]>
5 Marco Randazzo <[email protected]>
2 Bartek Łukawski <[email protected]>
2 Stefano Dafarra <[email protected]>
1 Silvio Traversaro <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
scripts/WindowsPowerShell
files are now in data/WindowsPowerShell
.scripts/yarp_completion
file is now in data/bash-completion/yarp
.yarp_prepare_plugin
INCLUDE
must now be an existing file, either using a path relative to
current directory, or an absolute path. Using a path relative to one of the
include directories is deprecated.yarp::os::getenv()
is deprecated in favour of std::getenv()
yarp::os::ConnectionState
yarp::os::ConnectionState::getLog()
method was removed without
deprecation, due to the changes to the logging system, that made it impossible
to preserve this method.yarp::os::NetworkBase
yarp::os::NetworkBase::setVerbosity
method is deprecated in favor of Log
Components.yarp::os::NetworkBase::getEnvironment()
method is deprecated in favour
of yarp::conf::environment::getEnvironment()
yarp::os::NetworkBase::setEnvironment()
method is deprecated in favour
of yarp::conf::environment::setEnvironment()
yarp::os::NetworkBase::unsetEnvironment()
method is deprecated in favour
of yarp::conf::environment::unsetEnvironment()
yarp::os::Port
yarp::os::Port::setVerbosity
method is deprecated in favour of Log
Components.yarp::os::Port::getVerbosity
method is deprecated in favour of Log
Components.yarp::os::ResourceFinder
yarp::os::ResourceFinder::setVerbose()
method is deprecated in favour of
Log Components.yarp::os::ResourceFinder::setQuiet()
method is deprecated in favour of
Log Components.yarp::os::YarpPluginSettings
yarp::os::YarpPluginSettings::setVerboseMode()
method is deprecated in
favour of Log Components.yarp::os::Log
yarp::os::Log::setLogCallback()
method is deprecated in favour of
setPrintCallback()
yarp::dev
namespace to the
yarp::dev::Nav2D
namespace
yarp::dev::Nav2D::Map2DArea
yarp::dev::Nav2D::Map2DPath
yarp::dev::Nav2D::Map2DLocation
yarp::dev::Nav2D::MapGrid2D
yarp::dev::Nav2D::MapGrid2DInfo
yarp::dev::Nav2D::Map2DPath
is now replacing std::vector<yarp::dev::Nav2D::Map2DLocation>
in all
APIs.yarp::dev::Nav2D::MapGrid2D
into yarp::dev::Nav2D::MapGrid2DInfo
:
yarp::dev::Nav2D::XYWorld yarp::dev::Nav2D::MapGrid2DInfo::cell2World(yarp::dev::Nav2D::XYCell cell) const;
yarp::dev::Nav2D::Map2DLocation yarp::dev::Nav2D::MapGrid2DInfo::toLocation(yarp::dev::Nav2D::XYCell cell) const;
yarp::dev::Nav2D::XYCell yarp::dev::Nav2D::MapGrid2DInfo::toXYCell(yarp::dev::Nav2D::Nav2D::Map2DLocation loc) const;
yarp::dev::Nav2D::XYCell yarp::dev::Nav2D::MapGrid2DInfo::world2Cell(yarp::dev::Nav2D::XYWorld world) const;
yarp::dev::Nav2D::Nav2D::Map2DLocation yarp::dev::Nav2D::MapGrid2DInfo::toLocation(yarp::dev::Nav2D::XYWorld cell) const;
yarp::dev::Nav2D::XYWorld yarp::dev::Nav2D::MapGrid2DInfo::toXYWorld(yarp::dev::Nav2D::Map2DLocation loc) const;
yarp::dev::Nav2D::INavigation2D::getAllNavigationWaypoints
method.yarp::dev::Nav2D::MapGrid2D
has been
changed. It can now include the parameters resolution <double>
and
orientation <bottle>
to adjust the map reference frame.test_grabber
device was renamed fakeFrameGrabber
.
The old name is kept for compatibility, but it will be deprecated and removed
in a future release.test_motor
was renamed fakeMotor
.
The old name is kept for compatibility, but it will be deprecated and removed
in a future release.yarp
regression
subcommand was removed.bash-completion
file is now installed automatically (#1101).YARP_COMPILE_EXAMPLES
CMake OptionYARP_ENABLE_EXAMPLES_AS_TESTS
CMake Optionyarp_add_idl
YARP_ADD_IDL_THRIFT_INCLUDE_PREFIX
and
YARP_ADD_IDL_THRIFT_NO_NAMESPACE_PREFIX
.yarp_prepare_plugin
CMAKE_INCLUDE_CURRENT_DIR
) is no longer required by the generated files.yarp::conf::clamp
. Will be replaced by std::clamp
as soon as c++17
is required in YARP.yarp/conf/environment.h
header.yarp::conf::environment::getEnvironment()
yarp::conf::environment::setEnvironment()
yarp::conf::environment::unsetEnvironment()
yarp::os::gethostname()
overload to return a std::string
yarp::os::NetworkBase
bool yarp::os::NetworkBase::isNetworkInitialized()
method.yarp::os::NetType
static std::string yarp::os::NetType::toString(yarp::conf::float32_t)
static std::string yarp::os::NetType::toString(yarp::conf::float64_t)
static yarp::conf::float32_t yarp::os::NetType::toFloat32(const std::string&)
static yarp::conf::float64_t yarp::os::NetType::toFloat64(const std::string&)
static yarp::conf::float32_t yarp::os::NetType::toFloat32(std::string&&)
static yarp::conf::float64_t yarp::os::NetType::toFloat64(std::string&&)
static std::string yarp::os::NetType::toHexString(long)
static std::string yarp::os::NetType::toHexString(unsigned int)
yarp::os::Time
bool yarp::os::Time::isClockInitialized()
method.yarp::os::Log
yarp::os::LogComponent
to define log components:
YARP_LOG_COMPONENT()
macro (in
a .cpp
file) and eventually forward declared using
YARP_DECLARE_LOG_COMPONENT()
.YARP_DEBUG_LOG_ENABLE
environment variable can be set to debug
the log of the application.YARP_COMPACT_OUTPUT
environment variable to 1
.yDebug()
macro family was
removed. A dynamic allocation is now used, but only when the size of the
output exceeds this size.-DYARP_NO_DEBUG_OUTPUT
debug should not generate any code
as well. See https://godbolt.org/z/hSAC56
yCDebug
macro family to pass a component to the logger (This
macro is also available for all log levels, and assert).[FATAL]
, and in
the component version):
yDebugOnce()
: Printed only once in the execution of the program.yDebugThreadOnce()
: Printed at most once by every thread during the
execution of the program.yDebugThrottle()
: Printed at most once every period
seconds.yDebugThreadThrottle()
: Printed at most once by every thread every period
seconds.yDebugExternalTime()
macro family to pass a timestamp generated by
an external source (This macros is also available for all log levels, in the
component version, and in the limited version):yarp::os::ManagedBytes
yarp::os::Portable
yarp::os::Portable::copyPortable()
is now const
.
The new signature is:
bool yarp::os::Portable::copyPortable(const PortWriter& writer, PortReader& reader)
yarp::os::Port
yarp::sig::ImageOf
yarp::sig::ImageOf<yarp::sig::PixelRgb>
yarp::sig::VectorOf
const_iterator yarp::sig::VectorOf::begin() const
and
const_iterator yarp::sig::VectorOf::end() const
in yarp::sig::VectorOf
class.yarp::math::Vec2D<size_t>
datatype.yarp::dev::LaserScan2D
datatype.yarp::dev::MobileBaseVelocity
datatype.yarp::dev::OdometryData
datatype.yarp::dev::OdometryData6D
datatype.yarp::dev::IPositionSensors
interface.yarp::dev::Lidar2DDeviceBase
class to use as a base class for all lidar devices.yarp::dev::Nav2D::TrajectoryTypeEnum
yarp::dev::Nav2D::ILocalization2D
interface
yarp::dev::Nav2D::ILocalization2D::startLocalizationService();
yarp::dev::Nav2D::ILocalization2D::stopLocalizationService();
yarp::dev::Nav2D::ILocalization2D::getCurrentPosition(yarp::dev::Nav2D::Map2DLocation& loc, yarp::sig::Matrix& cov);
yarp::dev::Nav2D::ILocalization2D::setInitialPose(const yarp::dev::Nav2D::Map2DLocation& loc, const yarp::sig::Matrix& cov);
yarp::dev::Nav2D::MapGrid2DInfo
which contains infos about
the name, the resolution and the origin of the map (e.g.
yarp::dev::Nav2D::MapGrid2DOrigin
) etc.yarp::dev::Nav2D::IMap2D
interface:
virtual bool yarp::dev::Nav2D::IMap2D::storePath(std::string path_name, Nav2D::Map2DPath path) = 0;
virtual bool yarp::dev::Nav2D::IMap2D::getPath(std::string path_name, Nav2D::Map2DPath& path) = 0;
virtual bool yarp::dev::Nav2D::IMap2D::getPathsList(std::vector<std::string>& paths) = 0;
virtual bool yarp::dev::Nav2D::IMap2D::deletePath(std::string path_name) = 0;
virtual bool yarp::dev::Nav2D::IMap2D::renamePath(std::string original_name, std::string new_name) = 0;
virtual bool yarp::dev::Nav2D::IMap2D::clearAllPaths() = 0;
yarp::dev::Nav2D::ILocalization2D::getEstimatedOdometry()
to
the interface yarp::dev::Nav2D::ILocalization2D
.yarp::dev::Nav2D::MapGrid2DOrigin
can now handle a generic orientation.
Previously only the translational part was handled by methods world2Cell
and
cell2World
--name
accepted
by the device.
For example yarpdev --device fakeFrameGrabber
will open the port
/grabber/quit
instead of /fakeFrameGrabber/quit
.depthimage2
portmonitor to transform a depth image
(VOCAB_PIXEL_FLOAT
format) into a rgb image, using a precomputed colormap.segmentationimage
portmonitor to transform a segmentation image
(VOCAB_PIXEL_MONO
or VOCAB_PIXEL_MONO16
) into a rgb image, using a
precomputed colormap.laserFromExternalPort
device, which is able to receive a LaserScan2D
datatype from a YARP port, and expose it as a device driver through the
IRangefinder2D
interface.laserFromPointCloud
device, which receives a depth stream through an
IRGBDSensor
sensor a produces a laser compatible stream of data from the
computed point cloud.IMURosPublisher
device. This wrapper connects to a device and
publishes a ROS topic of type sensor_msgs::Imu
.MagneticFieldRosPublisher
device. This wrapper connects to a device and
publishes a ROS topic of type sensor_msgs::MagneticField
.PoseStampedRosPublisher
device. This wrapper connects to a device and
publishes a ROS topic of type geometry_msgs::PoseStamped
.TemperatureRosPublisher
device. This wrapper connects to a device and
publishes a ROS topic of type sensor_msgs::Temperature
.WrenchStampedRosPublisher
device. This wrapper connects to a device and
publishes a ROS topic of type geometry_msgs::WrenchStamped
.upowerBattery
device to view the battery
of a linux laptop in YARP using the yarp::dev::IBattery
interface.fakeBattery
<name>/control/rpc:i
to retrieve and change the values
reported by the fake battery.fakeLaser
--use_constant
option.yarp::dev::Lidar2DDeviceBase
laserFromDepth
yarp::dev::Lidar2DDeviceBase
Localization2DServer
multipleAnalogSensorsMsgs
multipleAnalogSensorsSerializations.thrift
have been extended to handle
position sensors.multipleanalogsensorsserver
yarp::dev::IPositionSensors
interface.--subdevice
option on initial device configuration. (#2154)multipleanalogsensorsclient
yarp::dev::IPositionSensors
interface.multipleanalogsensorsremapper
yarp::dev::IPositionSensors
interface.MAS_NrOfSensorTypes
. This avoids segfaults due to uninitialized
yarp::dev::IPositionSensors
interfaces.ovrheadset
P
command to print current settings.Rangefinder2DClient
Rangefinder2DClient
now use yarp::dev::LaserScan2D
datatype.Rangefinder2DWrapper
Rangefinder2DWrapper
now use yarp::dev::LaserScan2D
datatype.rpLidar2
yarp::dev::Lidar2DDeviceBase
transformClient
transformServer
--USER_TF
option.yarp
--help
, -h
and --version
arguments are now accepted.priority-qos
subcommand that allows to set/get the packet priority
value of both the source and the destination port.priority-sched
subcommand that allows to set/get the thread
priority and policy values of both the source and the destination port.env
subcommand to print one or the full list of environment
variables.qos
subcommand is accepted as an alias to priority-qos
.sched
subcommand is accepted as an alias to priority-sched
.yarp pray
. Watch out for palindrome mode.yarprun
YARP_IS_YARPRUN
is set to 1
for all child processesYARPRUN_IS_FORWARDING_LOG
is set to 1
when yarprun is forwarding the
log and to 0
otherwiseyarpmobilebasegui
GUI which allows the user to control the
mobile base of the robot via keyboard or mouse and sends
yarp::dev::MobileBaseVelocity
commands on a yarp port.yarpmanager
yarplaserscannergui
--local
option.--debug
option.yarpdataplayer
sensor_msgs/LaserScan
nav_msgs/Odometry
tf/tfMessage
tf2_msgs/tfMessage
geometry_msgs/Pose
geometry_msgs/Pose2D
getSliderPercentage
method to the rpc port.
This method returns the progress percentage of the seek bar while playing a
dataset. (#2148)yarpview
status bar
that displays the color value of the pixel pointed by the mouse
cursor.
The string has the following format
Pixel("x","y") = "hexstring"
Where x
and y
are the coordinates of the pixel and hexstring
is the
hexadecimal (in the ARGB format) string representing the pixel color.
The additional line on the status bar
contains also a little rectangle that
will turn the same color of the currently selected pixel.yarplogger
Options
menu).remote_controlboard
/controlboardwrapper2
wraps and implements, only
excluding calibration interfaces.
In addition, two more interfaces can be accessed through the PolyDriver
idiom: IEncodersTimed
and IMotor
.EXPERIMENTAL means that the software is under development, provided with incomplete documentation and it may be modified/renamed/removed without any notice.
YARP_FORWARD_CODEINFO_ENABLE
(file name, line number and function name)YARP_FORWARD_HOSTNAME_ENABLE
(hostname)YARP_FORWARD_PROCESSINFO_ENABLE
(command, arguments, pid and thread id)YARP_FORWARD_BACKTRACE_ENABLE
(stack trace)
These environment variables could be removed in the future.YARP_robotinterface
library by refactoring
as a library the logic of the yarprobotinterface
tool, including support for
attaching devices created by the library to external devices created in some
other way.unix_stream
carriers to communicate with a
process on the same machine using a unix socket.
It's possible to use the ack
option (unix_stream+ack
) in case you need
flow control.Realsense2WithIMU
EXPERIMENTAL device.
This is a driver for Realsense D435i.Relasense2Tracking
EXPERIMENTAL device.
This is a driver for Realsense T265.laserFromRosTopic
EXPERIMENTAL device.
It exposes a lidar ROS topic (dataype sensor_msgs::LaserScan
) on YARP,
using the yarp::dev::IRangefinder2D
interface.Port
Image
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.4.0
):
470 Daniele E. Domenichelli <[email protected]>
75 Marco Randazzo <[email protected]>
27 Nicolò Genesio <[email protected]>
18 Silvio Traversaro <[email protected]>
8 Ettore Landini <[email protected]>
7 Bartek Łukawski <[email protected]>
4 Prashanth Ramadoss <[email protected]>
3 Alexandre Gomes Pereira Antunes <[email protected]>
3 Giulio Romualdi <[email protected]>
2 Andrea Ruzzenenti <[email protected]>
1 Alessandro Roncone <[email protected]>
1 Paul Fitzpatrick <[email protected]>
1 Ugo Pattacini <[email protected]>
1 Valentina Gaggero <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
os
Bottle
toString
and fromString
when writing or reading infinity, negative
infinity or nan.fromString
when reading a 64 bit integer.WireReader
Float32
from a Float64
(#2227).
This is not a common use case, but it can happen when a Float32
is written
on a file, and then read again into YARP (as a Float64
), and then restored
in the original type using copyPortable()
.Timer
Timer
in monothread mode taking 100% of the CPU.Timer
s in separate threads not updating their settings.dev
YARP_math
that should be PUBLIC
. A few headers
include YARP_math
headers.batteryClient
getVoltage()
getCurrent()
getCharge()
getTemperature()
batteryWraper
Navigation2DClient
checkNearToLocation
now correctly checks if two orientations are
similar (below a certain threshold), also considering the critical points
0, 180, 360, -180, -180, etc.controlboardwrapper2
yarp::dev::IMotor::setGearboxRatio
method via RPC.remote_controlboard
yarp::dev::IMotor::setGearboxRatio
method.yarp::dev::IInteractionMode::getInteractionModes
.fakeBattery
PeriodicThread
using 100% CPU.yarpview
yarpview
(i.e. "Save single image..." and "Save a set of images...") turns
to false when the corresponding dialogs are closed.This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.3.2..v3.3.3
):
28 Daniele E. Domenichelli <[email protected]>
2 Andrea Ruzzenenti <[email protected]>
2 Bartek Łukawski <[email protected]>
1 Ettore Landini <[email protected]>
1 Marco Randazzo <[email protected]>
1 Silvio Traversaro <[email protected]>
A (partial) list of bug fixed and issues resolved in this release can be found here.
yarpdatadumper
--type video
usbCamera
ovrheadset
CTRL
button. Both CTRL
buttons can now be pressed,
only SHIFT
will decide which eye offsets should be modified.--no-logo
option.--userpose
option.This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v3.3.1..v3.3.2
):
16 Daniele E. Domenichelli <[email protected]>
1 Ugo Pattacini <[email protected]>
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v2.0.4
):
448 Paul Fitzpatrick <[email protected]>
55 Lorenzo Natale <[email protected]>
34 YARP Developers <[email protected]>
24 Giorgio Metta <[email protected]>
1 Matteo Brunettini <[email protected]>
1 Michael Bucko <[email protected]>
This is a list of people that contributed to this release (generated from the
git history using git shortlog -ens --no-merges v2.0.4...v2.1.0
):
270 Paul Fitzpatrick <[email protected]>
52 YARP Developers <[email protected]>
34 Lorenzo Natale <[email protected]>
17 Giorgio Metta <[email protected]>
6 Alexandre Bernardino <[email protected]>
3 Michael Bucko <[email protected]>
2 Francesco Orabona <[email protected]>
1 Arjan Gijsberts <[email protected]>
1 Matteo Brunettini <[email protected]>