[Documentation] [TitleIndex] [WordIndex

PointCloud

The Point Cloud display shows data from a (legacy) sensor_msgs/PointCloud message.

The Point Cloud2 display shows data from a (recommended) sensor_msgs/PointCloud2 message. This display is compatible with the Point Cloud Library native point cloud type pcl::PointCloud<T>, when it is published with support from pcl_ros.

Properties

Name

Description

Valid Values

Default

Selectable

Whether or not this cloud is selectable using the selection tool.

True, False

True

Style

The rendering style to use when drawing the points, listed in order of computational expense. There are currently 4 rendering styles, which are explained in the Rendering Styles section

Points, Billboards, Billboard Spheres, Boxes

Billboards

Channel

Which channel(s) to use to color the points. This dropdown is dynamically populated based on the channels in the last cloud received. The individual channels are explained in the Channels section.

Intensity, Color (RGB), Normal Sphere, Curvature

First option which has a corresponding channel in the cloud.

Alpha

The amount of transparency to apply to the points. Note that this does not work perfectly, and you may see some rendering strangeness if this is set to anything but 1

[0-1]

1

Min Color

For intensity channels, the color to assign to the minimum value. See the Intensity Channel section for more information.

([0-255], [0-255], [0-255])

(0, 0, 0)

Min Color

For intensity channels, the color to assign to the maximum value. See the Intensity Channel section for more information.

([0-255], [0-255], [0-255])

(255, 255, 255)

Billboard Size

The size, in meters, to display the billboards (or boxes). This setting does not affect the Points rendering style

0.0001+

0.01

Autocompute Intensity Bounds

Whether or not to auto-compute the "Min Intensity" and "Max Intensity" properties

True, False

True

Min Intensity

The minimum value to use for intensity channel coloring. See the Intensity Channel section for more information.

[-inf, < Max Intensity]]

0

Max Intensity

The maximum value to use for intensity channel coloring. See the Intensity Channel section for more information.

[> Min Intensity, inf]]

4096

Decay Time

The amount of time to keep a cloud/scan around before removing it. A value of 0 means to only display the most recent data.

0+

0

Topic

The topic to subscribe to

Any valid Graph Resource Name

Empty String

Rendering Styles

Points

Points are a fixed size on-screen, currently 3 pixels by 3 pixels. This means you can often see more definition from far away, but as you get closer the density decreases.

Points

Billboards

Billboards are camera-facing quads, that have real-world size.

Billboards

Billboard Spheres

Similar to Billboards, but rendered such that they look like spheres, and provide some contrast so you can tell individual points apart if they are overlapping.

Billboard Spheres

Boxes

Cubes in the world.

Boxes

Channels

PointClouds can have any number of channels associated with them. If you're using a LaserScan display, the only available channel will be the "Intensity" channel.

This section explains how the color/position of a point is computed for each channel type.

Intensity

Valid channel names: intensity, intensities

Intensity only affects the color of the point.

The intensity channel uses 4 values to compute the final color of the point:

Min Intensity

min_i

Max Intensity

max_i

Min Color

min_c

Max Color

max_c

For each point:

  • To compute the color value, we first compute a normalized intensity value based on min_i and max_i:

norm_i = (i - min_i) / (max_i - min_i)
  • Then to compute the color from that normalized intensity:

final_c = (norm_i * max_c) + ((1 - norm_i) * min_c)

RGB

Valid channel names: rgb (1 channel), r, g, b (3 channel)

RGB only affects the color of the point.

There are two ways to specify RGB:

  1. 3 channels, named "r", "g", and "b", with floating point values between 0 and 1.
  2. 1 channel, with the float in the channel reinterpreted as 3 single-byte values with ranges from 0 to 255. 0xff0000 is red, 0xff00 is green, 0xff is blue.

    • In C++, int rgb = 0xff0000; float float_rgb = *reinterpret_cast<float*>(&rgb); 

    • In Python,  float_rgb = struct.unpack('f', struct.pack('i', 0xff0000))[0]

Normal Sphere

Valid channel names: nx, ny, nz (all 3 required)

Normal Sphere only affects the position of the point.

For this channel, the "nx", "ny" and "nz" channels will be used to position the points instead of the values in the points array.

Curvature

Valid channel names: curvature, curvatures

Curvature colors in the same way intensity does.


2024-03-23 12:59