HsiaoRay / indires_navigation

ROS packages for ground robot navigation and exploration

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

indires_navigation

ROS metapackage for ground robot 3D navigation and exploration developed for the European Project INDIRES (http://indires.eu/). Further details can be found in: N. Pérez-Higueras, A. Jardón, A.J. Rodríguez, C. Balaguer. 3D Exploration and Navigation with Optimal-RRT Planners for Ground Robots in Indoor Incidents. Sensors 2020, 20(1), 220; https://doi.org/10.3390/s20010220

alt text

This metapackage contains:

  • rrt_planners:
    C++ Library and ROS wrapper for path planning in 3D. It contains the following planners:

    • Simple RRTStar [1] : RRT* planner in x,y,z coordinates without reasoning about kinodynamic constraints.
    • RRT [2] : kinodynamic RRT planner in x,y,z,yaw coordinates.
    • Quick RRTStar [3] : Quick-RRT* planner in x,y,z coordinates without reasoning about kinodynamic constraints.
  • navigation_features_3d:
    Package for calculation of sample validity and feature functions employed by the cost functions of the RRT planners for robot path planning and exploration.

  • pcl_filters:
    ROS package to apply different filters to pointclouds. It makes use of PCL 1.9.

  • global_rrt_planner:
    ROS plugin that allows to employ the RRT planners as global planner in the move_base architecture for navigation under ROS.

  • local_3d_planner:
    A local controller in 3D to follow a given global path. It follows the ROS BaseLocalPlanner plugin that allows to employ the controller as local planner in the move_base architecture for navigation under ROS.

  • adapted_move_base:
    This is a modified version of the original move_base package of ROS. This modification allows to use other global or local planners (following the ROS move_base premises) that do not use the standard ROS Costamps for planning. Two new boolean parameters are added to indicate the use of the global and/or local costmap (use_global_costmap2d and use_local_costmap2d).

  • costmap_2d:
    The regular costmap_2d package of ROS has a dependency on PCL. Therefore, as we are using here the version 1.9.1 of the PCL library, we need to include this package with the aim of keeping everything working properly. Only the CMakeLists.txt has been modified to take the PCL version 1.9.1 in comparison with the original ROS package (Kinetic distro).

The following image shows an example of the ros node graph of a complete simulation of the exploration and navigation system also using Gazebo as robot and environment simulator, and ethzasl_icp_mapper as SLAM algorithm [4] .

alt text

The package is a work in progress used in research prototyping. Pull requests and/or issues are highly encouraged.

[1] Karaman, S., & Frazzoli, E. (2011). Sampling-based algorithms for optimal motion planning. The International Journal of Robotics Research, 30(7), 846–894. https://doi.org/10.1177/0278364911406761

[2] Lavalle, S. M. (1998). Rapidly-Exploring Random Trees: A New Tool for Path Planning. In (Vol. 129). https://doi.org/10.1.1.35.1853

[3] In-Bae Jeong, Seung-Jae Lee, Jong-Hwan Kim (2019)- Quick-RRT*: Triangular inequality-based implementation of RRT* with improved initial solution and convergence rate, Expert Systems with Applications, Volume 123, 2019, Pages 82-90, ISSN 0957-4174, https://doi.org/10.1016/j.eswa.2019.01.032.

[4] F. Pomerleau F., Colas F., Siegwart R, and Magnenat S. (2013) Comparing ICP variants on real-world data sets. Autonomous Robots, 34(3), pages 133-148.

About

ROS packages for ground robot navigation and exploration

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:C++ 95.8%Language:CMake 3.1%Language:Python 0.8%Language:C 0.3%