robots.helyx

Helyx soft arm: three tendon-driven PCC segments, in the lab’s three geometries.

Module Attributes

GEOMETRIES

Segment rest lengths base to tip [m], and gravity in the base frame as mounted [m/s²]: side-mounted, hanging, and pointing up.

ENCODER_SIGN

Sign of each arm's motor encoders against the library convention (θ > 0 pulls a tendon).

TENDON_ANGLES

Tendon angles around the section at each segment's base [rad].

EFFICIENCY

for estimates of external forces.

MOTOR_IDS

Bus IDs of each arm's nine motors, in the motor order.

SIM_STIFFNESS

Diagonal stiffness in Δ [N/m] of the simulated arm, from an identification on a real Helyx arm, used for every three-segment arm; referred to the commanded torque (identified values referred to the delivered torque, divided by the efficiency 0.12 they were identified with).

SIM_DAMPING

Diagonal damping in Δ of the simulated arm [N·s/m], identified with the stiffness and used for every three-segment arm; referred like the stiffness.

Functions

add_dynamics(robot[, stiffness, damping])

Give the arm its stiffness and damping in Δ and gravity, for simulation.

arm([geometry, name, gravity, lengths, ...])

The arm as a robot mechanism: PCC model, tendons, lumped masses and a gravity Param.

hardware([geometry])

The arm's motors (the 290-145-145 arms belong to bimanual.hardware).

model([geometry, lengths, section_radius])

The PCC model of an arm; lengths [m], base to tip, replace the geometry's.

output_stage([motors])

The real arm's output stage: a linear pretension W ∘ θ on every motor.

tendons([efficiency, angles, spool_radius])

The tendon transmission of one arm: angles [rad] holds a row of tendons per segment.

tension_stage([floor])

The output stage for tendons that only pull: TensionFloor, which keeps the torque of every tendon at or above floor [N·m] without changing the bend.

unwind_limit(robot[, limit, stiffness])

A spring that pushes back each motor that has unwound more than limit [rad] from its start angle, with stiffness [N·m/rad].