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_pluginINCLUDE 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::ConnectionStateyarp::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::NetworkBaseyarp::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::Portyarp::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::ResourceFinderyarp::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::YarpPluginSettingsyarp::os::YarpPluginSettings::setVerboseMode() method is deprecated in favour of Log Components.yarp::os::Logyarp::os::Log::setLogCallback() method is deprecated in favour of setPrintCallback()yarp::dev namespace to the yarp::dev::Nav2D namespace
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.yarpregression subcommand was removed.bash-completion file is now installed automatically (#1101).YARP_COMPILE_EXAMPLES CMake OptionYARP_ENABLE_EXAMPLES_AS_TESTS CMake Optionyarp_add_idlYARP_ADD_IDL_THRIFT_INCLUDE_PREFIX and YARP_ADD_IDL_THRIFT_NO_NAMESPACE_PREFIX.yarp_prepare_pluginCMAKE_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::os::gethostname() overload to return a std::stringyarp::os::NetworkBasebool yarp::os::NetworkBase::isNetworkInitialized() method.yarp::os::NetTypestatic 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::Timebool yarp::os::Time::isClockInitialized() method.yarp::os::Logyarp::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/hSAC56yCDebug 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::ManagedBytesyarp::os::Portableyarp::os::Portable::copyPortable() is now const. The new signature is: yarp::os::Portyarp::sig::ImageOfyarp::sig::ImageOf<yarp::sig::PixelRgb>yarp::sig::VectorOfconst_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::TrajectoryTypeEnumyarp::dev::Nav2D::ILocalization2D interfaceyarp::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::Lidar2DDeviceBaselaserFromDepthyarp::dev::Lidar2DDeviceBaseLocalization2DServermultipleAnalogSensorsMsgsmultipleAnalogSensorsSerializations.thrift have been extended to handle position sensors.multipleanalogsensorsserveryarp::dev::IPositionSensors interface.--subdevice option on initial device configuration. (#2154)multipleanalogsensorsclientyarp::dev::IPositionSensors interface.multipleanalogsensorsremapperyarp::dev::IPositionSensors interface.MAS_NrOfSensorTypes. This avoids segfaults due to uninitialized yarp::dev::IPositionSensors interfaces.ovrheadsetP command to print current settings.Rangefinder2DClientRangefinder2DClient now use yarp::dev::LaserScan2D datatype.Rangefinder2DWrapperRangefinder2DWrapper now use yarp::dev::LaserScan2D datatype.rpLidar2yarp::dev::Lidar2DDeviceBasetransformClienttransformServer--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.yarprunYARP_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.yarpmanageryarplaserscannergui--local option.--debug option.yarpdataplayersensor_msgs/LaserScannav_msgs/Odometrytf/tfMessagetf2_msgs/tfMessagegeometry_msgs/Posegeometry_msgs/Pose2DgetSliderPercentage method to the rpc port. This method returns the progress percentage of the seek bar while playing a dataset. (#2148)yarpviewAdded a checkable menu item that, if checked, shows an additional line in the status bar that displays the color value of the pixel pointed by the mouse cursor. The string has the following format
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.
yarploggerOptions 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.PortImageThis 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):