RLS Studios
ProjectsPatreonCommunityDocsAbout
Join Patreon
BeamNG Modding Docs

Guides

Reference

server/commands - Camera & Input Commandsge_utils - Game Engine Utility Functionsmain.lua - GE Lua Entry Point & Game Loopmap.lua - Navigation Graph (AI Road Map)screenshot.lua - Screenshot Systemserver/server - Level Loading & Game ServerserverConnection - Client-Server Connection Manager`setSpawnpoint` - Default Spawn Point Persistence`simTimeAuthority` - Simulation Time & Bullet Time Control`spawn` - Vehicle Spawning & Safe Placement`suspensionFrequencyTester` - Suspension Natural Frequency Analysis
`adasUltrasonic.lua``cameraPreview.lua``capturePlayer.lua``license.lua``lidarTest.lua``multiscreen.lua``openDriveExporter.lua``openStreetMapExporter.lua``partAnnotations.lua``platoonFunctions.lua``pythonExport.lua``rawLidar.lua``rawLidarEmpty.lua``sensors.lua``sumoExporter.lua``techCore.lua``terrainImporter.lua``ultrasonicTest.lua``utils.lua`

UI

Resources

BeamNG Game Engine Lua Cheat SheetGE Developer RecipesMCP Server Setup

// RLS.STUDIOS=true

Premium Mods for BeamNG.drive. Career systems, custom vehicles, and immersive gameplay experiences.

Index

HomeProjectsPatreon

Socials

DiscordPatreon (RLS)Patreon (Vehicles)

© 2026 RLS Studios. All rights reserved.

Modding since 2024

API ReferenceGE Extensionstech

`sensors.lua`

> This Source Code Form is subject to the terms of the bCDDL, v. 1.1.

This Source Code Form is subject to the terms of the bCDDL, v. 1.1. If a copy of the bCDDL was not distributed with this file, You can obtain one at http://beamng.com/bCDDL-1.1.txt

Module variable: M

Dependencies

  • buffer ← string.buffer

Hooks

  • onSensorRemoved
  • onUpdate
  • onDeserialized
  • onVehicleDestroyed

Exported Functions

M.updateLuaSensorConfiguration(sensorType, sensorId, conf, vid)

Line 54

Returns: Research.GpuRequestManager.isAdHocGpuRequestComplete(requestId) end

M.getSensorName(sensorType, sensorId)

Line 1389

Returns: activeSensors

M.getSensorConfiguration(sensorType, sensorId)

Line 1416

Returns: activeSensors

M.getActiveSensors()

Line 1430

Returns: end

M.onSensorRemoved(sensorType, sensorId)

Line 1515

Returns: end

M.doesSensorExist(sensorId)

Line 94

Public interface: General sensor functions.

Returns: Research.SensorManager.doesSensorExist(sensorId)

M.removeSensor(sensorId)

Line 98

M.removeAllSensorsFromVehicle(vid)

Line 108

M.getAverageUpdateTime(sensorId)

Line 115

GPU manager functions.

Returns: Research.GpuRequestManager.getAverageUpdateTime(sensorId)

M.getMaxLoadPerFrame()

Line 119

Returns: Research.GpuRequestManager.getMaxLoadPerFrame()

M.setMaxLoadPerFrame(maxLoadPerFrame)

Line 123

M.sendCameraRequest(sensorId)

Line 128

Ad-hoc polling functions.

M.sendLidarRequest(sensorId)

Line 129

M.sendUltrasonicRequest(sensorId)

Line 130

M.sendRadarRequest(sensorId)

Line 131

M.collectCameraRequest(requestId)

Line 133

M.collectLidarRequest(requestId)

Line 135

M.collectUltrasonicRequest(requestId)

Line 136

M.collectRadarRequest(requestId)

Line 137

M.isRequestComplete(requestId)

Line 139

M.sendAdvancedIMURequest(sensorId, vid)

Line 158

Ad-hoc sensor reading functions (for Lua sensors with a vlua controller).

Returns: requestId

M.collectAdvancedIMURequest(requestId)

Line 165

Returns: false

M.sendGPSRequest(sensorId, vid)

Line 174

Returns: requestId

M.collectGPSRequest(requestId)

Line 181

Returns: false

M.sendPowertrainRequest(sensorId, vid)

Line 190

Returns: requestId

M.collectPowertrainRequest(requestId)

Line 197

Returns: false

M.sendIdealRADARRequest(sensorId, vid)

Line 206

Returns: requestId

M.collectIdealRADARRequest(requestId)

Line 213

Returns: false

M.sendRoadsSensorRequest(sensorId, vid)

Line 222

Returns: requestId

M.collectRoadsSensorRequest(requestId)

Line 229

Returns: false

M.sendMeshRequest(sensorId, vid)

Line 238

Returns: requestId

M.collectMeshRequest(requestId)

Line 245

Returns: false

M.attachSensor(sensorId, pos, dir, up, vid, isSensorStatic, isSnappingDesired, forceInsideTriangle, isAllowWheelNodes, isDirWorldSpace)

Line 261

Sensor matrix manager functions.

M.getSensorMatrix(sensorId)

Line 265

