Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

roswire

Read the documentation or check out the forum

ROSWire is a Python library for static and dynamic analysis of containerised Robot Operating System (ROS) applications. Given a Docker image, ROSWire provides an interface for statically querying the application (e.g., by automatically discovering its types, packages, messages, service, actions, etc.), as well as an interface for dynamically generating and interacting with instances of that application in the form of Docker containers (e.g., service calls, bag recording, topic publishing and subscribing, catkin builds, etc.).

Features

  • Does not require ROS to be installed on your machine.
  • Supports most ROS distributions out of the box (e.g., Groovy, Indigo, Kinetic, Melodic).
  • Package Discovery: finds all ROS packages within a Docker image.
  • Definition Discovery: finds and parses all message, service and action formats into readable data structures.
  • Message Serialisation: converts ROS messages from YAML or binary to readable data structures and vice versa.
  • Bag Manipulation: efficiently parses rosbag files, which can then be inspected, manipulated, and saved to disk.
  • Bag Playback: safely replay bag files inside containers.

Development

For code formatting, we now use black. To install black:

$ pip install black

Before checking code in, black should be run to reformat the code. To run black:

$ black -l 79 src test

This will reformat your code in src and test, with the maximum line length set to 79 (the PEP8 standard length)

Installation

roswire requires Python 3.6+

To avoid interfering with the rest of your system (i.e., to avoid Python's equivalent of DLL hell), we strongly recommend that ROSWire is installed within a virtualenv or pipenv (pipenv is preferred).

From within the virtual environment (i.e., the virtualenv or pipenv), the latest stable release of ROSWire on PyPI can be installed via:

(roswire) $ pip install roswire

ROSWire can also be installed from source:

$ git clone git@github.com:ChrisTimperley/roswire roswire
$ cd roswire
$ pipenv shell
(roswire) $ pip install .

About

A library for static and dynamic analysis of ROS applications via Docker πŸ”Œ

Topics

Resources

License

Packages

No packages published

Languages