Docs / Domain mappings / robot

Robots

An app that designs, simulates, tests, or trains a robot is Rig when it emits entities with POD components keyed by schema ids it supports (honors). Isaac Sim, Gazebo, MuJoCo, Webots, and the rest are fulfillments. The solver, the trainer, and the renderer are not this catalog.

ROS 2 middleware stays ros.md. There is no rig.isaac.*, rig.gazebo.*, or rig.mujoco.*.

Design

A mechanism is an rig.sim.articulation on the root link. Each link is an entity:

Fact Rig
Name rig.meta.named
Pose in the parent rig.spatial.transform + rig.spatial.relationship
Mass, centre of mass, inertia rig.sim.rigidbody
Collision rig.sim.collider
Visual rig.geometry.mesh and rig.render.material, or a rig.cad.* solid whose mesh is a bake
Joint rig.sim.joint
Motor rig.sim.actuator
Electronics rig.circuit.* / rig.pcb.* - kicad.md
Printed parts rig.print.* - print.md

inertia is six numbers about the centre of mass, body frame: ixx, iyy, izz, ixy, ixz, iyz. Mass times scene length squared.

Simulate

Compose rig.sim.world on the scene vertex. Gravity is scene units per second squared (+Y up). A body may replace it.

Contact friction and restitution live on the collider, including how two materials combine. The contact manifold does not.

Sensor Rig
Colour camera rig.spatial.camera. Frames stay in the host. A file is rig.pixel.source
Depth rig.sensor.depth on that camera
Class image rig.sensor.label on that camera. A mesh's class is rig.sensor.class
Lidar rig.sensor.lidar. The cloud stays in the host
One beam rig.sensor.range
IMU rig.sensor.imu. Orientation is the transform
Force / torque rig.sensor.wrench
GNSS rig.sensor.gnss plus rig.place.geo
Bumper rig.sim.collider sensor true. The contact list stays in the host

A save writes the current pose, the body velocity, the joint position and velocity, and the latest sensor sample. Another host can continue from that file.

Test

rig.sim.episode is one attempt. task is the name. success is the judgement. Absent success means the attempt was not judged. Tracks on the episode are what was commanded and what was recorded. Several attempts are several episode entities.

Train

rig.ai.policy names the actuators it writes and the sensors it reads. A checkpoint file is rig.media.asset_ref kind other on weights. rig.sim.domain redraws a field from a range at each reset. The episode is the take and the score.

A behavior tree (rig.ai.behavior) can call the policy by action name. It does not store the network.

Stay out

Stay out Why
Solver, iteration counts, warm starts Fulfillment. Two hosts need not reproduce one contact from the same coefficients
Contact manifolds, point clouds, images, depth buffers Host cache. The sensor component names the device and the sample at save
Network shape, optimizer, replay buffer The wiring and the checkpoint file travel. The trainer does not
Soft bodies, cloth, fluids Not a shared field set yet
rig.isaac.* / rig.gazebo.* / rig.mujoco.* / rig.webots.* Product names stay out of schema ids

Example

examples/robot-lab.json — a bench with Earth gravity, a fixed-base arm, a wrist wrench, a range beam, a class camera, a GNSS fix, a mass range for reset, a policy, and a failed reach test.