Appendix D: Glossary

One line each for the terms this book uses precisely.

The book uses these words in one sense and one sense only. Where a term looks like ordinary English but is not, the third column names the page that pins it down. Terms are listed alphabetically, ignoring backticks and capitalisation.

TermMeaningExplained in
ackA service reply. It says the request arrived and was packed, not that the change took effect; only srv/skin ever answers ok = false.Robot lifecycle
actuator echoThe actuator block in the state stream, carrying your last command back as pwm, normalized and measured. The only proof a command landed.Actuators
attachConnecting to a robot that already exists by passing Some(sys_id). Never touches srv/create and works for any robot the scene contains.System ids, and the two kinds of robot
axis conventionThe Axes tag beside every vector: UNSPECIFIED 0, UNITY 1, FRD 2, CV 3. A tag, not the authority; coord_frame_id is.Frames, axes and units
capability probeAsking a robot for a type-specific service and reading NoResponder as "this type does not serve it".Appendix C: Error reference
catalog keyThe wire name of a robot type, such as "multirotor". The catalog belongs to the scene, not the SDK, and only catalog_key() is ever put on the wire.Robot lifecycle
coord_frame_idThe authoritative string naming the frame a vector is expressed in. The only way to name a frame registered at runtime.Coordinate frames
created robotA robot the SDK spawned through manager/z/srv/create by calling connect with None. The reply carries its fresh id.System ids, and the two kinds of robot
elapsedSeconds since this robot's first state sample, monotonic, on one epoch shared by all of its streams including cameras. For printing and plotting.Timestamps and sequence numbers
FlatBuffersThe wire format for every message on both transports. Decoding verifies the buffer before reading any field.Two transports, one simulator
header frameThe frame you stamp on what you send, set by ConnectOptions::coord_frame_id, default "unity". Distinct from the robot's own frame.Frames, axes and units
iceoryx2The shared-memory transport that carries camera frames. Same host only, and it has a registry, so an entry can exist with no live publisher.Two transports, one simulator
latchWhat every command does: the last one received stays in effect until the next arrives. There is no watchdog and no expiry.Commands latch
observed versus registeredWhy a topic appears in discovery. Zenoh entries are observed, meaning they published during your window and the counters are real. iceoryx2 entries are registered, and live tells a streaming one from a dead leftover.Discovery from code
phase 0The point in the robot's next physics step at which a service change is applied, which is why an ack precedes the effect.Services and configuration
physics stepOne simulator integration tick. Commands are drained from the queue at its start; service changes land in its phase 0.Five rules that explain everything
scene-authored robotA robot the scene placed, rather than one the SDK created. Attach to it by id; cartpole, halfdrone and globalhawk exist only this way.System ids, and the two kinds of robot
seqA per-topic sequence number. A jump of more than one means dropped samples, counted in stats() as seq_gaps and missed_samples.Timestamps and sequence numbers
setpointA command read back off the z/cmd bus as a Setpoint, with its vec3 payload unconverted and in the sender's frame.Reading someone else's commands
snapshotThe State value states() returns: the latest complete sample, never torn, never blocking, never failing.Reading state
src_idWho published a message. Yours defaults to 122, must be non-zero, and 0 is reserved for the simulator; the in-game IMU panel publishes as 108.What connect actually does
sys_idWhich robot a message belongs to, and the segment after vrobots/ in every per-robot key. Allocated at scene load and incrementing across loads.System ids, and the two kinds of robot
t_nsCapture time in nanoseconds since the unix epoch, signed. The one clock shared by state snapshots and camera frames, so the two are directly subtractable.Timestamps and sequence numbers
truth / measured / believedThe three views the schema keeps apart: kin, wrench and env are simulator-exact, sensors are noisy and robot-observable, estimate is the robot's own filter belief.Truth, measured and believed
upsertThe verb mount_camera uses: add the named camera or reconfigure it, leaving every other camera on the robot alone.Mount, open and unmount
zenohThe pub/sub and query transport carrying states, commands and services. Works across a network, and has no registry, so a topic appears in discovery only if it published during your window.Two transports, one simulator

Next: The VRobots SDK Book

See also: Appendix A: Topic reference, Five rules that explain everything