Returns: Research.SensorMatrixManager.getSensorMatrixExternal(sensorId)

M.getWorldFrame(sensorId)

Line 269

Returns: Research.SensorMatrixManager.getWorldFrameVectors(sensorId)

M.getLocalFrame(sensorId)

Line 273

Returns: Research.SensorMatrixManager.getLocalFrameVectors(sensorId)

M.getBeamData(vid)

Line 277

Vehicle mesh functions (direct from gameengine).

Returns: beams

M.getFullTriangleData(vid)

Line 289

Returns: triangles

M.getWheelTriangleData(vid, wheelIndex)

Line 301

Returns: triangles

M.getNodePositions(vid, nodeId)

Line 313

Returns: Research.SensorMatrixManager.getNodePositions(vehicleId)

M.getClosestMeshPointToGivenPoint(vid, point)

Line 318

Returns: Research.SensorMatrixManager.getClosestMeshPointToGivenPoint(vehicleId, point)

M.getClosestTriangle(vid, point, includeWheelNodes)

Line 323

Returns: Research.SensorMatrixManager.getClosestTriangle(vehicleId, point, includeWheelNodes)

M.createCamera(vid, args)

Line 328

Camera-specific sensor functions.

Returns: sensorId

M.createCameraWithSharedMemory(vid, args)

Line 334

Returns: sensorId

M.getCameraImage(sensorId)

Line 340

Returns: cameraBufferColors[sensorId]

M.getCameraAnnotations(sensorId)

Line 346

Returns: cameraBufferAnnotations[sensorId]

M.getCameraDepth(sensorId)

Line 352

Returns: cameraBufferDepth[sensorId]

M.getCameraDataShmem(sensorId)

Line 365

Returns: Research.Camera.getLastCameraDataShmem(sensorId)

M.getCameraSensorName(sensorId)

Line 386

Returns: Research.Camera.getSensorName(sensorId)

M.getCameraSensorPosition(sensorId)

Line 390

Returns: Research.Camera.getSensorPosition(sensorId)

M.getCameraSensorDirection(sensorId)

Line 394

Returns: Research.Camera.getSensorDirection(sensorId)

M.getCameraMaxPendingGpuRequests(sensorId)

Line 398

Returns: Research.Camera.getMaxPendingGpuRequests(sensorId)

M.getCameraRequestedUpdateTime(sensorId)

Line 402

Returns: Research.Camera.getRequestedUpdateTime(sensorId)

M.getCameraUpdatePriority(sensorId)

Line 406

Returns: Research.Camera.getUpdatePriority(sensorId)

M.getCameraSize(sensorId)

Line 410

Returns: Research.Camera.getSize(sensorId)

M.getActiveCameraSensors()

Line 414

Returns: Research.Camera.getActiveCameraSensors()

M.setCameraSensorDirection(sensorId, dir)

Line 420

M.setCameraSensorUp(sensorId, dir)

Line 421

M.setCameraSensorResolution(sensorId, x, y)

Line 422

M.setCameraSensorFOVX(sensorId, x)

Line 423

M.setCameraSensorNearFarPlanes(sensorId, pNear, pFar)

Line 424

M.setCameraMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)

Line 426

M.setCameraRequestedUpdateTime(sensorId, requestedUpdateTime)

Line 430

M.setCameraUpdatePriority(sensorId, priority)

Line 434

M.convertWorldPointToPixel(sensorId, point)

Line 438

Returns: Research.Camera.convertWorldPointToPixel(sensorId, point)

M.createLidar(vid, args)

Line 504

LiDAR-specific sensor functions.

Returns: result

M.createLidarWithSharedMemory(vid, args)

Line 510

Returns: result

M.getLidarPointCloudShmem(sensorId)

Line 547

Returns: Research.Lidar.getLastPointCloudDataShmem(sensorId)

M.getLidarColourDataShmem(sensorId)

Line 551

Returns: Research.Lidar.getLastColourDataShmem(sensorId)

M.getActiveLidarSensors()

Line 555

Returns: Research.Lidar.getActiveLidarSensors()

M.getLidarSensorName(sensorId)

Line 559

Returns: Research.Lidar.getSensorName(sensorId)

M.getLidarSensorPosition(sensorId)

Line 563

Returns: Research.Lidar.getSensorPosition(sensorId)

M.getLidarSensorDirection(sensorId)

Line 567

Returns: Research.Lidar.getSensorDirection(sensorId)

M.getLidarVerticalResolution(sensorId)

Line 571

Returns: Research.Lidar.getVerticalRes(sensorId)

M.getLidarFrequency(sensorId)

Line 575

Returns: Research.Lidar.getFrequency(sensorId)

M.getLidarMaxDistance(sensorId)

Line 579

Returns: Research.Lidar.getMaxDistance(sensorId)

M.getLidarIsVisualised(sensorId)

Line 583

Returns: Research.Lidar.getIsVisualised(sensorId)

M.getLidarIsAnnotated(sensorId)

Line 587

Returns: Research.Lidar.getIsAnnotated(sensorId)

M.getLidarMaxPendingGpuRequests(sensorId)

Line 591

Returns: Research.Lidar.getMaxPendingGpuRequests(sensorId)

