Skip to main content

Agnostic Robot Middleware

pipeline status coverage report Latest Release

ARMW is a Python shim layer for writing robot middleware code that can run on ROS 1, ROS 2, or ARMW's native backend (which has no external dependencies) with the same application-facing API.

Use ARMW when you want node code to depend on a small compatibility layer instead of directly depending on rospy or rclpy.

Quick Start

Install the package from PyPi:

pip install armw

Or locally after cloning (-e for editable mode):

pip install -e .

Select a backend explicitly when you want deterministic behavior:

export ARMW_MIDDLEWARE=native

On Windows PowerShell:

$env:ARMW_MIDDLEWARE = "native"

Create and run a minimal node:

import armw


class MinimalNode(armw.ArmwNode):
    def __init__(self):
        super().__init__("minimal_node")
        self.log_info("minimal_node started")


if __name__ == "__main__":
    armw.run_node(MinimalNode, node_name="minimal_node")

More complete guides are in docs/:

Backend Selection

ARMW chooses a middleware backend at import time.

Set ARMW_MIDDLEWARE to force one of:

  • native
  • ros1
  • ros2

If ARMW_MIDDLEWARE is not set, ARMW tries to detect ROS 1 first, then ROS 2. The native backend is best for tests and local processes that do not need a ROS runtime.

Metadata

Release files for armw 3.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for armw 3.0.1
File Size Uploaded
armw-3.0.1.tar.gz 145.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for armw 3.0.1
File Interpreter ABI Platform
armw-3.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 334.3 kB

Release files / armw-3.0.1.tar.gz

Download URL armw-3.0.1.tar.gz
Size 145.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ccfa8b635e5ff4779984cacb0d6ce4e3e5f4958902c62f4672b8a286be7292ba
BLAKE2b-256 checksum
How to use checksums
ff15405d3f835d11a26c1a74c746d61b053d7caead258840891dffcd43b79f4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.5

Release files / armw-3.0.1-py3-none-any.whl

Download URL armw-3.0.1-py3-none-any.whl
Size 188.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ab4b5309804e6eb943078f81a853b895ea706b5b8863e36a5e3d2887fa0a254
BLAKE2b-256 checksum
How to use checksums
98a197ed9d5b36df2ba9e1612783a11460b9537bcca424e01781ccd6fea81fca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.5

Release history Release notifications | RSS feed

This release

3.0.1 This release

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page