This repository contains LCM message definitions and a tool to convert ROS messages to LCM messages.
- The Python msg to lcm converter is used to convert the ROS messages to LCM messages.
python3 ros_to_lcm.py ros_msgs lcm_files- The lcm-gen command is used to generate the language bindings for the LCM message definitions.
./lcm_batch_processor.sh -p lcm_files -o python_lcm_msgs/lcm_msgs- Then to make sure tha Python messages package is installable, run
cd python_lcm_msgs
python3 fix_imports.py- The Foxglove bridge converts all LCM messages to JSON and sends them via WebSocket to Foxglove for visualization.
python3 lcm_foxglove_bridge.pyTo use lcm-spy with your custom message types, you need to build a JAR file containing the Java bindings for your LCM message types.
- Make sure you have the Java LCM bindings generated in the
java_lcm_msgsdirectory. - Run the build script to create the JAR file:
./build_lcm_jar.shThis will compile all Java message definitions and create lcm_types.jar in the project directory.
Use the provided script to run lcm-spy with your custom JAR file:
./run_lcm_spy.shYou can also pass additional arguments to lcm-spy:
# For a specific LCM URL
./run_lcm_spy.sh --lcm-url=udpm://239.255.76.67:7667?ttl=1
# For a specific interface
./run_lcm_spy.sh --lcm-url=udpm://<multicast-address>:<port>When running lcm-spy this way, all your custom message types will be automatically decoded and displayed in the lcm-spy interface.
If you prefer to run lcm-spy manually, use:
CLASSPATH=/path/to/lcm.jar:lcm_types.jar lcm-spyReplace /path/to/lcm.jar with the actual path to the LCM Java library on your system.