Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pixi Badge

Custom message publishers for testing rewire dynamic mappings.

Demonstrates how rewire can visualize arbitrary ROS 2 message types through JSON5 mapping configuration, without requiring built-in converter support.

Topics

Topic Type Rerun archetypes
/motor/status custom_mappings/MotorStatus Scalars, TextLog
/detections custom_mappings/Detections Points3D, Scalars
/rigidbodies custom_mappings/RigidBodies InstancePoses3D, Points3D, Scalars
/gps custom_mappings/GpsReading GeoPoints
/force custom_mappings/ForceVector Arrows3D, Scalars
/detections_2d custom_mappings/Detections2D Points2D, Scalars
/bounding_boxes_2d custom_mappings/BoundingBoxes2D Boxes2D
/bounding_boxes_3d custom_mappings/BoundingBoxes3D Boxes3D
/trajectory custom_mappings/Trajectory LineStrips3D

Setup

Requires pixi.

pixi install

This project uses pixi-build-ros to build the custom_mappings ROS package as a conda dependency. The ros-jazzy-custom-mappings (or ros-humble-custom-mappings) package is built from source and installed into the pixi environment automatically.

Environments

Environment ROS Distro
default / jazzy Jazzy
humble Humble
kilted Kilted
lyrical Lyrical

Usage

pixi run app

In a separate terminal, run rewire to visualize in Rerun:

pixi run viz

app runs the custom message publisher. viz runs rewire record with config/rewire.json5 (all topics except /rosout and /parameter_events) and custom type mappings from config/mappings.json5.

Custom mappings go through --mappings (a JSON5 array of entries). The separate --config flag expects a bridge config file (a JSON5 object with topics, output, zenoh, ... keys), so pointing it at mappings.json5 fails with expected opening brace at line 1 column 1.

Add -e <env> to pick a ROS 2 distro other than the default (jazzy):

pixi run -e humble app
pixi run -e kilted app
pixi run -e lyrical app

Development

After modifying the C++ package in custom_mappings/, reinstall the local package:

pixi reinstall ros-jazzy-custom-mappings

How it works

The publisher node cycles synthetic data for every custom message type defined under custom_mappings/msg/. Each type is mapped to one or more Rerun archetypes in config/mappings.json5 (scalars, points, boxes, geo points, arrows, line strips, text logs).

About

A basic example of Rewire's custom mapping feature

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages