-
 

gazebo_noisy_depth_camera package from gazebo_noisy_depth_camera repo

gazebo_noisy_depth_camera

Package Summary

Tags No category tags.
Version 1.0.1
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/peci1/gazebo_noisy_depth_camera.git
VCS Type git
VCS Version master
Last Updated 2024-11-16
Dev Status MAINTAINED
CI status Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Gazebo depth camera which supports noise

Additional Links

Maintainers

  • Martin Pecka

Authors

  • Martin Pecka

Noisy depth camera sensor for Gazebo

Gazebo normally doesn’t add noise to depth camera sensor images. Even though the SDF specification allows for doing so, Gazebo just ignores the noise tag.

This plugin adds support for reading this noise tag and even allows for specifying other noise implementations.

Implemented noise models

  • gaussian: The standard additive gaussian noise. Not very good for depth images.
  • gaussian_multiplicative: Multiplicative gaussian noise. A bit better for depth images. Be aware that as this is a multiplicative model, the “default” or “no-op” mean should be 1, not 0.

Installation

This is a “pure” Gazebo plugin (i.e. not gazebo_ros plugin), however, it needs ROS to work. That is because there’s no nice support in Gazebo for releasing custom sensor models. To get the model in Gazebo, we use the gazebo_custom_sensor_preloader system plugin.

So, to get this plugin working, add this repo and gazebo_custom_sensor_plugin into a catkin workspace and build it. Then you have to create a custom gazebo launcher that will add libgazebo_custom_sensor_preloader.so to gzserver commandline before launching.

For quick testing, just build the workspace, source it, and call

rosrun gazebo_ros gzserver -s libgazebo_custom_sensor_preloader.so my.world

Any depth camera in your world will now read the specified noise.

Performance

The noise is added to the image using a CPU loop, not on the GPU as RGB noise.

Unfortunately, I wasn’t able to utilize OpenGL for adding the noise. I tried hard, but using an analogous approach that’s used for RGB noise, all I could get were either all black or all grey images, nothing more. I suppose the problem could be that the DepthCamera hard-sets the current pass to the rendering system, so adding more compositors doesn’t work very well. My work towards OpenGL is in the opengl branch of this repo. PRs welcome to fix this!

CHANGELOG

Changelog for package gazebo_noisy_depth_camera

1.0.1 (2024-11-16)

  • Fixed the order of registrations of depth frame callbacks so that this plugin actually changes the image for all other plugins. Fixes #3 .
  • Noetic compatibility.
  • Added a comment that clarifies mean meaning in the multiplicative model
  • Added link to opengl branch.
  • Initial commit.
  • Contributors: Martin Pecka

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Package Dependencies

System Dependencies

No direct system dependencies.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Recent questions tagged gazebo_noisy_depth_camera at Robotics Stack Exchange