docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Generic 3D Lidar

    The main purpose of this Prefab is to let the user define their own specifications for a standard mechanical 3D lidar. The term mechanical here means that it's a laser rotated by a dc motor. A 3D lidar is a lidar that scans on several planes with multiple beams.

    Generic 3D Lidar

    Generic 3D Lidar with FoV

    The sensor library provides a second Prefab using the same system graph to demonstrates how to use the Horizontal FoV property to emulate lidars with non-360 horizontal field of views.

    Generic 3D Lidar with FoV

    Implementation details

    Warning

    This sensor has a node that uses DXR and will not function without a compatible graphics card. See requirements for more details. For a lidar implementation that does not require DXR, see Camera-Based Lidar.

    This lidar samples the scene using path tracing. The initial position (0 degree) of the lidar is toward its positive Z axis. The rays orientation is interpolated using the previous rotation and the current rotation. This interpolation is driven by the sampling rate. The heuristic algorithm in the shader assumes the photosensor will rotate on itself.

    It's possible to sample all beams at the same time (all at the same orientation) or interpolate the rotation between each sample (see IsCellsSync input below).

    When the scene is sampled, the photosensor rotates on itself but everything else is static (including the photosensor position). To avoid having too many samples sampling a static scene, it's important to keep the simulation update time (dt) as small as possible.

    Inputs

    Input Description
    SamplingRate Defines the number of samples per second the photosensor must take.
    RotationSpeedHz The photosensor rotation speed represents the number of turns per second the object will rotate on itself around the Y axis.
    Horizontal FoV The azimuth angle between 0 and 360 degrees that the lidar covers.
    MinRange Sets the minimum range registered by the device.
    MaxRange Sets the maximum range registered by the device. Every sample outside the max range will have a distance of 0 meters.
    sensitivity Sets a minimum radiant energy threshold in watts/m^2. Under this threshold, the measurement is considered invalid. A threshold value of 0 means no threshold.
    MotorSpeedVariation The standard deviation of the motor speed.
    MotorTimeConstant The time required to reach 63% of the max RPM for the motor.
    MotorTurnCW When selected, indicates the motor turns clockwise.

    Outputs

    Output Description
    PointCloud A render texture with the (x, y, z) position for each pixel. The lidar frame is spread from left to right in the texture. To know the point count, one can look at the count value in this structure.
    Intensity A corresponding render texture with the perceived intensity for each pixel.
    OutTranscode Provides a context for executing sampling custom passes, which then passes through the GPU processing pipeline.
    In This Article
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)