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.2.tar.gz (72.7 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.2-py3-none-any.whl (56.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: armw-2.0.2.tar.gz
  • Upload date:
  • Size: 72.7 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.2.tar.gz
Algorithm Hash digest
SHA256 14134d90e9f71b12e9a6e8a03e12b43fbbe9f4452cc477082286feb84646659e
MD5 3e1a29ac39dc7a81c742c9669172dc82
BLAKE2b-256 9fed64b93a63335d03261c6b933c5b70adb6e84ffd37cd7d4d61fc2cb2600b66

See more details on using hashes here.

File details

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

File metadata

  • Download URL: armw-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 56.8 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a8c09bc41935af027a3297a53c6693712ab6c0b368ba5c95528b70257a2fecb
MD5 cf43130231c51d9e0efb5a01c566c52b
BLAKE2b-256 701ac1beaf5318e63c2ccd58e272e17dc70d0a0a15685ee3e41ef07840cee5ce

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