struct mola::LidarOdometry::Parameters::Visualization

Overview

#include <LidarOdometry.h>

struct Visualization
{
    // structs

    struct ModelPart;

    // fields

    float current_observation_alpha = 0.20f;
    float background_color_gray_level = 0.3f;
    float current_pose_corner_size = 1.5f;
    float sensor_poses_corner_size = 0.5f;
    bool show_current_pose_corner = true;
    bool show_tf_tree = false;
    std::string tf_tree_root_frame;
    float tf_tree_corner_size = 0.1f;
    bool tf_tree_show_links = true;
    float tf_tree_link_radius = 0.02f;
    bool tf_tree_show_names = false;
    std::string tf_tree_exclude_frames;
    bool show_ground_grid = true;
    float ground_grid_spacing = 5.0f;
    bool show_trajectory = true;
    std::vector<float> trajectory_rgba = {0.1f, 0.1f, 0.1f, 1.0f};
    bool show_current_observation = false;
    float current_observation_point_size = 3.0f;
    mrpt::img::TColormap current_observation_colormap = mrpt::img::TColormap::cmJET;
    std::string current_observation_color_by_field = "intensity";
    bool show_last_deskewed_observations_decay = true;
    double observations_decay_seconds = 5.0;
    float observations_initial_alpha = 0.10f;
    float last_deskewed_observations_point_size = 1.0f;
    mrpt::img::TColormap last_deskewed_observations_colormap = mrpt::img::TColormap::cmJET;
    std::string last_deskewed_observations_color_by_field = "intensity";
    bool show_localmap = false;
    float local_map_point_size = 3.0f;
    bool local_map_render_voxelmap_free_space = false;
    mrpt::img::TColormap local_map_colormap = mrpt::img::TColormap::cmJET;
    std::string local_map_colormap_color_by_field = "intensity";
    int map_update_decimation = 10;
    bool gui_subwindow_starts_hidden = false;
    bool show_tab_status = true;
    bool show_tab_control = true;
    bool show_tab_view = true;
    bool camera_follows_vehicle = true;
    bool camera_rotates_with_vehicle = false;
    bool camera_orthographic = false;
    bool show_gravity_align_vector = false;
    bool render_in_movable_frame = true;
    std::vector<ModelPart> model;

    // methods

    void initialize(const Yaml& c);
};

Fields

float sensor_poses_corner_size = 0.5f

[m]

bool show_current_pose_corner = true

[m], 0 to disable

Whether to render the current-pose XYZ corner at all (independently of current_pose_corner_size). Useful to turn off from a first-person camera, where the corner ends up filling the whole view. Can also be changed at runtime via setCurrentPoseCornerVisualization().

bool show_tf_tree = false

Draws the subtree of coordinate frames below tf_tree_root_frame (e.g. a legged robot’s joints) as it moves. Opt-in: it requires the data source to implement mola::TransformTreeSource, and costs one subtree snapshot per visualization update.

std::string tf_tree_root_frame

Subtree root. Empty (default) means “ask the data source” (its base_link_frame_id, via TransformTreeSource).

bool tf_tree_show_links = true

[m]

Draws a link from each frame to its parent. Rendered as thin cylinders rather than GL lines, which MRPT cannot draw with a configurable thickness and are barely visible.

float tf_tree_link_radius = 0.02f

Radius of the tf_tree_show_links cylinders.

bool tf_tree_show_names = false

[m]

Draws each frame’s name next to it.

std::string tf_tree_exclude_frames

Comma-separated frame names to leave out, together with their own subtrees. Datasets do publish inverted edges (e.g. “base -> odom” instead of “odom -> base”), which would otherwise drag a whole unrelated, far-away subtree into the robot’s own tree.

std::string current_observation_color_by_field = "intensity"

Can be any pointcloud field name. Will change to “z” for simple XYZ clouds.

bool show_last_deskewed_observations_decay = true

Show a sliding window of decaying past observations to visualize a “dense local map”.

std::string last_deskewed_observations_color_by_field = "intensity"

Can be any pointcloud field name. Will change to “z” for simple XYZ clouds.

bool show_localmap = false

Show the (decimated) underlying local map used to register observations to (less dense than show_last_deskewed_observations_decay).

std::string local_map_colormap_color_by_field = "intensity"

Can be any pointcloud field name. Will change to “z” for simple XYZ clouds.

int map_update_decimation = 10

If show_localmap==true, how many frames to wait to update the visualization of the map, which is a costly operation.

bool render_in_movable_frame = true

If true (and a movable-frame-capable visualizer is present), all 3D objects are drawn as children of a movable scene frame node named publish_reference_frame instead of the viewport root. A central backend such as mola_mapper_3d then repositions that frame as it estimates T_map_to_{odom}, so this odometry’s dense clouds / local map stay correctly placed in {map} without being re-rendered. When no such backend is present the frame stays at the identity pose, so the behavior is identical to drawing at the root (standalone runs).