M.getLidarRequestedUpdateTime(sensorId)

Line 595

Returns: Research.Lidar.getRequestedUpdateTime(sensorId)

M.getLidarUpdatePriority(sensorId)

Line 599

Returns: Research.Lidar.getUpdatePriority(sensorId)

M.setLidarVerticalResolution(sensorId, verticalResolution)

Line 603

M.setLidarFrequency(sensorId, frequency)

Line 607

M.setLidarMaxDistance(sensorId, maxDistance)

Line 611

M.setLidarIsVisualised(sensorId, isVisualised)

Line 615

M.setLidarIsAnnotated(sensorId, isAnnotated)

Line 619

M.setLidarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)

Line 623

M.setLidarRequestedUpdateTime(sensorId, requestedUpdateTime)

Line 627

M.setLidarUpdatePriority(sensorId, updatePriority)

Line 631

M.createUltrasonic(vid, args)

Line 635

Ultrasonic-specific sensor functions.

Returns: sensorId

M.getUltrasonicReadings(sensorId)

Line 644

Returns: Research.Ultrasonic.getLastReadings(sensorId)

M.getActiveUltrasonicSensors()

Line 648

Returns: Research.Ultrasonic.getActiveUltrasonicSensors()

M.getUltrasonicIsVisualised(sensorId)

Line 652

Returns: visualisedUltrasonicSensors[sensorId] ~= nil

M.getUltrasonicMaxPendingGpuRequests(sensorId)

Line 656

Returns: Research.Ultrasonic.getMaxPendingGpuRequests(sensorId)

M.getUltrasonicRequestedUpdateTime(sensorId)

Line 660

Returns: Research.Ultrasonic.getRequestedUpdateTime(sensorId)

M.getUltrasonicUpdatePriority(sensorId)

Line 664

Returns: Research.Ultrasonic.getUpdatePriority(sensorId)

M.setUltrasonicIsVisualised(sensorId, isVisualised)

Line 668

M.getUltrasonicSensorName(sensorId)

Line 676

Returns: Research.Ultrasonic.getSensorName(sensorId)

M.getUltrasonicSensorPosition(sensorId)

Line 680

Returns: Research.Ultrasonic.getSensorPosition(sensorId)

M.getUltrasonicSensorDirection(sensorId)

Line 684

Returns: Research.Ultrasonic.getSensorDirection(sensorId)

M.getUltrasonicSensorRadius(sensorId, distanceFromSensor)

Line 688

Returns: Research.Ultrasonic.getSensorRadius(sensorId, distanceFromSensor)

M.setUltrasonicMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)

Line 692

M.setUltrasonicRequestedUpdateTime(sensorId, requestedUpdateTime)

Line 696

M.setUltrasonicUpdatePriority(sensorId, updatePriority)

Line 700

M.createRadar(vid, args)

Line 788

RADAR-specific sensor functions.

Returns: sensorId

M.getRadarReadings(sensorId)

Line 794

Returns: radarBufferPoints[sensorId]

M.getRadarPPIData(sensorId)

Line 800

Returns: radarBufferPPI[sensorId]

M.getRadarRangeDopplerData(sensorId)

Line 806

Returns: radarBufferRangeDoppler[sensorId]

M.getActiveRadarSensors()

Line 812

Returns: Research.Radar.getActiveRadarSensors()

M.getRadarMaxPendingGpuRequests(sensorId)

Line 816

Returns: Research.Radar.getMaxPendingGpuRequests(sensorId)

M.getRadarRequestedUpdateTime(sensorId)

Line 820

Returns: Research.Radar.getRequestedUpdateTime(sensorId)

M.getRadarUpdatePriority(sensorId)

Line 824

Returns: Research.Radar.getUpdatePriority(sensorId)

M.getRadarSensorName(sensorId)

Line 828

Returns: Research.Radar.getSensorName(sensorId)

M.getRadarSensorPosition(sensorId)

Line 832

Returns: Research.Radar.getSensorPosition(sensorId)

M.getRadarSensorDirection(sensorId)

Line 836

Returns: Research.Radar.getSensorDirection(sensorId)

M.setRadarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)

Line 840

M.setRadarRequestedUpdateTime(sensorId, requestedUpdateTime)

Line 844

M.setRadarUpdatePriority(sensorId, updatePriority)

Line 848

M.createAdvancedIMU(vid, args)

Line 852

Advanced IMU-specific sensor functions.

Returns: sensorId

M.removeAdvancedIMU(vid, sensorId)

Line 904

M.getAdvancedIMUReadings(sensorId)

Line 911

Returns: outData

M.updateAdvancedIMULastReadings(data)

Line 920

M.updateAdvancedIMUAdHocRequest(data)

Line 932

M.setAdvancedIMUUpdateTime(sensorId, vid, updateTime)

Line 937

M.setAdvancedIMUIsUsingGravity(sensorId, vid, isUsingGravity)

Line 942

M.setAdvancedIMUIsVisualised(sensorId, vid, isVisualised)

Line 948

M.createGPS(vid, args)

Line 954

GPS-specific sensor functions.

Returns: sensorId

M.removeGPS(vid, sensorId)

