- Added an experimental ROS2 API.
- Changed file structure in various places to improve comprehension and help the move to add support for ROS2.
- Removed
uuid
property fromSystem
class. - Simplified API for
SystemDescriptionManager
by dropping ability to passDockerImage
objects; instead, images must now be exclusively given their name (as a string). - Renamed
System
andSystemDescription
toAppInstance
andAppDescription
, respectively, and added anApplication
class for specifying ROS applications. - Fixed bug that caused args to be incorrectly handled in eval tags (#378).
- Added a partial implementation of ROS2LaunchManager for launching ROS2 applications (fixes #377)
- Added a common interface for ROS1 and ROS2 nodes.
- Added implementation for
CatkinMake
, and addeddeep_clean
toCatkinInterface
. - Added binary location and assumed language to node descriptions in the ROS1 launch file reader.
- Added
flake8-import-order
to tox configuration. - Added recording of ROS distributions to application descriptions (fixes #398).
- Added
description
property toAppInstance
.
- Added
restrict_to_topics
argument torecord
method ofROSCore
, allowing users to restrict bag recording to specific topics by supplying a regular expression in the same manner as therosbag
command line tool. - Improved documentation for ROSCore, its associated parts, and messages.
- Added
state
property toROSCore
along with associatedSystemState
andSystemStateProbe
classes. - Added
command
property toParameter
, responsible for recording the command, if any, that was used to obtain the concrete value for a given parameter. - Added ability to provide node-specific name remappings when using
roslaunch
through the introduction of theremappings
argument to thelaunch
method. - Added ability to specify per-node launch prefixes when using
roslaunch
via thelaunch_prefixes
argument in thelaunch
method. - Fixed mishandling of complex parameters when reading rosparam tags.
- Added reading and writing of
env
tags for launch files. - Added
to_xml_string
andto_xml_file
toLaunchConfig
. - Updated handling of
command
attributes inparam
tags during parsing of XML launch files: Only the output ofstdout
is recorded, andstderr
is now ignored. - Added handling of
$(eval ...)
tags in XML launch files.
- Added ability to specify additional environment variables when launching systems
- Allowed mypy to discover type hints via PEP 561
- Added missing type annotations
- Added ROSLaunchController for dynamically inspecting and controlling roslaunch processes
- Bug fix: Avoid abrupt container termination due to use of default
entrypoint by using
/bin/sh
as an entrypoint.
- Moved methods in
substitution
module intoArgumentResolver
class. - Added handling of executables and resources for
$(find ...)
commands. - Fixed handling of namespaces for
node
elements in XML launch files. - Fixed handling of
$(optenv ...)
tags in XML launch files. - Fixed handling of
launch-prefix
fornode
elements in XML launch files. - Fixed bad type annotation in
proxy.launch.substitution
that broke Python 3.6 compatibility. - Moved all logging from Python's built-in logging library to loguru.
- Added
to_xml_tree
method toLaunchConfig
. - Added
PackageNotFound
andLaunchFileNotFound
exception. - Added
roslaunch
property toROSCore
, which exposes aROSLaunchManager
. The manager provides variousroslaunch
-related functionality including locating, generating, parsing, flattening, and launching launch files. - Removed
launch
method fromROSCore
. Replaced withroslaunch
.
- Bug fix: Updated
proxy.substitution
module to use DockerBlade API - Containers will now raise a
SourceNotFoundError
if a given source does not exist inside the container (#338). - Container spawning no longer relies on the creation of a temporary file for storing environment variables inside the container. This allows ROSWire to work with more Docker images without the need for manual changes.
- Bag recorder now implements the
exclude_topics
parameter rather than ignoring it. - Renamed
CatkinProxy
,CatkinMakeProxy
, andCatkinToolsProxy
toCatkinInterface
,CatkinMake
, andCatkinTools
, respectively. - Renamed
ROSProxy
toROSCore
. - Renamed
BagPlayerProxy
andBagRecorderProxy
toBagPlayer
andBagRecorder
, respectively. - Renamed
ContainerProxy
andContainerManagerProxy
toContainer
andContainerManager
. - Renamed
NodeProxy
andNodeManagerProxy
toNode
andNodeManager
. - Renamed
ParameterServerProxy
toParameterServer
. - Renamed
ServiceProxy
andServiceProxyManager
toService
andServiceManager
. - Removed
client_docker
property fromROSWire
.
- Added
ports
keyword argument tolaunch
method forROSWire
, allowing users to specify an optional container-host port mapping. - Added required
sources
positional argument tolaunch
method forROSWire
and most methods forDescriptionManager
to allow user to specify the setup files that should be used by the application. - Used
dockerblade
as a dependency to reduce the size of the code base, ease maintenance, and improve cohesion.
- Created initial CHANGELOG.