The topological_map_ros
package uses Networkx to create a topological map representation.
-
~topological_path_plan
(topological_map_ros/TopologicalPath)
Get a list of nodes and directions to get from a source node to a goal node -
~topological_position
(topological_map_ros/TopologicalPosition)
Get the topological position based on the pose of the robot
You can do so with the following instructions:
- Launch the topological_server:
roslaunch topological_map_ros topological_map.launch
- Make a service call from the terminal, e.g.
rosservice call /topological_path_plan "source: 'kitchen' goal: 'bar'"
When using the real robot (or at least the bringup), it's possible to test the TopologicalPosition
service with the following instructions:
- Launch the topological_server:
roslaunch topological_map_ros topological_map.launch
- Run the map server. In
mdr_environments
, there is a handy launch file if you are testing this on your laptop:roslaunch mdr_environments rviz.launch
- Launch the
roslaunch topological_map_ros robot_pose_test.launch
- Move the robot to the new area where you want to test or, if you are using your laptop, use the
2D Pose Estimate
button in rviz to move the robot to a different place. - Publish from the terminal
rostopic pub /robot_pose_test/event_in std_msgs/String "data: ''"