andino_lichtblick

May 26, 2025 ยท View on GitHub

Description

Integrates the andino_gz package with Lichtblick, enabling out-of-the-box visualization, teleoperation and navigation.

Teleoperation

Layout

No.Element
1Panel settings
2Robot/sensor visualization
3Camera
4Wheel 1/2 velocity plot
5Teleoperation

The default layout file is located in /andino_lichtblick/andino_layout/andino_layout.json

Layouts can be modified and imported/exported from the layout tab inside lichtblick.

Architecture

graph TD;
    Robot/Simulation --> WebSocket_Bridge[WebSocket Bridge:9000];
    WebClient --> Lichtblick[Lichtblick Backend:8080];
    WebClient --> WebSocket_Bridge;

The default behaviour creates two different robot_description topics, /robot_description and /robot_description_lichtblick, this was to deal with Gazebo expecting a file:// URI for the robot mesh files and foxglove_bridge + Lichtblick expecting a package:// URI.

The default asset_uri_allowlist for the foxglove_bridge websocket server, which restricts which exprssions can be present in the names of files sent over the server, has been changed to be compatible with the names of mesh files used by this repository.

Developer Notes

Install pre-commit:

pip install pre-commit

pre-commit install # Inside the repository's root directory

git submodule update --init --recursive

Build

Ensure that the submodule is present:

git submodule update --init --recursive

To build the docker images run the following:

docker compose -f docker/docker-compose.yml build

Run

Run the Containers

xhost +local:docker

docker compose -f docker/docker-compose.yml up

Open Lichtblick

http://localhost:8080/ -> Open connection -> ws://localhost:9000 -> Open