sensors#

Gazebo Sensors : Sensor models for simulation

Maintainer: ichen AT openrobotics DOT org

GitHub open issues GitHub open pull requests Discourse topics Hex.pm

Build

Status

Test coverage

codecov

Ubuntu Noble

Build Status

Homebrew

Build Status

Windows

Build Status

Gazebo Sensors, a component of Gazebo, provides numerous sensor models designed to generate realistic data from simulation environments. Gazebo Sensors is used in conjunction with Gazebo Libraries, and especially relies on the rendering capabilities from Gazebo Rendering and physics simulation from Gazebo Physics.

Table of Contents

Features

Install

Usage

Folder Structure

Code of Conduct

Contributing

Versioning

License

Features

Gazebo Sensors provides a set of sensors models that can be configured at run time to mimic specific real-world sensors. A noise model is also provided that can be used to introduce Gaussian or custom noise models into sensor streams.

Install

See the installation tutorial.

Usage

Please refer to the examples directory.

Folder Structure

Refer to the following table for information about important directories and files in this repository.

├── examples                  Example programs.
├── include/gz/sensors        Header files that will be installed.
├── src                       Source files and unit tests.
├── test
│    ├── integration          Integration tests.
│    ├── performance          Performance tests.
│    └── regression           Regression tests.
├── tutorials                 Tutorials, written in markdown.
├── Changelog.md              Changelog.
├── CMakeLists.txt            CMake build script.
└── README.md                 This readme.

Contributing

Please see the contribution guide.

Code of Conduct

Please see CODE_OF_CONDUCT.md.

Versioning

This library uses Semantic Versioning. Additionally, this library is part of the Gazebo project which periodically releases a versioned set of compatible and complimentary libraries. See the Gazebo website for version and release information.

License

This library is licensed under Apache 2.0. See also the LICENSE file.

Gazebo Sensors 9

Gazebo Sensors 9.0.0 (2024-09-25)

  1. Baseline: this includes all changes from 8.2.0 and earlier.

  2. Miscellaneous documentation fixes

  3. Add boundingbox_camera tutorial to the tutorials list

  4. Update badges to point to gz-sensors9

  5. Update changelog

  6. Fix SphericalCoordinate deprecation warning in DVL sensor

  7. Fix frame_id in rgbd_camera

  8. Enable Ubuntu Noble github actions, require cmake 3.22.1

  9. Fixed unused variable warning in DVL

  10. ForceTorqueSensor: add API for newest measurement

  11. Skip apply noise / distortion if parameters are 0s

  12. Publish lidar scan only if there are lidar scan connections

  13. Use //sensor/frame_id sdf element

  14. Fix boundingbox_camera integration test

  15. Suppress unused variable warning

  16. Remove HIDE_SYMBOLS_BY_DEFAULT: replace by a default configuration in gz-cmake.

  17. Avoid calling DblNormal with invalid standard deviation

  18. Fix unresolved external symbols on Windows

  19. Bumps in Ionic: gz-sensors9

  20. Set lens intrinsics in Depth and Rgbd camera sensors

Gazebo Sensors 8

Gazebo Sensors 8.2.0 (2024-06-14)

  1. Add API to check if sensor is in trigger mode

  2. Set rendering sensor pose

Gazebo Sensors 8.1.0 (2024-05-16)

  1. Set camera projection matrix based on lens params for other types of cameras

  2. Move trigger logic to base Sensor class and enable trigger for all camera sensors

  3. Add package.xml

Gazebo Sensors 8.0.1 (2024-03-15)

  1. Avoid calling DblNormal with invalid standard deviation

  2. DepthCamera and RGBDCamera - optimize RGB point cloud connection

  3. Update CI badges to point to release branch job

  4. Infrastructure

  5. Clean up rendering resources

  6. Destroy rendering sensors when sensor is removed

  7. Support protobuf >= 22

Gazebo Sensors 8.0.0 (2023-09-29)

  1. Documentation fixes

  2. populate the covariance fields using the noise models

  3. Tests need to include message types they are using

  4. Update air sensor with air_speed.proto

  5. Bumps in harmonic : sdformat14, rendering8, transport13

  6. ign -> gz

  7. Remove deprecations

  8. Infrastructure

  9. Support protobuf >= 22

  10. Minor cleanup - lint, typos

  11. Fix frame_id for depth camera point cloud

  12. Fix dvl integration test

  13. Add support for bayer images to camera sensor

  14. Fix flaky trigger camera test

  15. Generate default trigger topic name if empty

  16. Add DopplerVelocityLog sensor

  17. ⬆️ Bump main to 8.0.0~pre1

Gazebo Sensors 7

