A collection of ROS 2 packages for using S57 ENC (Electronic Navigation Charts) in robotic navigation.
This suite allows you to load S57 charts, convert them into Grid Maps, and use them directly in the Nav2 stack as a costmap layer.
- s57_grids: The core node. Reads S57 files and publishes them as
grid_mapmessages. - s57_layer: A
nav2_costmap_2dplugin. Subscribes tos57_gridsoutputs and adds them to the costmap (marking shallow water, restricted areas, etc. as obstacles). - marine_charts: Underlying C++ library for parsing S57 data.
- s57_msgs: Custom service and message definitions.
- Data Prep: Acquire S57 ENC files (
.000). - Launch: Start
s57_grids_nodepointing to your data directory. - Configure: Set up your Nav2 usage to include the
s57_layerplugin. - Navigate: As the robot moves,
s57_layerdynamically requests map data froms57_gridsbased on the robot's location.
See s57_grids/README.md for details on running the grid publisher. See s57_layer/README.md for details on configuring the Nav2 plugin.