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
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.