Skip to content
Multi-Map Navigation - ROS
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
action
icons/classes
images
launch
media
msg
rviz
src
srv
CMakeLists.txt
LICENSE
README.md
package.xml
plugin_description.xml

README.md

Multi-Map Navigation

IMAGE ALT TEXT HERE

multi_map_navigation allows you to break up large static-maps into smaller, more managable chunks, and interconnect them through a series of 'wormholes'. This allows you to isolate areas behind closed doors, or experiment with autonomous navigation across multiple floors with premeditated map-transitions.

This package is a catkinized version of an old stack with additional functionality and GUI controls.

Dependencies & Prerequisites

Core: ROS Hydro, Catkin: actionlib, warehouse_ros, rviz, map_server (see package.xml)

Additional: (Custom Requirements): map_store, namespace_mux

Others: Qt4 (or higher), MongoDB 2.6

Installation

Clone package & custom dependencies:

$ cd <catkin_ws>/src
$ git clone https://github.com/MohitShridhar/multi_map_navigation.git
$ git clone https://github.com/MohitShridhar/namespace_mux.git
$ git clone https://github.com/MohitShridhar/map_store.git

Resolve other dependencies (in Ubuntu):

$ cd <catkin_ws>
$ rosdep install --from-paths src --ignore-src --rosdistro hydro -y

Compile:

$ cd <catkin_ws>
$ catkin_make --pkg map_store namespace_mux multi_map_navigation

Check that the messages & services were properly generated:

$ rosmsg list
...
multi_map_navigation/MultiMapNavigationAction
multi_map_navigation/MultiMapNavigationActionFeedback
multi_map_navigation/MultiMapNavigationActionGoal
multi_map_navigation/MultiMapNavigationActionResult
multi_map_navigation/MultiMapNavigationFeedback
multi_map_navigation/MultiMapNavigationGoal
multi_map_navigation/MultiMapNavigationResult
multi_map_navigation/MultiMapNavigationTransitionAction
multi_map_navigation/MultiMapNavigationTransitionActionFeedback
multi_map_navigation/MultiMapNavigationTransitionActionGoal
multi_map_navigation/MultiMapNavigationTransitionActionResult
multi_map_navigation/MultiMapNavigationTransitionFeedback
multi_map_navigation/MultiMapNavigationTransitionGoal
multi_map_navigation/MultiMapNavigationTransitionResult
...
$ rossrv list
...
multi_map_navigation/ReinitManager
multi_map_navigation/SetMap
...

Usage

Launch file

Once you have setup the config file, spawn the 'multi_map_navigation' node in your launch file to manage navigation & map-transitions:

<group ns="robot0">
...
    <node pkg="multi_map_navigation" type="multi_map_navigation_manager.py" name="multi_map_navigation" output="screen">
      <param name="definition_file" value="$(find <navigation_stack>)/config/<config>.yaml" />
      <param name="transition_types" value="elevator_blast" />

      <param name="robot_namespace" value="robot0"/>
      <param name="base_frame" value="base_link"/>
    </node>
...
</group>

The robot_namespace parameter is redundant. See issue #1

Guide:

See the wiki for more details on setup & usage.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.