Only released in EOL distros:  

odor_search: particle_plume | pp_explorer | random_walk

Package Summary

Particle plume is a odor mapping algorithm based on the PCL allowing for a 3D representation of a chemical plume by means of a 3D point cloud.


Particle Plume is a 3D odor mapping algorithm. It intends to tackle the problems of plume intermittence, gas sensor noise and chemical data sharing between robots when applicable.

Particle Plume represents plumes as point clouds using PCL. A grid of visited cells us also generated, allowing to distinguish between visited locations with no odor present and locations which were not yet visited.



particle_plume_node is a 3D odor mapping algorithm.

Subscribed Topics

nose (lse_sensor_msgs/Nostril)
  • Gas sensor messages.

Published Topics

plume (sensor_msgs/PointCloud2)
  • The odor plume.
/visited_cells (nav_msgs/GridCells)
  • Visited cells.


~global_frame_id (string, default: map)
  • The global frame id.
~bubble_radius (double, default: 0.10)
  • The radius of the bubble in meters inside which particles are generated for any given gas sensor reading.
~max_particles_per_bubble (int, default: 1000)
  • The maximum number of particles generated inside a bubble, represents the maximum value given by the gas sensor.
~particle_life_time (int, default: 0)
  • The time before each particle is removed after creation in minutes. 0 means the particle is never removed.
~publish_frequency (double, default: 2.0)
  • The frequency at which the plume and the visited cells are published in Hz.
~cell_size (double, default: 0.05)
  • Visited cell size. Should be equal to the navigation map cell size.
~sensor_model (string, default: Figaro 2620)
  • The sensor model being used to generate the plume.


Coming soon...

Wiki: particle_plume (last edited 2011-04-18 13:40:48 by Gonçalo Cabrita)