Design: Visualization
The CPM Lab has two front ends with the same functions: RViz with the plugins of the visualization repository, and
Lichtblick with the extensions of the lichtblick repository (see Visualization with Lichtblick). Neither contains experiment
logic. They display topics and call the services of the control flow (see Design: Control Flow), so both can be
used at the same time and a crash of the user interface never stops an experiment.
The same experiment in RViz with the CPM Lab plugins (left) and in Lichtblick with the CPM Lab extensions (right)
RViz Plugins
Package |
Plugin |
Shows |
|---|---|---|
|
Panel |
The Control Center: map server, IPS, simulation, deploy and experiment widgets, warnings and the status log
( |
|
Display |
Each vehicle with ID, pose and speed from |
|
Display |
The path of |
|
Display |
The trajectory of |
|
Display |
A Lanelet2 map rendered in RViz |
|
Tool (shortcut |
Sends a goal pose for a selected vehicle on |
The map itself is usually shown as the MarkerArray of cpm_lab_map_server_visualization (see
Design: Map Server). The layout of RViz is src/cpm_lab/rviz/default.rviz in the workspace; the desktop and
simulation images contain a copy (/opt/cpm/default.rviz).
Displays are rviz_common::RosTopicDisplay subclasses; their topic, QoS and colors are properties in the RViz
sidebar. The vehicles are drawn 18 times larger than the lab coordinates (the full-scale view), so the TF frames of
the vehicles must not be used for lab data.
Lichtblick Extensions
Extension |
Role |
|---|---|
|
Panel |
|
Converts |
|
Converts commands into the path or trajectory of each vehicle, split into past and future |
Lichtblick connects through the Foxglove bridge (cpm_lab_foxglove.launch.xml, port 8765). The extensions are
released with the CPM Lab, see Lichtblick Release and File Names.
Changing the User Interface
A new function of the Control Center needs the control flow service or field first, then both front ends. Keep RViz and Lichtblick at the same functionality.
Read the control flow topics with transient local QoS; they are only published on change.
Update the screenshots in this documentation when the panels change.