This package provides different nodes which provides additional features related for navigation.
pose_visualiser
:- reads poses from a navigation goals yaml file in which poses are represented as
<NAME>: [x, y, theta]
pairs and - publishes two marker arrays: one array with arrow markers and another one with text markers
- reads poses from a navigation goals yaml file in which poses are represented as
/poses
: visualization_msgs.MarkerArray/pose_text
: visualization_msgs.MarkerArray
pose_visualiser.launch
: Launch file for thepose_visualiser
node. Two parameters can be specified in the launch file:pose_frame
: Frame in which the poses should be publishedpose_description_file
: Absolute path to a yaml file in which poses are represented as<NAME>: [x, y, theta]
pairs
path_length_calculator_node.cpp
: This node provides listens to nav_msgs Path topic (which contains a global plan for the mobile base) as an array of poses and calculates the path lenght based on the distance between two points of each pose.
event_in
: Start/Stop nodeplan
: Calculate length of this plan.
event_out
: Succes/Failure string outputpath_length
: Gives length of the path published on plan
path_length_calculator.launch
: Launch path_length_calculator_node.
pose_array_to_path_node.cpp
: Subscribes to pose array topic, republishes as nav_msgs/Path topic.
pose_array
: PoseArray input topic.
path
: Path output topic.
save_base_map_poses_to_file
: Used to create a file in the current folded which contains points of interest in a given map.
usage: save_base_map_poses_to_file [-h] [-n NODE_NAME] [-f FILE_NAME] [-r ROBOT_FRAME] [-m MAP_FRAME]
script to record navigation_goals.yaml
optional arguments:
-h, --help show this help message and exit
-n NODE_NAME, --node_name NODE_NAME
name of node to intiate (default: save_base_map_pose_to_file
-f FILE_NAME, --file_name FILE_NAME
name of file to append goals to (default: navigation_goals.yaml)
-r ROBOT_FRAME, --robot_frame ROBOT_FRAME
frame of robot base (default: /base_link)
-m MAP_FRAME, --map_frame MAP_FRAME
static frame, e.g. of map (default: /map)
map_saver
: Stores a map on the path of the package mcr_default_env_config using the node map_saver from map_server package.
The map name is introduced on the commandline once the script is running.
- "footprint": rectangular footprint of the robot
- "scan_front" and "scan_rear": laser scan topics
- "distances": Minimum distance from footprint to obstacle in the front, right, rear and left directions (in that order)
The Map Annotation Tool eases annotating simulated robot navigation maps with goal poses, by allowing storage, retrieval, and editing of navigational goal markers.
Authors:
- Sushant Vijay Chavan
- Ahmed Faisal Abdelrahman
The map annotation tool facilitates annotating navigation maps efficiently and flexibly. It includes the following functionalities:
- Setting and saving robot goal pose arrow markers on the map by clicking and dragging to set (x, y, theta)
- Editing set goal pose values from a drop-down menu
- Renaming goal pose markers
- Resizing the markers
- Reloading previously saved goal poses
The following GIF demonstrates the map annotation tool being used to add and update a new pose on RViz:
Installing the plugin requires simply cloning this repository in the catkin workspace and building. For a workspace named catkin_ws in the root directory:
$ cd ~/catkin_ws/src/
$ git clone git@github.com:b-it-bots/map_annotation_tool.git
$ catkin_make or catkin build
The tool can be used by following these steps:
- Having started RViz, click on the "Add a new tool" button (+) on the top panel
- In the pop-up window, double-click on the MapAnnotationTool. At this point, any goals saved to the file will appear as markers on the map (see instructions for file path settings below)
- Open the "Tool Properties" panel from the "Panels" tab. The panel contains the Map Annotation Field drop-down menu, from which navigation goals can be edited.
- To place a new goal marker, click on "Map Annotation Tool" on the top panel.
- On the map, click on the desired location on the map, and while holding the left mouse button, drag the cursor around to set the desired orientation. Releasing the left mouse button sets the new navigation pose.
- To change the size of the pose markers, adjust the value in the "Marker Size" field.
- To change goal properties, expand the "Marker Container" drop-down list, and expand the entry of the goal pose to be edited.
- To change the name, position in x or y, or orientation, edit the respective field.
The navigational poses saved to and retrieved to a YAML file (navigation_goals.yaml), and stored in the following path in the catkin workspace:
~/catkin_ws/src/mas_common_robotics/mcr_environments/mcr_default_env_config/[ROBOT_ENV]
The containing folder is named according to the ROBOT_ENV environment variable. In order to read from the file and write to it correctly, this must be correctly set before using the tool.