Gazebo Sensors 7.3.0 (2023-09-26)

  1. Infrastructure

  2. Expose optical frame in CameraSensor so it can be set in DepthCameraSensor

  3. Fix CameraSensor to check if element is null before access

  4. Support protobuf >= 22

  5. Minor cleanup - lint, typos

  6. Fix frame_id for depth camera point cloud

  7. Add support for bayer images to camera sensor

  8. Fix flaky trigger camera test

  9. Generate default trigger topic name if empty

Gazebo Sensors 7.2.0 (2023-04-13)

  1. Cleanup resources in CameraSensor destructor

  2. CI workflow: use checkout v3

  3. Rename COPYING to LICENSE

  4. Fix links in Changelog

  5. Fix flaky triggered bounding box camera test

  6. Fix Camera info test

  7. Added trigger to BoundingBoxCamera

  8. clean up rendering resources

  9. Added Camera Info topic support for cameras

  10. ign -> gz Migrate Ignition Headers : gz-sensors

Gazebo Sensors 7.1.0 (2023-02-09)

  1. Added airspeed sensor

  2. Add HasInfoConnections() method to expose infoPub.HasConnections() to child of CameraSensor class

  3. CameraInfo is now published when there’s a CameraSensor subscriber

  4. Disable ogre tests on windows

  5. Add and Revert DopplerVelocityLog sensor

  6. Set custom projection matrix based on intrinsics params from SDF

  7. Renamed ignition_frame_id to gz_frame_id and fix warning

  8. Fix navsat frame id

  9. Fix compile time warning

  10. Update Camera Intrinsics in camera_info topic

  11. RgbdCameraSensor.cc: fix include

  12. Camera: configure projection matrix from SDFormat

  13. Improved noise coverage

  14. Improved coverage Lidar

  15. Add support for 16 bit image format

  16. Add optional optical frame id to camera sensors

  17. Add missing DEPENDS_ON_COMPONENTS parameters

  18. Remove redundant namespace references

Gazebo Sensors 7.0.0 (2022-09-27)

  1. Clear scene before exiting wide_angle_camera_test

  2. Fixed INTEGRATION triggered_camera test

  3. Update README.md

  4. Tutorial and documentation updates

  5. Fix msgs.hh uses

  6. Fix forward-port: use gz_add_component

  7. Add missing msgs include statements

  8. ign -> gz

  9. Make sensors’ HasConnections function virtual

  10. Disable thermal camera test on MacOS

  11. Update GoogleTest to latest version

  12. [garden] Use anti-aliasing value from <anti_aliasing> SDF element

  13. Use pose multiplication instead of subtraction

  14. Add support for single channel 16 bit grayscale image format

  15. Remove deprecated common/PluginMacros.hh include

  16. Bumps in garden : ign-sensors7

  17. Remove Bionic from future releases (Garden+)

  18. Add API to set next sensor update time

  19. Change to use SuppressWarning from ign-utils

  20. Let derived sensors call Sensor::Update

  21. Add wide angle camera sensor

Gazebo Sensors 6

Gazebo Sensors 6.8.0 (2024-01-12)

  1. Allow specifying gz_frame_id as an alternative to ignition_frame_id

  2. [backport fortress] camera info topic published with the right data

  3. Infrastructure

Gazebo Sensors 6.7.1 (2023-09-01)

  1. Support protobuf >= 22

  2. Infrastructure

  3. Rename COPYING to LICENSE

  4. Fix links in Changelog

  5. Fix Camera info test

  6. clean up rendering resources

  7. Added Camera Info topic support for cameras

Gazebo Sensors 6.7.0 (2023-02-13)

  1. Disable thermal camera test on MacOS.

  2. Add optional optical frame id to camera sensors.

  3. Add support for 16 bit image format.

  4. Fix navsat frame id.

  5. CameraInfo is now published when there’s a CameraSensor subscriber.

  6. Add HasInfoConnections() method to expose infoPub.HasConnections() to child of CameraSensor class.

  7. Forward port 3.5.0.

Gazebo Sensors 6.6.0 (2022-06-17)

  1. Add BoundingBox Sensor

Gazebo Sensors 6.5.0 (2022-05-24)

  1. Add HasConnections function

Gazebo Sensors 6.4.0 (2022-05-13)

  1. Set lidar visibility mask

  2. Fix triggered camera test

  3. Add support for l8 format

  4. Fix <ignition_frame_id> not working for GpuLidarSensor

Gazebo Sensors 6.3.0 (2022-04-04)

  1. IMU custom_rpy parent_frame should be set to ‘world’

  2. Triggered Camera

  3. Check if noise or distortion render pass is null