Line 1002

M.getGPSReadings(sensorId)

Line 1009

Returns: outData

M.updateGPSLastReadings(data)

Line 1018

M.updateGPSAdHocRequest(data)

Line 1030

M.setGPSUpdateTime(sensorId, vid, updateTime)

Line 1035

M.setGPSIsVisualised(sensorId, vid, isVisualised)

Line 1040

M.createPowertrainSensor(vid, args)

Line 1046

Powertrain-specific sensor functions.

Returns: sensorId

M.removePowertrainSensor(vid, sensorId)

Line 1066

M.getPowertrainReadings(sensorId)

Line 1073

Returns: outData

M.updatePowertrainLastReadings(data)

Line 1082

M.updatePowertrainAdHocRequest(data)

Line 1094

M.setPowertrainUpdateTime(sensorId, vid, updateTime)

Line 1099

M.createIdealRADARSensor(vid, args)

Line 1104

Ideal RADAR-specific sensor functions.

Returns: sensorId

M.removeIdealRADARSensor(vid, sensorId)

Line 1124

M.getIdealRADARReadings(sensorId)

Line 1131

Returns: outData

M.updateIdealRADARLastReadings(data)

Line 1140

M.updateIdealRADARAdHocRequest(data)

Line 1152

M.setIdealRADARUpdateTime(sensorId, vid, updateTime)

Line 1157

M.createRoadsSensor(vid, args)

Line 1162

Roads-specific sensor functions.

Returns: sensorId

M.removeRoadsSensor(vid, sensorId)

Line 1182

M.getRoadsSensorReadings(sensorId)

Line 1189

Returns: outData

M.updateRoadsSensorLastReadings(data)

Line 1198

M.updateRoadsSensorAdHocRequest(data)

Line 1210

M.setRoadsSensorUpdateTime(sensorId, vid, updateTime)

Line 1215

M.createMeshSensor(vid, args)

Line 1220

Mesh-sensor specific sensor functions.

Returns: sensorId

M.removeMeshSensor(vid, sensorId)

Line 1237

M.updateMeshAdHocRequest(data)

Line 1243

M.setMeshUpdateTime(sensorId, vid, updateTime)

Line 1248

M.getRoadGraph()

Line 1253

Universal sensor functions. These are exposed above already, list here is for API documentation reason. M.updateLuaSensorConfiguration = updateLuaSensorConfiguration M.getSensorName = getSensorName M.getSensorConfiguration = getSensorConfiguration M.getActiveSensors = getActiveSensors Road-related functions.

