Skip to content

enactic/dora-openarm

Repository files navigation

dora-openarm

A Dora node that controls OpenArm.

Usage

Use this node from a dora-rs dataflow configuration. For a full configuration example, see enactic/dora-openarm-data-collection.

nodes:
  # ...
  - id: follower-right
    build: pip install dora-openarm
    path: dora-openarm
    args: "--side right --align-trigger gripper"
    inputs:
      # Only the event ID is used. The event value is ignored.
      request_position: leader/right_follower_position
      move_position: leader/right_follower_position
    outputs:
      - position
      - status

  - id: follower-left
    build: pip install dora-openarm
    path: dora-openarm
    args: "--side left --align-trigger gripper"
    inputs:
      # Only the event ID is used. The event value is ignored.
      request_position: leader/left_follower_position
      move_position: leader/left_follower_position
    outputs:
      - position
      - status
  # ...

Node arguments

Argument Description
--side OpenArm side to control. Default: right.
--config Path to the OpenArm configuration file. Default: openarm_cell.yaml.
--align-trigger Optional trigger for the initial alignment step. Supported value: gripper.
--align-threshold Alignment threshold in radians. Default: 0.1.
--[no-]stop Whether to stop the arm when the node exits. Default: controlled by the STOP environment variable, or true when it is unset.
--[no-]refresh-every-request Whether to refresh OpenArm state before each request. Default: controlled by the REFRESH environment variable, or true when it is unset.

Inputs

Input Description
request_position Requests the current arm position. The event ID is used and the event value is ignored.
request_state Requests the current arm state. The event ID is used and the event value is ignored.
move_position Sends a new target position to the arm. The value may be a position array directly, or a struct containing new_position. When the node has not been initialized yet, this input first drives the alignment step.

Outputs

Output Description
position Current arm position as a float32 array.
state Current arm state as a struct with float32 array fields qpos, qvel, and qtorque, plus int32 array fields tmos (MOS temperature) and trotor (rotor temperature) per motor, in °C.
status A string array containing ready once the initial alignment completes.

License

Licensed under the Apache License 2.0. See LICENSE for details.

Copyright 2026 Enactic, Inc.

Code of Conduct

All participation in the OpenArm project is governed by our Code of Conduct.

About

dora-rs node to control OpenArm

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors