All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
duration
:- Wrapper for importing Duration class in the same way as
rclpy
.
- Wrapper for importing Duration class in the same way as
helpers
:Publisher
,Subscriber
andTimer
decorators for ROS1 nodes.Execute
function to create node instance and spin it.
qos
:- Enum for
HistoryPolicy
.
- Enum for
uninode
:- Support for ServiceProxy/create_client.
- Very limited support for
declare_parameter()
andget_parameter()
.
uninode
:Core.duration
is deprecated. Useautopsy.duration
instead.
reconfigure
:- Remove
**{}
to make code Py2 compatible.
- Remove
uninode
:Node.__init__()
now allows to pass **kwargs that are forwarded to the base class initializer.- ROS1: Node class support for
**kwargs
.
unicode
:- Raise an
ImportError
exception when no suitable ROS package is found.
- Raise an
reconfigure
- In ROS2, FloatingPointRange and IntegerRange are used to store the variable limits and show the slider in GUI.
reconfigure
ParameterServer.getValue()
to obtain the parameter value.
- Before building the project, all uncommitted changes are stashed.
uninode
Node.Time
should now be properly used everywhere.
time
:- Keyword-only argument to
@duration
to report summary only everyinterval
. - A warning is generated when the argument is not used.
interval
can be set toNone
in order to disable automatic statistics.- Argument
filename
that stores every measurement into the file.
- Keyword-only argument to
time
:- Timer summary now also contains minimum value.
duration
:- Remove
*
from arguments to support Py2.
- Remove
qos
:- Wrapper for importing the QoS settings in the same way as
rclpy
.
- Wrapper for importing the QoS settings in the same way as
time
:- New module for measuring duration of code snippets. Port from
rosmeasure
ROS package.
- New module for measuring duration of code snippets. Port from
uninode
- Module
duration
with classDuration
that is used for timestamps in the messages.
- Module
uninode
Time()
now works properly in ROS2.
uninode
Time.now()
is now properly set in Python 3.
uninode
:- Function
wait_for_message()
with ROS2 port from rolling.
- Function
uninode
- Add missing import of
rospy
.
- Add missing import of
reconfigure
ROS_VERSION
androspy
is now properly imported fromunicore
.
uninode
:Time.to_msg()
now returns data type 'time' in ROS1 instead of the message.
uninode
:- ROS2 functions properly handle integers instead of QoSProfile.
Time.to_msg()
handles data properly.get_time()
returns float instead of long.
unicore
:- New compatibility layer to cover node spinning and initialization.
- Object
Core
:- Functions:
spin()
,spin_once()
,spin_until_future_complete()
,init()
,shutdown()
.
- Functions:
- Decorators:
@ros1_only
and@ros2_only
with an optional argument to use different function instead.
uninode
:- Parameter
tcp_nodelay
is now supported for both Publisher and Subscriber. It translates toBEST_EFFORT
and vice versa. - QoS ReliabilityPolicy is in ROS1.
- Parameter
uninode
:ROS_VERSION
is determined insideunicore
.
uninode
:- AttributeError caused by not importing Time object for ROS1.
reconfigure
:- Namespace is now used for recognizing whether the parameter being updated belongs to the current ParameterList. (This is required for ROS2.)
uninode
:- Functions for obtaining current ROS time:
get_time()
,Time.now()
, andget_clock().now()
. - Logging support using
log*
andget_logger().*
functions.
- Functions for obtaining current ROS time:
reconfigure
:- [BREAKING CHANGE] ROS1: Node name is automatically prepended to the namespace.
reconfigure
:- ROS2 is now supported.
uninode
:- Node no longer produces warnings when using unimplmented functions.
reconfigure
:- Parameters can be now used within conditions.
- Implementation of
__contains__
to supportif ... in P
. update()
now takes optional argumentonly_existing
(def.False
) to only update existing parameters.- (ROS1 only) Parameters and their values are exposed to the ROS Parameter Server.
link(ConstrainedP, ConstrainedP)
to link two parameters together. First cannot be larger then the second one.
reconfigure
:update()
now supportslist(tuple(str, any))
for ordered addition of multiple parameters.
- Readme now contains details about
update()
.
reconfigure
:- Property
callback
that runs associated function on parameter change (dynamic change only). - Function
reconfigure()
can be called with an optional parameter to set the namespace of theParameterServer
. - Operators for the parameters (at least most of them).
- Function
reconfigure()
can be passed node object to support (hopefully) ROS2.
- Property
uninode
:QoSProfile
compatible implementation for ROS1.- Support for latched publishers.
- ROS services.
- Function
get_name()
for ROS1 version of the module. ROS_VERSION
variable.- Functions not implemented are called in the current ROS version with warning.
- Documentation for the package.
reconfigure
:- Parameters are now kept in the same order as registered.
reconfigure
:- Internal class variables are properly initialized so the data are not shared between instances.
- Bool parameter is now correctly registered as boolean instead of integer.
uninode
: Default value ofqueue_size
for Subscriber is set to 10.
uninode
utility to create a compatibility layer for ROS1-ROS2 nodes.release.sh
to automatically create new release (fromng_trajectory
).Makefile
for fast working with the package (fromng_trajectory
).- Optional dependency on
rclpy
. package.xml
,CMakeLists.txt
,resource/
andsetup.cfg
to be able to build the package inside the ROS workspace.- License file.
rospy
dependency is optional.
- Support for enumerated values in
reconfigure
.
- Completely rewritten
reconfigure
utility. Now it is much simpler to use, but it is not directly backwards compatible.
reconfigure
utility to expand and enhance usability of dynamic reconfigure in Python ROS nodes.