Schemas¶
A component schema is an applied API schema whose attributes sit in the nexus: namespace. The build resolves each one a prim applies to its class, and passes each attribute as a keyword argument of the same name in snake case: nexus:accNoise becomes acc_noise. An attribute the prim doesn't author takes the default below.
Each component schema states the role its component fills: it includes a role schema, such as NexusSensorRoleAPI, as a built-in, and its section below names that role. The role places the component. A sensor sits on its mount prim, a geometry prim under the rigid body it rides, which Newton loads as a site. The controller and the estimator each sit on a Scope of its own whose parent is the vehicle's root prim. A force element, such as a propeller, sits where its own schema says. A schema that states no role, or two, fails the build and names the prim and the schema. A project's own component schema includes a role schema the same way. A peer's schema, such as NexusPx4SitlAPI, states no role, since it defines no attribute.
This page comes from the schema plugin that ships with nexus, so it lists what the build accepts. An authored nexus: attribute that no applied schema defines fails the build and names the prim.
A schema changes only by a new version, which OpenUSD names with a suffix: NexusImuAPI, then NexusImuAPI_1. A version can gain an attribute with a default. A renamed or removed attribute, or a new type, default or unit, makes a new version, and its section below states what changed. A prim that applies a version this release doesn't define fails the build, and the message names the prim, the version, and the nexus version.
NexusImuAPI¶
An inertial measurement unit on its mount prim, a geometry prim under the body it rides, which Newton loads as a site: an accelerometer and a gyroscope, each with white noise.
Applies to: Gprim.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:accNoise |
float |
0.02 |
meters per second squared | [0, inf) | Standard deviation of the white noise on each accelerometer axis, per sample. |
nexus:gyroNoise |
float |
0.02 |
radians per second | [0, inf) | Standard deviation of the white noise on each gyroscope axis, per sample. |
nexus:rate |
float |
0 |
hertz | [0, inf) | How often the sensor gives a new sample. 0 gives one every control tick. |
NexusMagAPI¶
A magnetometer on its mount prim, a geometry prim at the origin of the body it rides, which Newton loads as a site: the scene's magnetic field in the body's axes, with an offset and white noise.
Applies to: Gprim.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:noise |
float3 |
(0.02, 0.02, 0.03) |
gauss | [0, inf) | Standard deviation of the white noise on each body axis, per sample. |
nexus:offset |
float3 |
(0, 0, 0) |
gauss | (-inf, inf) | A constant offset added to the field on each body axis. |
nexus:rate |
float |
0 |
hertz | [0, inf) | How often the sensor gives a new sample. 0 gives one every control tick. |
NexusBaroAPI¶
A barometer on its mount prim, a geometry prim at the origin of the body it rides, which Newton loads as a site: the scene's pressure at sea level brought to the body's altitude, with white noise.
Applies to: Gprim.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:noise |
float |
0.02 |
hectopascals | [0, inf) | Standard deviation of the white noise on the pressure, per sample. |
nexus:rate |
float |
0 |
hertz | [0, inf) | How often the sensor gives a new sample. 0 gives one every control tick. |
NexusGpsAPI¶
A Global Positioning System (GPS) receiver on its mount prim, a geometry prim at the origin of the body it rides, which Newton loads as a site: the body's position and velocity from the scene's geodetic origin.
Applies to: Gprim.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:fixType |
int |
3 |
none | [0, 8] | The fix the receiver reports, a MAVLink GPS_FIX_TYPE value: 3 is a 3D fix. |
nexus:rate |
float |
0 |
hertz | [0, inf) | How often the sensor gives a new sample. 0 gives one every control tick. |
NexusCameraAPI¶
A color camera on a Camera prim, which gives its optics and its mount. The Kit render peer renders it, and no vehicle names that peer: the camera's class requires it.
Applies to: Camera.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:height |
int |
720 |
pixels | [1, inf) | Height of the image. |
nexus:rate |
float |
24 |
hertz | [0, inf) | How often the sensor gives a new frame, on sim time. |
nexus:width |
int |
1280 |
pixels | [1, inf) | Width of the image. |
NexusThermalCameraAPI¶
A Long Wave Infrared (LWIR) camera on a Camera prim, which gives its optics and its mount. The Kit render peer renders it at half the declared size on each side, and the camera's class requires that peer.
Applies to: Camera.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:height |
int |
1024 |
pixels | [2, inf) | Height of the render, twice the height of the image. |
nexus:rate |
float |
24 |
hertz | [0, inf) | How often the sensor gives a new frame, on sim time. |
nexus:width |
int |
1280 |
pixels | [2, inf) | Width of the render, twice the width of the image. |
NexusLidarAPI¶
A lidar on an OmniLidar prim, which gives its scan pattern and its mount. The Kit render peer renders it, and the lidar's class requires that peer.
Applies to: OmniLidar.
Role: sensor.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:rate |
float |
10 |
hertz | [0, inf) | How often the sensor gives a full scan, on sim time. |
NexusPropellerAPI¶
A propeller on its rotor's rigid body, the child body of the rotor's revolute joint: its thrust, its reaction torque and its in-plane drag, from the rotor's speed and the airflow at its hub.
Applies to: Xformable.
Role: force.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:aeroH |
float |
0 |
kilograms per meter | [0, inf) | Thrust lost in forward flight: the thrust falls by this value times the square of the airflow speed in the rotor's plane. At 0 the thrust depends on the rotor speed alone. |
nexus:aeroHforce |
float |
0 |
kilograms per radian | [0, inf) | In-plane drag of the rotor: a force against the airflow in the rotor's plane, of this value times the rotor speed times the airflow speed. |
nexus:cd |
float |
0 |
meters | [0, inf) | Reaction torque per unit of thrust: the drag torque about the rotor's axis is this value times the thrust. |
nexus:ct |
float |
0 |
newtons per (revolution per minute) squared | [0, inf) | Thrust coefficient: the static thrust is this value times the square of the rotor speed in revolutions per minute. At 0 the propeller makes no thrust. |
NexusEscAPI¶
An Electronic Speed Controller (ESC) on its rotor's rigid body, beside the rotor's propeller: it turns one entry of the controller's controls into the speed target and the drag feedforward of the Newton motor that drives the rotor's joint.
Applies to: Xformable.
Role: command.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:channel |
int |
0 |
none | [0, inf) | The entry of the controls this ESC reads, counted from 0: the rotor's output channel, PX4's motor number minus one. No two ESCs of one vehicle share a channel. |
NexusPx4API_1¶
PX4 flies the vehicle over its Software In The Loop (SITL) link, on the controller's Scope, a child of the vehicle's root prim named Controller by convention. Version 1 leaves the airframe to the PX4 SITL peer, NexusPx4SitlAPI.
Applies to: Scope.
Role: controller.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:inputs:baro |
relationship |
The barometer whose sample PX4 receives, where the vehicle declares more than one. | |||
nexus:inputs:gps |
relationship |
The Global Positioning System (GPS) receiver whose sample PX4 receives, where the vehicle declares more than one. | |||
nexus:inputs:imu |
relationship |
The Inertial Measurement Unit (IMU) whose sample PX4 receives, where the vehicle declares more than one. | |||
nexus:inputs:mag |
relationship |
The magnetometer whose sample PX4 receives, where the vehicle declares more than one. |
NexusPx4SitlAPI¶
The PX4 Software In The Loop (SITL) peer, on a Scope of its own under the vehicle's root prim, named Px4Sitl by convention: the run starts PX4 SITL on its airframe and stops it with the run. A layer that deactivates its prim flies an autopilot started elsewhere, which dials instance 0's Hardware In The Loop (HIL) port, 4560.
Applies to: Scope.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:airframe |
string |
`` | none | a PX4 SITL airframe name | The SITL airframe make target without PX4's none_ prefix: astro_max runs make px4_sitl none_astro_max. The build fails when it is empty, before any peer starts. |
NexusSceneAPI¶
Where a scene sits on Earth and the world's values that follow from it, on the scene's PhysicsScene prim. A run's build fails on a scene whose PhysicsScene authors no origin, and an override layer moves it. Each value is an attribute of Newton's model at world frequency, in its nexus namespace, which the sensors read.
Applies to: PhysicsScene.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
nexus:geodeticOrigin |
double3 |
None |
degrees, degrees, metres | latitude [-90, 90], longitude [-180, 180], altitude any | The WGS84 point the scene's world origin sits at: latitude, longitude and the altitude over mean sea level. For a streamed globe the altitude is the surface's ellipsoidal height, so the street sits at the world origin. |
nexus:magneticField |
float3 |
None |
gauss | (-inf, inf) | Earth's magnetic field in the world's axes, X north, Y west, Z up. Unauthored, the build derives it from the origin through the World Magnetic Model table PX4 checks against. |
nexus:seaLevelPressure |
float |
1013.25 |
hectopascals | (0, inf) | Air pressure at mean sea level, which a barometer brings to its body's altitude through the standard atmosphere. |
nexus:temperature |
float |
25 |
degrees Celsius | (-273.15, inf) | Air temperature, which a barometer reports. |
NexusSensorRoleAPI¶
The sensor role, which a sensor's schema includes as a built-in. A sensor sits on its mount prim, whose parent is the rigid body it rides, and runs in the sensors' place in the tick.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
NexusEstimatorRoleAPI¶
The estimator role, which an estimator's schema includes as a built-in. An estimator sits on a Scope of its own whose parent is the vehicle's root prim, named Estimator by convention, and writes the estimate after the sensors in the tick. A vehicle declares one estimator at most.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
NexusControllerRoleAPI¶
The controller role, which a controller's schema includes as a built-in. A controller sits on a Scope of its own whose parent is the vehicle's root prim, named Controller by convention. A vehicle declares one controller.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
NexusForceRoleAPI¶
The force element's role, which the schema of a part that applies a force includes as a built-in, as a propeller's does.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
NexusGuidanceRoleAPI¶
The guidance role, which a guidance's schema includes as a built-in. A guidance sits on a Scope of its own whose parent is the vehicle's root prim, named Guidance by convention, and writes the setpoint before the controller in the tick. A vehicle declares one guidance at most.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|
NexusCommandRoleAPI¶
The command element's role, which the schema of a part that turns the controls into Newton's control inputs includes as a built-in. A command element runs before the force elements on each physics substep.
Applies to: any prim.
| Property | Type | Default | Units | Range | Description |
|---|---|---|---|---|---|