Gazebo Sensors 6.2.0 (2022-03-29)

  1. Distortion Camera Sensor

  2. Add Ubuntu Jammy CI

  3. Add function for enabling / disabling a sensor

  4. IMU sensor API to get world ref frame and heading offset

  5. Use pose multiplication instead of addition

  6. Enable cpplint check in github actions CI

  7. Conform to ros format for header field frame_id of sensor msgs

  8. Fix compiler warnings (CMP0072 and copy elision)

Gazebo Sensors 6.1.0 (2022-01-04)

  1. Add NavSat (GPS) sensor

  2. Added Logic to flag pointcloud as not dense if invalid point is detected

  3. IMU custom_rpy tag parsing added

Gazebo Sensors 6.0.1 (2021-11-12)

  1. Disable GPU lidar tests on macOS

  2. Added macOS install instructions.

  3. Destroy rendering sensors when sensor is removed.

Gazebo Sensors 6.0.0 (2021-09-30)

  1. Trivial tutorial typo correction in Custom Sensors tutorial

  2. Bumps in fortress: ign-sensors6

  3. Port codecov to new configuration

  4. Remove deprecations: tock

  5. Make Sensors aware of CameraPassCountPerGpuFlush & Scene::PostFrame

  6. Remove plugin interface and support custom sensors

  7. Run ogre 1.x tests on macos

  8. Segmentation sensor

  9. Joint Force-Torque Sensor

Gazebo Sensors 5

Gazebo Sensors 5.X.X

Gazebo Sensors 5.1.0 (2021-10-15)

  1. Depend on ign-msgs 7.2 and libSDFormat 11.3

  2. 👩‍🌾 Print debug messages when sensors advertise topics

  3. Infrastructure

  4. Publish performance sensor metrics.

  5. Add API for enabling / disabling IMU orientation

  6. Init will now set the nextUpdateTime to zero

  7. Remove clamping from lidar noise

  8. 👩‍🌾 Disable tests that consistently fail on macOS

Gazebo Sensors 5.0.0 (2021-03-30)

  1. Bump in edifice: ign-common4

  2. Bump in edifice: sdformat11

  3. Bump in edifice: ign-msgs7

  4. Bump in edifice: ign-rendering5

  5. Documentation updates

Gazebo Sensors 4

Gazebo Sensors 4.X.X

