Conventions and glossary¶
The rules that every part of the library follows, and the words it uses. Read it once, and come back when a sign or a unit surprises you.
Units and signs¶
SI everywhere: m, rad, s, N, N·m, kg. Degrees stay at the boundary with the hardware, in the robot’s hardware profile. A driver’s raw units (encoder ticks, motor currents) never enter the library.
A positive motor angle pulls its tendon. Each template states the sign of its robot’s encoders against this convention (
helyx.ENCODER_SIGN, one sign for each geometry,bimanual.ENCODER_SIGN, one sign, andturtle.MOTOR_SIGNS, one sign per motor). The robot’s hardware profile applies it for you; if you convert by hand, multiply raw readings and commands by it.Controllers send their torques as computed, never divided by an efficiency. A robot’s efficiency maps the commanded motor torques to the delivered ones. It is 1 by default, because the templates’ stiffness and damping were identified from the commanded torques (see Transmission efficiency).
Coordinates and forces¶
The configuration
qlives on a space, and the velocityvin its tangent space. Soqandvmay differ in size (a floating body, for example).A generalized force is
τ, actuator commands areu. Symbols are local to a page, and each page says what it uses. The one to watch isθ: a motor angle in the robot’s signals (motor_position); a joint angle in the finger and hand pages, where the motors areq; the bend of a segment in the PCC page.A spring’s deflection is
y = x − x_ref, so it pullsxtowardsx_ref. Storage givesf = −∂V/∂y, a damperf = −D ẏ, and every force reaches the robot asτ = Jᵀ f.Arrays in, arrays out: inputs accept anything array-like; outputs are numpy arrays (torch tensors from a model exported with
backend="torch").
Continuum robots¶
The arc parameter
s ∈ [0, 1]runs from the base to the tip, uniformly in rest length (the arc length while no segment stretches).A segment’s configuration is
Δ = (Dx, Dy, Dl)[m]. The base frame’szaxis runs along the straight body. See soft-arm kinematics.
Parameters¶
Every continuous number is a Param: gains, goals, attachment points, every geometric number,
masses, transmissions. Integers that fix the structure (numbers of segments, joints or tendons)
are constructor arguments. A Param’s scope is the time scale on which it may change: fixed
(never), design (with the hardware), episode (between runs), stage (at any control step).
compile keeps stage Params live and folds the others in; see parameters.
Glossary¶
- mechanism¶
A set of coordinates and the components acting on them. The robot is one mechanism, its controller another.
- coordinate¶
A smooth function of the configuration, the virtual states, the Params and time: a point, a joint angle, a distance, a projection.
- component¶
An element acting on a coordinate: storage (springs, gravity), dissipation (dampers), inertance (masses) or source (force sources, gravity compensation).
- virtual state¶
A degree of freedom of the controller itself, such as the turtle’s flywheel; it needs an inertance.
- inertance¶
A mass or an inertia on a coordinate, and the component that gives it. A virtual state needs one; a robot has its own.
- live Param¶
A Param that may change while the controller runs (scope
stage), for example withcontroller.set; the others are folded in when the controller is compiled (parameters).- law¶
A rule that changes a controller’s live Params at every step, such as
ForceTracking.- guard¶
The check of a run that sends zero torque when a reading is missing, not a number, or too old.
- site¶
A named point of a kinematic model, such as
"tip"; continuum models also accept an arc parameters.- plant¶
What the controller drives: a simulator such as
ModelPlant, or the real robot. In a plan,Problem(system, plant=robot)plans the motion of a largerrobotthan the controller’s own (see Optimize).- tank¶
An energy budget for changing a running controller: a change is applied as far as the tank pays for the energy it gives the controller, and what the controller’s dampers take refills it.
- output stage¶
An optional correction of the motor commands for real hardware: friction compensation, pretension, a tension floor, an offset or a torque limit.
- template¶
A function that builds a ready-made robot, such as
helyx.arm, with every geometric number as an argument and a Param.