Returns: {

M.resetNavgraph()

Line 1272

M.createValidation(vid, testId)

Line 1276

Test/validation tools.

M.removeValidation(vid, sensorId)

Line 1319

M.markVehicleFeedingComplete()

Line 1328

M.isTimeEvolutionComplete(vid)

Line 1324

Returns: isVehicleFeedingComplete

M.createTyreBarrierTest(vid, IMUPos, IMUDir, IMUUp, smootherStrength, initialVel, startPos)

Line 1333

M.removeTyreBarrierTest(vid, sensorId)

Line 1376

M.onUpdate(dtReal, dtSim, dtRaw)

Line 1456

Functions triggered by hooks.

M.onDeserialized(data)

Line 1503

M.onVehicleDestroyed(vid)

Line 1509

Exported Variables

M.stype

Line 46 - { -- String identifiers for each sensor

M.getFullCameraRequest

Line 1533 - getFullCameraRequest -- TODO This hack should be replaced when GE-2...

Ad-hoc sensor reading functions (for C++ managed sensors).

M.isVluaRequestComplete

Line 1557 - isVluaRequestComplete -- this query is generic to any request from v...

M.getCameraData

Line 1579 - getCameraData -- returns a binary string.

M.processCameraData

Line 1581 - processCameraData -- returns processed data.

M.setCameraSensorPosition

Line 1590 - setCameraSensorPosition -- Camera property setters (for existing camer...

M.createRawLidar

Line 1602 - createRawLidar -- Create up a new Raw LiDAR sensor (to be man...

Raw LiDAR-specific sensor functions.

M.getLidarPointCloud

Line 1607 - getLidarPointCloud -- returns a binary string.

M.getLidarColourData

Line 1608 - getLidarColourData -- returns a binary string.

M.getLidarDataPositions

Line 1611 - getLidarDataPositions -- returns the LiDAR point cloud positions (pr...

M.getActiveAdvancedIMUs

Line 1669 - getActiveAdvancedIMUs

Internal Functions

Show internal functions
  • unpack_float(b4, b3, b2, b1) (line 63)
  • rotateVecAroundAxis(v, k, theta) (line 78)

    Rotates vector v around unit axis k, by angle theta (in radians). [This function uses the standard Rodrigues formula].

  • angleBetweenVecsNorm(a, b) (line 84)

    Computes the (small) angle between two unit vectors, in radians.

  • angleBetweenVecs(a, b) (line 87)

    Computes the (small) angle between two vectors of arbitrary length, in radians.

  • getUniqueRequestId() (line 89)
  • doesSensorExist(sensorId) (line 94)
  • removeSensor(sensorId) (line 98)
  • removeAllSensorsFromVehicle(vid) (line 108)
  • getAverageUpdateTime(sensorId) (line 115)
  • getMaxLoadPerFrame() (line 119)
  • setMaxLoadPerFrame(maxLoadPerFrame) (line 123)
  • sendCameraRequest(sensorId) (line 128)

    Ad-hoc polling functions.

  • sendLidarRequest(sensorId) (line 129)
  • sendUltrasonicRequest(sensorId) (line 130)
  • sendRadarRequest(sensorId) (line 131)
  • collectCameraRequest(requestId) (line 133)
  • collectLidarRequest(requestId) (line 135)
  • collectUltrasonicRequest(requestId) (line 136)
  • collectRadarRequest(requestId) (line 137)
  • isRequestComplete(requestId) (line 139)
  • getFullCameraRequest(sensorId) (line 142)

    TODO Should be replaced when GE-2170 is complete.

  • sendAdvancedIMURequest(sensorId, vid) (line 158)
  • collectAdvancedIMURequest(requestId) (line 165)
  • sendGPSRequest(sensorId, vid) (line 174)
  • collectGPSRequest(requestId) (line 181)
  • sendPowertrainRequest(sensorId, vid) (line 190)
  • collectPowertrainRequest(requestId) (line 197)
  • sendIdealRADARRequest(sensorId, vid) (line 206)
  • collectIdealRADARRequest(requestId) (line 213)
  • sendRoadsSensorRequest(sensorId, vid) (line 222)
  • collectRoadsSensorRequest(requestId) (line 229)
  • sendMeshRequest(sensorId, vid) (line 238)
  • collectMeshRequest(requestId) (line 245)
  • isVluaRequestComplete(requestId) (line 254)
  • attachSensor(sensorId, pos, dir, up, vid, isSensorStatic, isSnappingDesired, forceInsideTriangle, isAllowWheelNodes, isDirWorldSpace) (line 261)
  • getSensorMatrix(sensorId) (line 265)
  • getWorldFrame(sensorId) (line 269)
  • getLocalFrame(sensorId) (line 273)
  • getBeamData(vid) (line 277)
  • getFullTriangleData(vid) (line 289)
  • getWheelTriangleData(vid, wheelIndex) (line 301)
  • getNodePositions(vid, nodeId) (line 313)
  • getClosestMeshPointToGivenPoint(vid, point) (line 318)
  • getClosestTriangle(vid, point, includeWheelNodes) (line 323)
  • createCamera(vid, args) (line 328)
  • createCameraWithSharedMemory(vid, args) (line 334)
  • getCameraImage(sensorId) (line 340)
  • getCameraAnnotations(sensorId) (line 346)
  • getCameraDepth(sensorId) (line 352)
  • getCameraData(sensorId) (line 358)
  • getCameraDataShmem(sensorId) (line 365)
  • processCameraData(sensorId) (line 369)
  • getCameraSensorName(sensorId) (line 386)
  • getCameraSensorPosition(sensorId) (line 390)
  • getCameraSensorDirection(sensorId) (line 394)
  • getCameraMaxPendingGpuRequests(sensorId) (line 398)
  • getCameraRequestedUpdateTime(sensorId) (line 402)
  • getCameraUpdatePriority(sensorId) (line 406)
  • getCameraSize(sensorId) (line 410)
  • getActiveCameraSensors() (line 414)
  • setCameraSensorPosition(sensorId, pos) (line 419)

    Functions to set the fustrum properties of an existing camera sensor.

  • setCameraSensorDirection(sensorId, dir) (line 420)
  • setCameraSensorUp(sensorId, dir) (line 421)
  • setCameraSensorResolution(sensorId, x, y) (line 422)
  • setCameraSensorFOVX(sensorId, x) (line 423)
  • setCameraSensorNearFarPlanes(sensorId, pNear, pFar) (line 424)
  • setCameraMaxPendingGpuRequests(sensorId, maxPendingGpuRequests) (line 426)
  • setCameraRequestedUpdateTime(sensorId, requestedUpdateTime) (line 430)
  • setCameraUpdatePriority(sensorId, priority) (line 434)
  • convertWorldPointToPixel(sensorId, point) (line 438)
  • createRawLidar(vid, filename, args) (line 444)

    Creates a new Raw LiDAR sensor. [Note: these are managed in a special way. We return only the sector of data, based on the position of the sensor due to its rotation, since the last frame, and poll it ad-hoc.]

  • createLidar(vid, args) (line 504)
  • createLidarWithSharedMemory(vid, args) (line 510)
  • getLidarPointCloud(sensorId) (line 516)
  • getLidarColourData(sensorId) (line 522)
  • getLidarDataPositions(sensorId) (line 528)
  • getLidarPointCloudShmem(sensorId) (line 547)
  • getLidarColourDataShmem(sensorId) (line 551)
  • getActiveLidarSensors() (line 555)
  • getLidarSensorName(sensorId) (line 559)
  • getLidarSensorPosition(sensorId) (line 563)
  • getLidarSensorDirection(sensorId) (line 567)
  • getLidarVerticalResolution(sensorId) (line 571)
  • getLidarFrequency(sensorId) (line 575)
  • getLidarMaxDistance(sensorId) (line 579)
  • getLidarIsVisualised(sensorId) (line 583)
  • getLidarIsAnnotated(sensorId) (line 587)
  • getLidarMaxPendingGpuRequests(sensorId) (line 591)
  • getLidarRequestedUpdateTime(sensorId) (line 595)
  • getLidarUpdatePriority(sensorId) (line 599)
  • setLidarVerticalResolution(sensorId, verticalResolution) (line 603)
  • setLidarFrequency(sensorId, frequency) (line 607)
  • setLidarMaxDistance(sensorId, maxDistance) (line 611)
  • setLidarIsVisualised(sensorId, isVisualised) (line 615)
  • setLidarIsAnnotated(sensorId, isAnnotated) (line 619)
  • setLidarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests) (line 623)
  • setLidarRequestedUpdateTime(sensorId, requestedUpdateTime) (line 627)
  • setLidarUpdatePriority(sensorId, updatePriority) (line 631)
  • createUltrasonic(vid, args) (line 635)
  • getUltrasonicReadings(sensorId) (line 644)
  • getActiveUltrasonicSensors() (line 648)
  • getUltrasonicIsVisualised(sensorId) (line 652)
  • getUltrasonicMaxPendingGpuRequests(sensorId) (line 656)
  • getUltrasonicRequestedUpdateTime(sensorId) (line 660)
  • getUltrasonicUpdatePriority(sensorId) (line 664)
  • setUltrasonicIsVisualised(sensorId, isVisualised) (line 668)
  • getUltrasonicSensorName(sensorId) (line 676)
  • getUltrasonicSensorPosition(sensorId) (line 680)
  • getUltrasonicSensorDirection(sensorId) (line 684)
  • getUltrasonicSensorRadius(sensorId, distanceFromSensor) (line 688)
  • setUltrasonicMaxPendingGpuRequests(sensorId, maxPendingGpuRequests) (line 692)
  • setUltrasonicRequestedUpdateTime(sensorId, requestedUpdateTime) (line 696)
  • setUltrasonicUpdatePriority(sensorId, updatePriority) (line 700)
  • visualiseUltrasonicSensor(sensorId, dtSim) (line 704)
  • createRadar(vid, args) (line 788)
  • getRadarReadings(sensorId) (line 794)
  • getRadarPPIData(sensorId) (line 800)
  • getRadarRangeDopplerData(sensorId) (line 806)
  • getActiveRadarSensors() (line 812)
  • getRadarMaxPendingGpuRequests(sensorId) (line 816)
  • getRadarRequestedUpdateTime(sensorId) (line 820)
  • getRadarUpdatePriority(sensorId) (line 824)
  • getRadarSensorName(sensorId) (line 828)
  • getRadarSensorPosition(sensorId) (line 832)
  • getRadarSensorDirection(sensorId) (line 836)
  • setRadarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests) (line 840)
  • setRadarRequestedUpdateTime(sensorId, requestedUpdateTime) (line 844)
  • setRadarUpdatePriority(sensorId, updatePriority) (line 848)
  • createAdvancedIMU(vid, args) (line 852)
  • removeAdvancedIMU(vid, sensorId) (line 904)
  • getAdvancedIMUReadings(sensorId) (line 911)
  • updateAdvancedIMULastReadings(data) (line 920)
  • updateAdvancedIMUAdHocRequest(data) (line 932)
  • setAdvancedIMUUpdateTime(sensorId, vid, updateTime) (line 937)
  • setAdvancedIMUIsUsingGravity(sensorId, vid, isUsingGravity) (line 942)
  • setAdvancedIMUIsVisualised(sensorId, vid, isVisualised) (line 948)
  • createGPS(vid, args) (line 954)
  • removeGPS(vid, sensorId) (line 1002)
  • getGPSReadings(sensorId) (line 1009)
  • updateGPSLastReadings(data) (line 1018)
  • updateGPSAdHocRequest(data) (line 1030)
  • setGPSUpdateTime(sensorId, vid, updateTime) (line 1035)
  • setGPSIsVisualised(sensorId, vid, isVisualised) (line 1040)
  • createPowertrainSensor(vid, args) (line 1046)
  • removePowertrainSensor(vid, sensorId) (line 1066)
  • getPowertrainReadings(sensorId) (line 1073)
  • updatePowertrainLastReadings(data) (line 1082)
  • updatePowertrainAdHocRequest(data) (line 1094)
  • setPowertrainUpdateTime(sensorId, vid, updateTime) (line 1099)
  • createIdealRADARSensor(vid, args) (line 1104)
  • removeIdealRADARSensor(vid, sensorId) (line 1124)
  • getIdealRADARReadings(sensorId) (line 1131)
  • updateIdealRADARLastReadings(data) (line 1140)
  • updateIdealRADARAdHocRequest(data) (line 1152)
  • setIdealRADARUpdateTime(sensorId, vid, updateTime) (line 1157)
  • createRoadsSensor(vid, args) (line 1162)
  • removeRoadsSensor(vid, sensorId) (line 1182)
  • getRoadsSensorReadings(sensorId) (line 1189)
  • updateRoadsSensorLastReadings(data) (line 1198)
  • updateRoadsSensorAdHocRequest(data) (line 1210)
  • setRoadsSensorUpdateTime(sensorId, vid, updateTime) (line 1215)
  • createMeshSensor(vid, args) (line 1220)
  • removeMeshSensor(vid, sensorId) (line 1237)
  • updateMeshAdHocRequest(data) (line 1243)
  • setMeshUpdateTime(sensorId, vid, updateTime) (line 1248)
  • getRoadGraph() (line 1253)
  • resetNavgraph() (line 1272)
  • createValidation(vid, testId) (line 1276)
  • removeValidation(vid, sensorId) (line 1319)
  • isTimeEvolutionComplete(vid) (line 1324)
  • markVehicleFeedingComplete() (line 1328)
  • createTyreBarrierTest(vid, IMUPos, IMUDir, IMUUp, smootherStrength, initialVel, startPos) (line 1333)
  • removeTyreBarrierTest(vid, sensorId) (line 1376)
  • getLuaSensorName(sensorType, sensorId) (line 1381)
  • getLuaSensorConfiguration(sensorType, sensorId) (line 1403)
  • onUpdate(dtReal, dtSim, dtRaw) (line 1456)
  • onDeserialized(data) (line 1503)
  • onVehicleDestroyed(vid) (line 1509)

`rawLidarEmpty.lua`

> This Source Code Form is subject to the terms of the bCDDL, v. 1.1.

`sumoExporter.lua`

> This Source Code Form is subject to the terms of the bCDDL, v. 1.1.

On this page

DependenciesHooksExported FunctionsM.updateLuaSensorConfiguration(sensorType, sensorId, conf, vid)M.getSensorName(sensorType, sensorId)M.getSensorConfiguration(sensorType, sensorId)M.getActiveSensors()M.onSensorRemoved(sensorType, sensorId)M.doesSensorExist(sensorId)M.removeSensor(sensorId)M.removeAllSensorsFromVehicle(vid)M.getAverageUpdateTime(sensorId)M.getMaxLoadPerFrame()M.setMaxLoadPerFrame(maxLoadPerFrame)M.sendCameraRequest(sensorId)M.sendLidarRequest(sensorId)M.sendUltrasonicRequest(sensorId)M.sendRadarRequest(sensorId)M.collectCameraRequest(requestId)M.collectLidarRequest(requestId)M.collectUltrasonicRequest(requestId)M.collectRadarRequest(requestId)M.isRequestComplete(requestId)M.sendAdvancedIMURequest(sensorId, vid)M.collectAdvancedIMURequest(requestId)M.sendGPSRequest(sensorId, vid)M.collectGPSRequest(requestId)M.sendPowertrainRequest(sensorId, vid)M.collectPowertrainRequest(requestId)M.sendIdealRADARRequest(sensorId, vid)M.collectIdealRADARRequest(requestId)M.sendRoadsSensorRequest(sensorId, vid)M.collectRoadsSensorRequest(requestId)M.sendMeshRequest(sensorId, vid)M.collectMeshRequest(requestId)M.attachSensor(sensorId, pos, dir, up, vid, isSensorStatic, isSnappingDesired, forceInsideTriangle, isAllowWheelNodes, isDirWorldSpace)M.getSensorMatrix(sensorId)M.getWorldFrame(sensorId)M.getLocalFrame(sensorId)M.getBeamData(vid)M.getFullTriangleData(vid)M.getWheelTriangleData(vid, wheelIndex)M.getNodePositions(vid, nodeId)M.getClosestMeshPointToGivenPoint(vid, point)M.getClosestTriangle(vid, point, includeWheelNodes)M.createCamera(vid, args)M.createCameraWithSharedMemory(vid, args)M.getCameraImage(sensorId)M.getCameraAnnotations(sensorId)M.getCameraDepth(sensorId)M.getCameraDataShmem(sensorId)M.getCameraSensorName(sensorId)M.getCameraSensorPosition(sensorId)M.getCameraSensorDirection(sensorId)M.getCameraMaxPendingGpuRequests(sensorId)M.getCameraRequestedUpdateTime(sensorId)M.getCameraUpdatePriority(sensorId)M.getCameraSize(sensorId)M.getActiveCameraSensors()M.setCameraSensorDirection(sensorId, dir)M.setCameraSensorUp(sensorId, dir)M.setCameraSensorResolution(sensorId, x, y)M.setCameraSensorFOVX(sensorId, x)M.setCameraSensorNearFarPlanes(sensorId, pNear, pFar)M.setCameraMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)M.setCameraRequestedUpdateTime(sensorId, requestedUpdateTime)M.setCameraUpdatePriority(sensorId, priority)M.convertWorldPointToPixel(sensorId, point)M.createLidar(vid, args)M.createLidarWithSharedMemory(vid, args)M.getLidarPointCloudShmem(sensorId)M.getLidarColourDataShmem(sensorId)M.getActiveLidarSensors()M.getLidarSensorName(sensorId)M.getLidarSensorPosition(sensorId)M.getLidarSensorDirection(sensorId)M.getLidarVerticalResolution(sensorId)M.getLidarFrequency(sensorId)M.getLidarMaxDistance(sensorId)M.getLidarIsVisualised(sensorId)M.getLidarIsAnnotated(sensorId)M.getLidarMaxPendingGpuRequests(sensorId)M.getLidarRequestedUpdateTime(sensorId)M.getLidarUpdatePriority(sensorId)M.setLidarVerticalResolution(sensorId, verticalResolution)M.setLidarFrequency(sensorId, frequency)M.setLidarMaxDistance(sensorId, maxDistance)M.setLidarIsVisualised(sensorId, isVisualised)M.setLidarIsAnnotated(sensorId, isAnnotated)M.setLidarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)M.setLidarRequestedUpdateTime(sensorId, requestedUpdateTime)M.setLidarUpdatePriority(sensorId, updatePriority)M.createUltrasonic(vid, args)M.getUltrasonicReadings(sensorId)M.getActiveUltrasonicSensors()M.getUltrasonicIsVisualised(sensorId)M.getUltrasonicMaxPendingGpuRequests(sensorId)M.getUltrasonicRequestedUpdateTime(sensorId)M.getUltrasonicUpdatePriority(sensorId)M.setUltrasonicIsVisualised(sensorId, isVisualised)M.getUltrasonicSensorName(sensorId)M.getUltrasonicSensorPosition(sensorId)M.getUltrasonicSensorDirection(sensorId)M.getUltrasonicSensorRadius(sensorId, distanceFromSensor)M.setUltrasonicMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)M.setUltrasonicRequestedUpdateTime(sensorId, requestedUpdateTime)M.setUltrasonicUpdatePriority(sensorId, updatePriority)M.createRadar(vid, args)M.getRadarReadings(sensorId)M.getRadarPPIData(sensorId)M.getRadarRangeDopplerData(sensorId)M.getActiveRadarSensors()M.getRadarMaxPendingGpuRequests(sensorId)M.getRadarRequestedUpdateTime(sensorId)M.getRadarUpdatePriority(sensorId)M.getRadarSensorName(sensorId)M.getRadarSensorPosition(sensorId)M.getRadarSensorDirection(sensorId)M.setRadarMaxPendingGpuRequests(sensorId, maxPendingGpuRequests)M.setRadarRequestedUpdateTime(sensorId, requestedUpdateTime)M.setRadarUpdatePriority(sensorId, updatePriority)M.createAdvancedIMU(vid, args)M.removeAdvancedIMU(vid, sensorId)M.getAdvancedIMUReadings(sensorId)M.updateAdvancedIMULastReadings(data)M.updateAdvancedIMUAdHocRequest(data)M.setAdvancedIMUUpdateTime(sensorId, vid, updateTime)M.setAdvancedIMUIsUsingGravity(sensorId, vid, isUsingGravity)M.setAdvancedIMUIsVisualised(sensorId, vid, isVisualised)M.createGPS(vid, args)M.removeGPS(vid, sensorId)M.getGPSReadings(sensorId)M.updateGPSLastReadings(data)M.updateGPSAdHocRequest(data)M.setGPSUpdateTime(sensorId, vid, updateTime)M.setGPSIsVisualised(sensorId, vid, isVisualised)M.createPowertrainSensor(vid, args)M.removePowertrainSensor(vid, sensorId)M.getPowertrainReadings(sensorId)M.updatePowertrainLastReadings(data)M.updatePowertrainAdHocRequest(data)M.setPowertrainUpdateTime(sensorId, vid, updateTime)M.createIdealRADARSensor(vid, args)M.removeIdealRADARSensor(vid, sensorId)M.getIdealRADARReadings(sensorId)M.updateIdealRADARLastReadings(data)M.updateIdealRADARAdHocRequest(data)M.setIdealRADARUpdateTime(sensorId, vid, updateTime)M.createRoadsSensor(vid, args)M.removeRoadsSensor(vid, sensorId)M.getRoadsSensorReadings(sensorId)M.updateRoadsSensorLastReadings(data)M.updateRoadsSensorAdHocRequest(data)M.setRoadsSensorUpdateTime(sensorId, vid, updateTime)M.createMeshSensor(vid, args)M.removeMeshSensor(vid, sensorId)M.updateMeshAdHocRequest(data)M.setMeshUpdateTime(sensorId, vid, updateTime)M.getRoadGraph()M.resetNavgraph()M.createValidation(vid, testId)M.removeValidation(vid, sensorId)M.markVehicleFeedingComplete()M.isTimeEvolutionComplete(vid)M.createTyreBarrierTest(vid, IMUPos, IMUDir, IMUUp, smootherStrength, initialVel, startPos)M.removeTyreBarrierTest(vid, sensorId)M.onUpdate(dtReal, dtSim, dtRaw)M.onDeserialized(data)M.onVehicleDestroyed(vid)Exported VariablesM.stypeM.getFullCameraRequestM.isVluaRequestCompleteM.getCameraDataM.processCameraDataM.setCameraSensorPositionM.createRawLidarM.getLidarPointCloudM.getLidarColourDataM.getLidarDataPositionsM.getActiveAdvancedIMUsInternal Functions