Auto Mapping ROS software for autonomously constructing a High Definition Map using Multiple Robots.
This application provides the user with the ability to autonomously navigate a blueprint/floorplans autonomously and cover the entire free space to build a high definition map using SLAM Software (Eg. Google Cartographer) using multiple autonomous robots (F110 Cars).
Current Capabilities
- Construct Graph that covers the free space in the user defined area from image of map
- Run Vehicle Routing for assigning each vehicle the locations that they need to explore
- Autonomously navigate multiple cars on the routes decided for them
Capabilities to be added in future
- Add set of complex maneouvres Eg. Reverse, Car interactions
- Add a local planner layer between the global planner (FMT Star) and controller (pure pursuit)
- Add Start Stop Signals for cars
- Explore the use of set of commands (go right, take second left) + wall follower instead of a the current planning pipeline where reasonable estimate of current pose of robot (localization) is very important.
How to run this code:
Install dependencies
sudo apt-get install libconfig++-dev
You will need to build the simulator. You can follow the tutorial here to build the simulator.
This repository depends on a planner service. You can use the FMT* Planning Service from my repository here.
cd catkin_ws/src
git clone https://github.com/YashTrikannad/fmt_star_ros.git
cd ..
catkin_make
Clone and Make this repository
cd catkin_ws/src
git clone https://github.com/YashTrikannad/auto_mapping_ros.git
cd ..
catkin_make
Source the ROS environment before launching ROS nodes in new terminal
cd catkin_ws
source devel/setup.bash
Launching Autonomous Mapper
The first step is to find the best optimzed routes for the cars to follow. We run ant colony optimization (ACO) in background to get multiple routes for the available cars. Note- All cars may not be used depending on your capacity parameters for ACO.
To generate the csv files of the route sequences, you'll need to run the multi sequence generator. The multi sequence generator depends on configuration parameters inside the aco_router.
- Launch roscore
cd catkin_ws
source devel/setup.bash
roscore
- In new terminal, run the seqeunce creator
cd catkin_ws
source devel/setup.bash
rosrun auto_mapping_ros coverage_sequence_creator
-
When you see a window popping up with your map titled as Functional Area Registration, click on the top left corner and then the bottom right corner which describes the rectangular area where you want the auto mapper to function.
-
After the graph is generated, a window will pop up asking you for the initial depot (starting position for your cars). Click on one of the nodes where you want your cars to start.
This should generate sequences in csv folder for ideal number of cars <= vehicles_available parameter set in the config.
To run the auto mapping module once the sequence is saved, you'll also need to run the FMT* Sevice:
In Terminal 1, launch the simulator:
roslaunch f110_simulator simulator.launch
In Terminal 2, run your auto mapping module which will also start the fmt star action server:
roslaunch auto_mapping_ros auto_mapping_ros.launch