Skip to content

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