Skip to main content

Overview

Cerulion Visualization (cerulion_viz) is a Rosbridge-compatible WebSocket server that bridges Cerulion topics to the Lichtblick visualization tool. Think of it as a translator that listens to your Cerulion topics (published via iox2 or zenoh) and converts them into a format that visualization tools like Lichtblick can understand and display.

What is Cerulion Visualization?

Cerulion Visualization provides a WebSocket bridge that connects your Cerulion transport system to visualization tools. When you have topics running in Cerulion (whether using local IPC with iox2 or network transport with zenoh), the bridge:
  • Discovers available topics automatically
  • Subscribes to topics requested by visualization clients
  • Converts messages from Cerulion’s format to JSON
  • Streams data over WebSocket to visualization tools like Lichtblick
Rosbridge is a protocol that provides a JSON API to ROS (Robot Operating System) functionality. By being Rosbridge-compatible, Cerulion Visualization can work with any tool that understands the Rosbridge protocol, including Lichtblick and other visualization tools.

Why Use Cerulion Visualization?

Visualize Your Data

See your Cerulion topics in real-time using powerful visualization tools like Lichtblick

No Code Changes

Works with your existing Cerulion setup - just start the bridge and connect

Multiple Transports

Supports both local IPC (iox2) and network (zenoh) transport modes

Schema-Based Conversion

Automatically converts messages to JSON using your existing Cerulion schemas

How It Works

The bridge operates as a standalone server that sits between your Cerulion topics and visualization clients:
  1. Bridge Server Starts: You launch the bridge server, specifying which transport mode to use (iox2, zenoh, or both)
  2. Topic Discovery: The bridge automatically discovers available topics from the selected transport
  3. Client Connection: Visualization tools like Lichtblick connect via WebSocket
  4. Topic Subscription: When a client requests a topic, the bridge subscribes to it
  5. Message Streaming: Messages are converted to JSON and streamed to connected clients in real-time
The bridge is stateless - you can connect and disconnect visualization clients without affecting your Cerulion topics or other subscribers.

Key Concepts

Transport Modes

The bridge supports three transport modes:
  • Iox2 Mode: Connects to topics published via iceoryx2 (local inter-process communication)
  • Zenoh Mode: Connects to topics published over the zenoh network
  • Both Mode: Supports both transports simultaneously (future feature)
Most users will use iox2 mode for local development and zenoh mode for distributed systems or remote visualization.

Topic Discovery

The bridge automatically discovers available topics:
  • Iox2 Topics: Discovered by querying iceoryx2’s service registry
  • Zenoh Topics: Discovered using zenoh’s query mechanism (when implemented)
You don’t need to manually configure topic names - the bridge finds them automatically.

Message Conversion

Messages are converted from Cerulion’s binary format to JSON:
  • With Schema: If a schema exists for the message type, it’s converted to structured JSON
  • Without Schema: If no schema is found, messages are returned as hex-encoded data
For best results, ensure schemas exist for the message types you want to visualize. Without schemas, you’ll only see raw hex data.

Rosbridge Compatibility

The bridge implements the Rosbridge protocol, which means:
  • Standard WebSocket communication
  • JSON message format
  • Compatible with any Rosbridge client
  • Works with Lichtblick out of the box

What Can You Visualize?

The bridge can visualize any Cerulion topic, including:

Sensor Data

IMU readings, camera feeds, lidar scans, and other sensor streams

Control Signals

Actuator commands, control inputs, and system state

Processed Data

Filtered data, transformed coordinates, and computed results

Custom Topics

Any topic you’ve created in your Cerulion projects

Visualizing ROS Data

You can also visualize existing ROS bags or ROS 2 data by combining Cerulion RCL Hooks with the visualization bridge:
  1. Use RCL Hooks to mirror ROS messages to Cerulion (see RCL Hooks documentation)
  2. Run the visualization bridge to expose those topics to Lichtblick
This workflow lets you visualize ROS bag playback or live ROS 2 topics in Lichtblick without modifying your ROS code. The RCL Hooks automatically capture ROS messages and mirror them to Cerulion, where the visualization bridge can then stream them to visualization tools.
This is particularly useful for analyzing ROS bag files or visualizing data from existing ROS 2 nodes that you don’t want to modify.

Architecture Overview

The bridge consists of:
  • WebSocket Server: Handles client connections and message streaming
  • Transport Adapters: Connect to iox2 or zenoh transports
  • Schema Registry: Converts messages using Cerulion schemas
  • Topic Manager: Discovers and manages topic subscriptions
The bridge runs as a separate process from your Cerulion nodes, so it doesn’t interfere with your data pipelines.

Benefits at a Glance

  • Real-time visualization - See your data as it flows
  • Multiple transport support - Works with both local and network topics
  • Automatic discovery - No manual topic configuration needed
  • Schema-driven - Uses your existing Cerulion schemas
  • Standard protocol - Rosbridge-compatible for broad tool support
  • Non-intrusive - Doesn’t affect your running Cerulion pipelines

Next Steps

Ready to start visualizing your Cerulion topics? Follow these guides: