Class LidarController
A LidarController is a device that control an electric motor and a photosensor to throw laser beams to measure the distance and/or intensity.
Inherited Members
Namespace: Mechatronics.SensorSDK
Assembly: solution.dll
Syntax
[NodeCategory("Controller", "Lidar Controller", NodeTick.Synchronous, (LifeCycle)0, 0, NodeMode.Standard, false)]
public class LidarController : NodeRuntime
Fields
| Name | Description |
|---|---|
| _fireIdxToBeamIdx | A buffer mapping an index in the sorted firing sequence to a beam index in the laser config. |
| _firstBeam | The frame index, trigger index and beam index of the next trigger event in a full revolution. |
| _frameStart | The time in the current frame, normalized so that one unit is one frame. Can be negative. |
| _isTriggerPeriodChanged | Specifies that something change the trigger period. Everything dependent to it should be updated. |
| _samplingRequest | This structure is used to send sampling request to a photosensor |
| _sortedFiringSequence | Gives the delay for each beam to fire when it's time to sample the simulation, in chronological order. |
| _triggerSequence | This buffer describe when the photosensor will launch a firing sequence. Sorted in chronological order. |
| frameHeight | |
| frameWidth | |
| horizontalFoV | |
| laserConfig | Contain all information relative to the laser configuration (orientation, offsets and firing sequence) |
| laserConfigBinding | Define where the beam are positioned, oriented and their firing sequence. |
| motorSpeed | |
| rotationRate | |
| samplingRate | |
| samplingRequest |
Properties
| Name | Description |
|---|---|
| BeamCount | The number of fired beams per trigger. |
| FiringSequence | Return the firing sequence out of the laser configuration, sorted in output (elevation) order. |
| FramePeriod | The time, in seconds, between consecutive frames. |
| HorizontalFoVRatio | The fraction of the horizontal field-of-view covered by the lidar, in (0, 1]. |
| MotorSpeed | Speed, in rotations per minute (RPM). |
| TriggerCount | The number of triggers per frame. |
| TriggerPeriod | The time, in seconds, between consecutive triggers. |
Methods
| Name | Description |
|---|---|
| AreInputsValid() | Determines if the inputs value allow execution of an OnTick call. |
| Disable() | Disable change event on ports |
| Enable(ClockState) | Initialize the controller and enable change event on beams port. |
| GenerateOutputs(double, double) | Generates the sampling request between the two given times, and write all outputs. |
| OnLaserConfigChanged(object, EventArgs) | Indicates the laser configuration has changed for the next OnTick call. |
| OnTick(double, double, ClockState, Signal) | OnTick event received from the scheduler for this node waveform. This is received for every rising edge of the waveform at the frequency configured in the scheduler. |
| ResetIfNeeded() | Resets the internal state of the controller if any input has changed, to stay consistent. |
| SetTriggerPeriodChanged() | Indicates any input affecting the firing sequence computation has changed for the next OnTick call. |