RIVeR-Lab / tentabot

Tentabot: Navigation Framework for Mobile Robots by Evaluating Motion Primitives (Tentacles)
45 stars 21 forks source link
deep-reinforcement-learning dynamic-environments gazebo heuristic-evaluation local-mapping mobile-robots motion-primitives reactive-navigation robotics ros trajectory-sampling

Tentabot-DRL: Deep Reinforcement Learning based Robot Navigation in Dynamic Environments using Occupancy Values of Motion Primitives

teaser teaser teaser teaser teaser teaser

Tentabot-Heuristic: Reactive Navigation Framework for Mobile Robots by Heuristically Evaluated Pre-sampled Trajectories (Tentacles)

teaser teaser

1. Citation

@inproceedings{akmandor2022deep,
  title={Deep reinforcement learning based robot navigation in dynamic environments using occupancy values of motion primitives},
  author={Akmandor, Ne{\c{s}}et {\"U}nver and Li, Hongyu and Lvov, Gary and Dusel, Eric and Padir, Ta{\c{s}}kin},
  booktitle={2022 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
  pages={11687--11694},
  year={2022},
  organization={IEEE}
}
@article{akmandor2021reactive,
  title={Reactive navigation framework for mobile robots by heuristically evaluated pre-sampled trajectories},
  author={Akmandor, Ne{\c{s}}et {\"U}nver and Padir, Ta{\c{s}}kin},
  journal={International Journal of Robotic Computing},
  volume={3},
  number={1},
  pages={47--68},
  year={2021}
}
@inproceedings{akmandor20203d,
  title={A 3d reactive navigation algorithm for mobile robots by using tentacle-based sampling},
  author={Akmandor, Ne{\c{s}}et {\"U}nver and Padir, Ta{\c{s}}kin},
  booktitle={2020 Fourth IEEE International Conference on Robotic Computing (IRC)},
  pages={9--16},
  year={2020},
  organization={IEEE}
}

2. Related Papers

2. Videos

3 Installation

The system has been tested with 20.04 (ROS Noetic).

Follow the tutorials to

To install tentabot, either follow the manual installation instructions, or attempt an automated install with the following instructions (experimental):

3.1 Clone the tentabot repository into the src folder of your catkin workspace, and change into the tentabot directory.

git clone git@github.com:RIVeR-Lab/tentabot.git
cd tentabot

3.2 Run the bash script to automate installing all dependencies.

Note: This script requires superuser and makes system changes. Review the script before running.
chmod +x install_tentabot.sh
./install_tentabot.sh

3.3 Source the workspace, after successfully built.

source devel/setup.bash

4. Simulation

Tentabot features out of the box simulation support for certain robots. You can view the status of this support here:

Robot / Model Manufacturer Simulation Real Methods
Turtlebot 3 / Burger Robotis :heavy_check_mark: heuristic/drl
Firefly AscTec :heavy_check_mark: heuristic/drl
ROSbot Husarion :heavy_check_mark: heuristic/drl
Stretch Hello Robot :heavy_check_mark: :heavy_check_mark: heuristic/drl
Jackal Clearpath Robotics :heavy_check_mark: :heavy_check_mark: heuristic
Turtlebot 2 Turtlebot :heavy_check_mark: heuristic/drl

Tentabot navigation framework is formed by several submodules such as:

a. Simulation Environment (Gazebo)
b. Data Visualization (Rviz)
c. Map Utility Server

4.1 Configure the configuration files located in:

4.1.1 To enable Tentabot DRL, set "drl_service_flag: true" in the Tentabot Server configuration file.
4.1.2 Set the "mode" parameter in the Tentabot Server configuration file as either "training" or "testing".
4.1.3 To continue "training" or start "testing", set the "initial_training_path" parameter in the Tentabot Server configuration file by providing the location of a trained model.

4.2 Open the tentabot_framework.launch file.

4.2.1 Configure the submodule flags.
Argument Description
sim_flag If True, it launches Gazebo simulation.
rviz_flag If True, it launches Rviz for data visualization.
map_utility_flag If True, it runs the Map Utility Server.
tentabot_server_flag If True, it launches the Tentabot Server.
4.2.2 Set the names of configuration files.
Argument Examples File Location
config_task_name config_task_nav_cylinders0_firefly, config_task_nav_forestX_firefly, config_task_nav_turtlebot3, config_task_nav_stretch, config_task_nav_jackal, config_task_nav_jackal_real, config_task_nav_rosbot task_nav
config_map_utility config_map_utility_cylinders0_firefly, config_map_utility_forestX_firefly, config_map_utility_turtlebot3, config_map_utility_stretch, config_map_utility_jackal, config_map_utility_jackal_real, config_map_utility_rosbot map_utility
config_tentabot_server config_tentabot_server_firefly, config_tentabot_server_turtlebot3, config_tentabot_server_stretch, config_tentabot_server_jackal, config_tentabot_server_jackal_real, config_tentabot_server_rosbot tentabot_server

4.3 Run the Tentabot Framework launch file in a terminal window:

roslaunch tentabot tentabot_framework.launch

5. Real Robot

We tested our framework in real robot platforms including Turtlebot2, Stretch and Jackal. teaser teaser

5.1 Run the robot bring-up (Example: Jackal) which includes:

5.2 Run a localization estimation algorithm (Example: ROS Gmapping).

5.3 Follow all steps in the previous section noting that in step 4.2.1, set the "sim_flag" argument as False in tentabot_framework.launch file.

6. Contributors

Neset Unver Akmandor | akmandor.n@northeastern.edu \ Eric Dusel | dusel.e@northeastern.edu \ Gary Lvov | lvov.g@northeastern.edu | www.garylvov.com \ Hongyu Li | li.hongyu1@northeastern.edu

7. Credentials

Tentabot was developed at the RIVeR Lab, Northeastern University.