Skip to main content
Move a Rotrics Dexarm to press a DUT’s buttons, place a fixture, or actuate anything a test needs a physical hand for. All coordinates are millimetres.

Handle

Methods

Types

ArmPosition

Method Reference

position() -> Result<ArmPosition>

The current end-effector position, in millimetres.

move_to(x: f64, y: f64, z: f64) -> Result<ArmPosition>

Absolute move.
Returns: the position after the move.

move_by(dx: f64, dy: f64, dz: f64) -> Result<ArmPosition>

Relative move; returns the new position.

move_to_with_timeout(...) and move_by_with_timeout(...)

The same moves with an explicit box-side timeout in seconds, for a move that needs longer than the default 15. The client widens its own HTTP budget to match.

go_home() -> Result<()>

Move to the home position, X0 Y300 Z0.

enable_motor() -> Result<()> and disable_motor() -> Result<()>

Energize or release the steppers.
A released arm is back-driveable and will sag under its own weight. Do not leave the motors disabled with the arm over a workpiece or a populated board.

read_and_save_position() -> Result<ArmPosition>

Read the current position and persist it on the arm.

set_acceleration(acceleration: u32, travel_acceleration: u32, retract_acceleration: u32) -> Result<()>

Set acceleration values in mm/s2.

Examples

Press a button and check the DUT saw it

Supported Hardware

Notes

  • Coordinates are millimetres, and the arm enforces its own workspace bounds. An out-of-range target is refused, not clamped.
  • Moves block on the box until the arm arrives, so a move is not something to poll around. The box-side default move timeout is 15 seconds.
  • Non-move actions get a flat 45-second client budget, because they still touch the serial port and may queue behind a move on the device lock.
  • The arm is physical and has no collision detection. Clear its workspace before letting a test run unattended.