Build a Profile from a Spec Sheet#
A Lidar generic core model profile combines manufacturer specifications, derived values and parameters that need calibration. Record each value’s source and uncertainty, then validate the profile in controlled scenes before using it to represent a device.
Before you start, see Lidar generic core model for model capabilities and USD Attributes for attribute definitions and namespaces.
Profiling workflow#
Start with published specifications, retain defaults for unavailable values, and record each value’s source. Validate the profile against recordings or controlled scenes. Calibration data, firmware behavior and proprietary post-processing may be absent from public specifications.
Record whether each parameter value is copied from a specification, derived, approximate or left at its default. See source-confidence categories for definitions.
Fields every sensor has#
The published output, update, scan or frame rate, a start delay or trigger
offset and the device’s name go to the shared omni:sensor:* attributes
(frameRate, startTime, marketName) as Shared attributes describes for every
sensor; the table below maps the remaining fields.
Map the sheet to the model#
For an OmniLidar carrying OmniSensorGenericLidarCoreAPI, map the spec
sheet to the core attributes and to the emitter-state attributes of
OmniSensorGenericLidarCoreEmitterStateAPI. Every attribute below except the
shared omni:sensor:frameRate is prefixed omni:sensor:Core:, and s#
stands for an emitter-state instance such as s001. Types and defaults are in
the generated schema reference; the Notes
column holds the spec-sheet advice and names the page that explains each
attribute in full.
The tutorials work three real sensors end to end through this table and ship the finished profiles.
Spec sheet field |
Lidar attribute |
Notes |
|---|---|---|
Scan rate or update rate |
|
The complete-scan rate as rational Hz. On a rotary sensor it also sets the
firing-pattern tick rate together with |
Rotary or solid-state scanning principle |
|
|
Horizontal and vertical field of view, angular sample positions |
|
Spec sheets often give only the field of view and the angular resolution. Build the emitter arrays from the published pattern, or from calibration data when you have it. The azimuth pair is the rotary field of view; a solid-state sensor takes its extent from the emitter arrays alone, as Configure a Firing Pattern describes. |
Rotary angular firing resolution |
|
The angular step at which the firing pattern is applied. A step that does not divide 360 evenly has consequences for anything you size per rotation; refer to fractional ticks. |
Minimum and maximum detection range |
|
A single published range becomes the |
Range precision terms |
|
The accuracy or precision figure on the sheet goes into |
Number of returns |
|
Raise it when the model should publish several returns per channel, for example when you validate against transparent or multi-surface scenes; refer to USD Attributes. |
Wavelength, peak power, pulse duration |
|
These shape intensity and radiometry, and the wavelength also affects the material’s spectral response; refer to Tune Intensity and Point Drops for what each one does. |
Beam divergence or beam waist |
|
Author the pair the sheet gives and set both values of the other pair to
|
Minimum reflectance detection claim |
|
Approximate a guaranteed-detection claim, such as a target reflectance at a published range, with this pair; refer to the detection floor. |
Verification#
Validate the profile against known targets in simple scenes before using it in a full simulation.
Check the basic geometry and the field of view against known targets.
Compare point clouds against the expected range, angular coverage and return count.
Confirm that the material, transparency, multi-return and motion settings match the behavior you are validating: the material labels on the targets,
maxReturns, and the motion settings on Motion Artifacts.
Each tutorial ends with a validation step of its own, and Sensor Definition Validation checks the parameter set against the model’s rules before you render at all.
Potential issues#
If a published property has no matching attribute, record it as an unmodeled behavior. Calibration, firmware or proprietary post-processing may account for it. Do not substitute an unrelated attribute; document any defaults or approximations used.
If several attributes appear to match a specification, check how the selected mode uses them. For divergence and beam waist, specify one pair and set the other to zero so the model derives it.
For missing or unexpectedly few returns, check validation errors, then range and intensity limits. Invalid initial parameters prevent initialization until corrected. Configure a Firing Pattern describes the array and timing requirements, and Sensor Definition Validation checks the layer before rendering. See Constrain the Field of View and Tune Intensity and Point Drops for return filtering, and empty-output troubleshooting for other causes.
Check units. The
usual lidar transcription traps are a rational Hz pair against a plain number, and
divergence in degrees against beam waist in meters: omni:sensor:frameRate is
(10, 1), not 10, and divergenceHorDeg is an angle in degrees while
beamWaistHorM is the beam radius at the waist, in meters.