Gazebo Sensors 4.2.0 (2021-07-12)

  1. Add API for enabling / disabling IMU orientation

  2. Init will now set the nextUpdateTime to zero

  3. Remove clamping from lidar noise

  4. Remove tools/code_check and update codecov

  5. Disable macOS workflow

  6. 👩‍🌾 Disable tests that consistently fail on macOS

  7. Master branch updates

  8. 👩‍🌾 Clear Windows warnings (backport #58)

  9. Update thermal camera tutorial - include varying temp. objects

  10. Fix macOS/windows tests that failed to load library

  11. Removed issue & PR templates

Gazebo Sensors 4.1.0 (2021-02-10)

  1. Added issue and PR templates.

  2. Added set_rate service to all sensors.

  3. Added support for 8 bit thermal camera image format.

  4. All features up to version 3.2.0.

Gazebo Sensors 4.0.0 (2020-09-30)

  1. Fix link in README.md

  2. Move installation instructions from README.md to Installation tutorial

  3. Bump ign-math to 6.6

  4. Replaced common::Time with std::chrono

  5. Depend on ign-msgs6, ign-transport9, sdf10

  6. GitHub migration

  7. Set camera sensor visibility mask

  8. Depend on ign-rendering4

Gazebo Sensors 3

Gazebo Sensors 3.6.0 (2024-01-05)

  1. Update github action workflows

  2. Clean up rendering resources

  3. Destroy rendering sensors when sensor is removed

  4. Support protobuf >= 22

  5. Fix links in Changelog

  6. Fix Camera info test

  7. Added Camera Info topic support for cameras

Gazebo Sensors 3.5.0 (2022-11-30)

  1. Add missing DEPENDS_ON_COMPONENTS parameters.

  2. Improved coverage Lidar.

  3. Improved noise coverage.

  4. Camera: configure projection matrix from SDFormat.

  5. RgbdCameraSensor.cc: fix include.

  6. Ignition to Gazebo header migration.

Gazebo Sensors 3.4.0 (2022-08-16)

  1. Remove redundant namespace references

  2. Ignition -> Gazebo

  3. Conform to ros format for header field frame_id of sensor msgs

  4. Fix compiler warnings (CMP0072 and copy elision)

  5. Require ign-transport >= 8.2

Gazebo Sensors 3.3.0 (2021-08-26)

  1. 👩‍🌾 Print debug messages when sensors advertise topics

  2. Publish performance sensor metrics.

  3. CI and infrastructure

  4. 👩‍🌾 Disable tests that consistently fail on macOS

  5. 👩‍🌾 Clear Windows warnings (backport #58)

  6. Fix macOS/windows tests that failed to load library (backport #60)

Gazebo Sensors 3.2.0 (2021-02-08)

  1. Apply noise to lidar point cloud.

  2. Add Windows Installation.

  3. Added thermal camera tutorial.

  4. Prevent segfaults on test failures, make tests verbose.

  5. Resolve updated codecheck issues.

  6. Improve fork experience.

Gazebo Sensors 3.1.0 (2020-09-03)

  1. Update camera sensor only when needed

  2. Add noise to RGBD camera.

  3. Fix version numbers in config.hh

  4. Make sure all sensors have a default topic. When invalid topics are passed in, convert them to valid topics if possible. If not possible to convert into valid topic, fail gracefully.

  5. GitHub migration

Gazebo Sensors 3.0.0 (2019-12-10)

  1. Add support for sdformat frame semantics

  2. Remove deprecations in ign-sensors3

  3. Break out image noise classes

  4. Depend on ign-transport8, ign-msgs5, sdformat9

  5. Add Thermal Camera Sensor

  6. Updating exports and includes

  7. Removed deprecations from Manager.

  8. Depend on ign-rendering3

Gazebo Sensors 2

Gazebo Sensors 2.9.1 (2020-12-23)

  1. Fix version numbers in config.hh

  2. Resolve codecheck issues

Gazebo Sensors 2.9.0 (2020-08-07)

  1. Add noise to RGBD camera.

  2. Make sure all sensors have a default topic.When invalid topics are passed in, convert them to valid topics if possible. If not possible to convert into valid topic, fail gracefully.

Gazebo Sensors 2.8.0 (2020-03-04)

  1. Added sequence numbers to sensor data messages.

Gazebo Sensors 2.7.0 (2019-12-16)

  1. Add clipping for depth camera on rgbd camera sensor (requires sdformat 8.7.0)

Gazebo Sensors 2.6.1 (2019-09-13)

  1. Fix IMU noise model dt

Gazebo Sensors 2.6.0 (2019-08-27)

  1. Update depth and rgbd camera sensor to output point cloud data generated by ign-rendering DepthCamera

Gazebo Sensors 2.5.1 (2019-08-12)

  1. Add intensity and ring fields to GpuLidarSensor point cloud msg

Gazebo Sensors 2.5.0

  1. Add IGN_PROFILER_ENABLE cmake option for enabling the ign-common profiler.

  2. Deduplicate frame_ids from sensor message headers

  3. Baseline for stereo cameras

Gazebo Sensors 2.4.0 (2019-07-17)

  1. Support manual scene updates for rendering sensors

Gazebo Sensors 2.3.0 (2019-07-16)

  1. The GpuLidar and Rgbd sensors publish point cloud data using msgs::PointCloudPacked.

Gazebo Sensors 2.2.0 (2019-06-27)

  1. Update the GPU Lidar to use the sensor’s name as the frame_id.

  2. Fix camera_info topic to be on the same level as image and depth_image for RGBD Camera.

Gazebo Sensors 2.1.0 (2019-06-18)

  1. Adds an RGBD camera sensor that combines a CameraSensor and DepthCameraSensor, and also outputs a pointcloud.

  2. Create and publish on camera_info topics for the Camera and DepthCamera sensors.

Gazebo Sensors 2.0.0 (2019-05-21)

  1. Zero update rate, virtual SetParent and fix gpu_lidar

  2. Add frame_id to sensor messages

  3. Restore pixel_format in message and add deprecation comment.

  4. Added noise to camera and lidar sensors.

  5. Add support for loading a Lidar sensor from an SDF Sensor DOM object.

  6. Add support for loading an IMU sensor from an SDF Sensor DOM object.

  7. Add support for loading a camera and depth camera sensor from an SDF Sensor DOM object.

  8. Add support for loading an air pressure sensor from an SDF Sensor DOM object.

  9. Add support for loading an altimeter sensor from an SDF Sensor DOM object.

  10. Noise factory uses sdf::Noise objects, Magnetometer sensor utilizes noise parameters.

  11. Add support for loading a magnetometer sensor from an SDF Sensor DOM object.

  12. Add magnetometer

  13. Add IMU

  14. Add altimeter

  15. Create component for rendering sensor classes

  16. Upgrade to gz-rendering2

  17. Upgrade to gz-msgs4 and gz-transport7

Gazebo Sensors 1.X.X (2019-XX-XX)

  1. Fix windows linking

Gazebo Sensors 1.0.0 (2019-03-01)