OSMVisualizer is a ROS 2 node for visualizing OpenStreetMap (OSM) data in RViz2. It processes .osm
files specified via launch parameters and publishes markers for map elements, such as nodes, ways, and relations.
- Static File Loading: Reads the
.osm
filename from a launch file parameter (osm_filename
). - Advanced Visualization in RViz2:
- Displays map relations as colored line strips:
- Left ways are shown in lime.
- Right ways are shown in red.
- Relation areas are filled using polygon triangulation.
- Speed limits are visualized with a gradient color scale:
- Green for lower speeds.
- Blue for medium speeds.
- Red for higher speeds.
- One-way relations are marked with dynamically positioned direction arrows.
- Displays map relations as colored line strips:
- Dynamic Parameter Reconfiguration: Modify visualization settings like
line_width
,frame_id
, orspeed_color_max
during runtime without restarting the node. - Reusable Data Structures: Efficiently processes nodes, ways, and relations.
/osm_relations
(visualization_msgs/msg/MarkerArray): Marker array for relations (left and right ways)./osm_speed
(visualization_msgs/msg/MarkerArray): Marker array for relation areas, visualized with speed gradient colors./osm_one_way_arrows
(visualization_msgs/msg/MarkerArray): Marker array for one-way direction arrows.
osm_filename
(string): Path to the.osm
file to process.frame_id
(string): The coordinate frame for visualization markers (default:"map_gyor_0"
).line_width
(double): Width of the visualization lines (default:0.8
).center_map
(bool): Center the map in RViz2 (default:false
).speed_color_max
(double): Maximum speed limit for gradient visualization (default:90.0
).
Make sure your ROS 2 workspace is set up. Clone this repository into the src
directory and build it:
cd ~/ros2_ws/src && git clone https://github.com/jkk-research/lanelet2_rviz2
cd ~/ros2_ws && colcon build --packages-select lanelet2_rviz2 --symlink-install
source ~/ros2_ws/install/setup.bash
Launch the OSMVisualizer
node with a launch file specifying the .osm
filename:
ros2 launch lanelet2_rviz2 visualize_osm.launch.py
- Open RViz2:
rviz2
- Add a
MarkerArray
display. - Set the topics to:
/osm_relations
for line strips representing left and right ways./osm_speed
for filled relation areas with speed gradient./osm_one_way_arrows
for direction arrows.
Update visualization parameters during runtime using the ros2 param set
command. Example:
ros2 param set /osm_visualizer line_width 1.5
Or with rqt_reconfigure
:
ros2 run rqt_reconfigure rqt_reconfigure
sudo apt install ros-$ROS_DISTRO-pcl-ros
ros2 run pcl_ros pcd_to_pointcloud --ros-args -p file_name:=/home/he/dlio_map2.pcd -p tf_frame:=map_gyor_0 -p publishing_period_ms:=500 --qos-reliability best_effort