Skip to content

Topological Map Definition

Marc Hanheide edited this page Oct 15, 2026 · 2 revisions

Topological Map Message Definitions

In the ROS 2 version the map manager publishes the map as a YAML string (std_msgs/String) on the latched topic /topological_map_2; see Topological YAML Format. The message types below are still defined in topological_navigation_msgs (inherited from STRANDS) but are not used for the map topic.

All definitions live in the topological_navigation_msgs package.

TopologicalMap

string name          # topological map name, generally the same as in the pointset field
string map           # 2D metric map name (not used currently)
string pointset      # name of the group of nodes composing the map, typically the same as name
string last_updated  # last time the map was modified
topological_navigation_msgs/TopologicalNode[] nodes

TopologicalNode

Nodes are the locations the robot navigates to, expressed in the map frame.

string name                 # node name
string map                  # 2D metric map name (not used currently)
string pointset             # name of the group of nodes composing the map
geometry_msgs/Pose pose     # node pose in the map frame
float64 yaw_goal_tolerance  # tolerance in radians
float64 xy_goal_tolerance   # tolerance in metres
Vertex[] verts              # vertices of the influence zone, relative to the node pose
Edge[] edges                # outward edges connecting this node to others
string localise_by_topic    # configuration for localisation by topic

Edge

Edges are normally stored inside the node they originate from.

string edge_id                        # identifier of the edge
string node                           # name of the destination node
string action                         # name of the navigation action
float64 top_vel                       # maximum speed in [m/s]
string map_2d                         # name of the 2D map
float64 inflation_radius              # obstacle inflation radius on this edge, 0 for default
string recovery_behaviours_config     # not currently used, typically a JSON string

Vertex

float32 x
float32 y

Other interfaces

Type Kind Used for
GotoNode action Navigate to a node (/topological_navigation)
ExecutePolicyMode action Execute a pre-computed NavRoute
RecordMap action Record a map (/record)
BuildTopPrediction action Legacy prediction interface
LocalisePose service Current and closest node for an arbitrary pose
WriteTopologicalMap, LoadTmap service Save and load maps (map manager, map recorder)
GetRouteTo, GetRouteBetween service Route queries (types only)
EvaluateEdge, EvaluateNode, ReconfAtEdges, LoadTopoNavTestScenario, RunTopoNavTestScenario service Legacy, no ROS 2 implementation in this repository
NavRoute, TopologicalRoute, ClosestEdges, NavStatistics, CurrentEdge, TopologicalOccupiedNode message Route, localisation and statistics topics
AddNodeReq, AddEdgeReq, SetInfluenceZoneReq, UpdateEdgeConfigReq message Map editing request types

The full field listing of every message, service and action is in the repository README.

Clone this wiki locally