Visualization messages can be sent to the LCC to draw basic shapes and text in the map view, where the vehicles are shown as well. An example use case for this would be to draw the desired path that a vehicle is supposed to take on command, to check if it actually follows this path. The messages can also be used to show additional information to the running program or simply to debug the sent trajectory by checking the created path visually.
The visualization IDL file looks like this:
#include "Color.idl"
#include "Point2D.idl"
#ifndef VISUALIZATION_IDL
#define VISUALIZATION_IDL
enum VisualizationType
{
LineStrips=0,
Polygon,
StringMessage
};
struct Visualization
{
//Id to be able to delete the viz later on
string id; //@key
VisualizationType type;
unsigned long long time_to_live;
sequence<Point2D> points;
double size; //Line width in pixels or text size in pt
string string_message;
Color color;
};
#endif
Each visualization message thus consists of seven data fields which need to be filled accordingly to draw the desired information in the LCC.
Each visualization command is identified by a unique ID. Choose different IDs for commands that should be displayed at the same time, or use the same ID to override an older visualization message.
Currently, three command types are supported: You can draw a line, a polygon or a string.
Lines and polygons are defined by the points which are set in the structure data as well. In both cases, lines are drawn between subsequent points in the array. The first and the last point are also connected by a line if you want to draw a polygon.
For strings, you need to specifiy a single point where the string is drawn, and you should set the string message that should be displayed.
Each visualization command is removed automatically after a given time. Here, you can set the time to live in nanoseconds.
This field defines the set of points between which lines should be drawn, or the point where the string message should be shown. The coordinate system is the same as the one used for the vehicles.