Skip to main content

ARMW: Agnostic Robot MiddleWare

Project description

Agnostic Robot Middleware

pipeline status coverage report Latest Release

A shim layer that will let the same code run in ROS1 and ROS2

Native Backend (No ROS Runtime Required)

You can force the new native backend at runtime:

set ARMW_MIDDLEWARE=native

The native backend supports:

  • Runtime message/service loading from ROS-compatible .msg / .srv
  • Cross-process pub/sub (local IPC first)
  • RPC service client/server
  • Parameter APIs and a native parameter server wrapper

Message Definition Search Paths

MessageFactory resolves packages from:

  1. Current working directory
  2. ROS_PACKAGE_PATH
  3. AMENT_PREFIX_PATH
  4. CMAKE_PREFIX_PATH

Package lookup checks:

  • <root>/<package>
  • <root>/src/<package>
  • <root>/share/<package>

Native Backend Configuration

Environment variables:

  • ARMW_MIDDLEWARE: backend selection (native, ros1, ros2)
  • ARMW_NATIVE_TRANSPORT: local_ipc (default) or tcp
  • ARMW_NATIVE_IPC_DIR: base directory for local IPC endpoints (default: OS temp armw_rpc directory)
  • ARMW_NATIVE_IPC_AUTHKEY: auth key for local IPC listener/client auth (default: armw)
  • ARMW_NATIVE_TCP_HOST: TCP host when using tcp transport (default: 127.0.0.1)
  • ARMW_NATIVE_TCP_BASE_PORT: base TCP port when using tcp transport (default: 45000)
  • ARMW_NATIVE_RPC_TIMEOUT: default RPC call timeout seconds (default: 2.0)
  • ARMW_NATIVE_BROKER_STARTUP_TIMEOUT: pub/sub broker startup wait seconds (default: 1.0)
  • ARMW_NATIVE_BROKER_CONNECT_TIMEOUT: pub/sub broker connect timeout seconds (default: 0.2)

These also have optional armw.globals overrides with matching names: NATIVE_TRANSPORT_MODE, NATIVE_IPC_DIR, NATIVE_IPC_AUTHKEY, NATIVE_TCP_HOST, NATIVE_TCP_BASE_PORT, NATIVE_RPC_TIMEOUT, NATIVE_BROKER_STARTUP_TIMEOUT, NATIVE_BROKER_CONNECT_TIMEOUT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

armw-2.0.1.tar.gz (71.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

armw-2.0.1-py3-none-any.whl (56.4 kB view details)

Uploaded Python 3

File details

Details for the file armw-2.0.1.tar.gz.

File metadata

  • Download URL: armw-2.0.1.tar.gz
  • Upload date:
  • Size: 71.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for armw-2.0.1.tar.gz
Algorithm Hash digest
SHA256 b3681a5f7e2de7bbe3a667235c7baa1cc064b470534f11b8908bf36b59d69edd
MD5 13ea716deecadb4aee158bd3f75d6d3b
BLAKE2b-256 f24d0620742106495f0a2c49bcf608083da1577cae10616d478d1a2f0b5f1022

See more details on using hashes here.

File details

Details for the file armw-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: armw-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 56.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for armw-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff0d830231a0106dd282faea13fb3f04f56dae0a2a1fd3c94deb565f5f16616c
MD5 93164cf1dd72da6191a47aa879235939
BLAKE2b-256 9fdc9fe23eb34c84236672d7f7e097ae256bfafa04fc2f094dfdb0f0165692b0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page