Vocabulary#

Every port that dynamics publish or accept and that entries read or deliver into has a name here. The build checks every read and every target against this list. A reserved name fixes its kind, units, frame and sign now and leaves its shape open until it is built; using it is refused.

Namespace mime#

Vocabulary version 0.3.0.dev1.

Name

Kind

Units

Frame

Shape

Sign

Typical magnitude

Description

Published by

apparatus.frame_angular_velocities

state

rad/s

world

-1 x 3

none

1

the angular velocity in the world of every frame an apparatus chain’s segment names, one row per frame in the order the segment lists them, as frame_poses lists their poses: what a segment mounted on one of them reads to know how its mount turns (a spinning rotor’s bearing and gyroscopic torque). Every MIME segment publishes it, on every rung

arm, motor

apparatus.frame_poses

state

m; 1

world

-1 x 7

none

0.1

the world pose of every frame an apparatus chain’s segment names, one row per frame in the order the segment lists them: [position of the frame’s origin; orientation as a unit quaternion (w, x, y, z), frame to world]. Every rung of a segment publishes it, so mounts read it alike

arm, labx.gantry, motor

apparatus.joint_positions

state

1

none

-1

none

1

the angles in radians of a chain segment’s moving joints, in the order its description lists them. The radian is dimensionless in MIME; a prismatic joint’s position is a length in metres that this unit cannot tell from an angle, so a controller declared in this unit takes revolute joints only

arm

apparatus.joint_velocities

state

rad/s

none

-1

none

1

the rates of a chain segment’s moving joints, in the order its description lists them: radians per second, or metres per second on a prismatic joint, which this unit cannot tell from an angular rate; a dynamic segment publishes them, a kinematic one does not

none registered

apparatus.link_inertia

operator

kg m^2

world

-1 x 2 x 3 x 3

added to the inertia of the body each frame is fixed to, about its centre of mass, at the step’s start and at its end

1e-05

the inertia each of a chain segment’s frames carries beyond its own inertial, one row per frame in the order the segment lists them, at the step’s start and at its end, summed over every delivery: what a rotor unequal across its spin axis hands the frame it is mounted on, its half difference across the axis, which turns with it. A dynamic segment takes it, a kinematic one does not

not a published kind

apparatus.link_momentum

operator

N m s

world

-1 x 3

the gyroscopic torque on the body each frame is fixed to is h x omega, omega the frame’s angular velocity

0.001

the angular momentum about its spin axis of each rotor a chain segment’s frame carries, one row per frame in the order the segment lists them, summed over every delivery: what a spinner hands the frame it is mounted on, whose gyroscopic torque the segment applies at its own velocity. A dynamic segment takes it, a kinematic one does not

not a published kind

apparatus.link_wrench

load

N; N m

world

-1 x 6

on the body each frame is fixed to, about the frame’s origin

0.001

the loads on a chain segment’s frames, one row per frame in the order the segment lists them: [force; torque about the frame’s origin], summed over every delivery. The load target a dynamic segment offers, which a kinematic one does not

not a published kind

body.applied_wrench

load

N; N m

world

6

on the body, about its centre of mass

1e-06

[force; torque], summed over every law that loads the body

not a published kind

body.background_load

load

N; N m

world

6

on the body, held still in the ambient flow, about its centre of mass

1e-06

[force; torque] from the ambient flow, paired with a resistance

not a published kind

body.confinement

inequality constraint

m

world

scalar

none

none

a fixed surface the body stays on the free side of, with a margin and a velocity rule, applied by the body’s dynamics after its step; at most one per body

not a published kind

body.pose

state

m; 1

world

7

none

0.001

[position of the centre of mass; orientation as a unit quaternion (w, x, y, z), body to world]

rigid_inertial, rigid_inertial

body.resistance

operator

N s/m; N s; N m s

world

6 x 6

the load on the body is -R [velocity; angular velocity] + the background load; v.Rv >= 0

1e-06

the resistance to the body’s motion, integrated implicitly by an inertial body

not a published kind

body.twist

state

m/s; rad/s

world

6

none

0.01

[velocity of the centre of mass; angular velocity]

rigid_inertial, rigid_inertial

field.magnetic.flux_density

field

T

world

3

none

0.001

the magnetic flux density B at a point

point_dipole, uniform_rotating

field.magnetic.gradient

field

T/m

world

3 x 3

none

0.1

G_ij = dB_i/dx_j at a point, so that a moment’s force is G^T m

point_dipole, uniform_rotating

Namespace toy#

Vocabulary version 0.1.0.

Name

Kind

Units

Frame

Shape

Sign

Typical magnitude

Description

Published by

toy.body.hold_z

equality constraint

m/s

world

scalar

the body’s prescribed velocity along z

1

a prescribed velocity along z, one degree of freedom

not a published kind

toy.body.load

load

N

world

3

on the body

1

the summed load on a toy body

not a published kind

toy.body.position

state

m

world

3

none

1

a toy body’s position

toy.anchored_body, toy.body

toy.body.torque

load, reserved

N m

world

open (reserved)

on the body

none

reserved, to exercise the refusal of a reserved name

not a published kind

toy.body.velocity

state

m/s

world

3

none

1

a toy body’s velocity

toy.body

toy.field.push

field

1

world

3

none

1

a toy field, evaluated at points

toy.field

toy.medium.registration

registration

none

scalar

none

none

a body registered with a toy medium’s update

not a published kind

toy.medium.value

state

1

none

3

none

1

a toy medium’s relaxing value

toy.relaxation