The Chrono::Sensor module provides support for simulating RGB cameras, lidar, GPS, and IMU within a Chrono simulation. Sensors are objects that are attached to Chrono Bodies(ChBody). Chrono::Sensor is currently compatible with the core rigid body simulation in Chrono including Chrono::Vehicle.
Detailed overview of Chrono::Sensor.
How the sensor process is setup (more details in sensor demos)
Dynamic chrono simulation has a higher update frequency than sensor simulation (dynamics: order 1kHz; sensors: 10-100Hz), the sensor framework uses a separate thread to manage the data curation.
Chrono::Sensor can leverage multiple render threads each managing a separate GPU for simulating a subset of sensors. This is particularly useful for scenarios with with multiple agents and numerous sensors that operate at various update frequencies.
Sensors have a filter graph by which users can add processing modules
How key frames are used
- TODO
Load sensor from JSON Files
Reference Frames and Relative Attachment Positions
Each Chrono sensor defaults to Z-up, X-forwad, and Y-left to match a vehicle ISO reference frame. For an RGB camera, this means that the z-axis points vertically in the image plane, the y-axis points left in the image plane, and the x-axis points into the image plane. For lidar, the x-axis point along rays with zero vertical angle and zero horizontal angle