All Projects → noeperez → indires_navigation

noeperez / indires_navigation

Licence: BSD-3-Clause license
ROS packages for ground robot navigation and exploration

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to indires navigation

kr mav control
Code for quadrotor control
Stars: ✭ 31 (-65.56%)
Mutual labels:  ros
handsfree
HandsFree Open Source Robot Project
Stars: ✭ 139 (+54.44%)
Mutual labels:  ros
pocketsphinx
Updated ROS bindings to pocketsphinx
Stars: ✭ 36 (-60%)
Mutual labels:  ros
atl
Autonomous Quadrotor Landing
Stars: ✭ 12 (-86.67%)
Mutual labels:  ros
aruco
Aruco marker detector and pose estimation for AR and Robotics with ROS support
Stars: ✭ 93 (+3.33%)
Mutual labels:  ros
ws moveit
This ROS melodic workspace is created on Ubuntu 18.04. Here I worked on moveit & MTC projects like Pick, Place, Pouring task for multi-manipulator system using MoveIt Task Constructor(MTC).
Stars: ✭ 25 (-72.22%)
Mutual labels:  ros
tangobot
Android app to navigate using Tango services as input.
Stars: ✭ 15 (-83.33%)
Mutual labels:  ros
NuttX
Official micro-ROS RTOS
Stars: ✭ 63 (-30%)
Mutual labels:  ros
hybrid planning experiments
Sampler + Optimizing Motion Planning Demonstrations
Stars: ✭ 23 (-74.44%)
Mutual labels:  ros
ROS-Object-Detection-2Dto3D-RealsenseD435
Use the Intel D435 real-sensing camera to realize object detection based on the Yolov3-5 framework under the Opencv DNN(old version)/TersorRT(now) by ROS-melodic.Real-time display of the Pointcloud in the camera coordinate system.
Stars: ✭ 45 (-50%)
Mutual labels:  ros
Turtlebot Navigation
This project was completed on May 15, 2015. The goal of the project was to implement software system for frontier based exploration and navigation for turtlebot-like robots.
Stars: ✭ 28 (-68.89%)
Mutual labels:  ros
segment global planner
A ROS global planner plugin for segments tracking
Stars: ✭ 31 (-65.56%)
Mutual labels:  ros
mader
Trajectory Planner in Multi-Agent and Dynamic Environments
Stars: ✭ 252 (+180%)
Mutual labels:  ros
phoxi camera
ROS Package for PhoXi Scanner/Camera. If you like us, STAR US! :P
Stars: ✭ 35 (-61.11%)
Mutual labels:  ros
aztarna
aztarna, a footprinting tool for robots.
Stars: ✭ 85 (-5.56%)
Mutual labels:  ros
patchwork
Official page of Patchwork (RA-L'21 w/ IROS'21)
Stars: ✭ 174 (+93.33%)
Mutual labels:  ros
robosherlock
www.robosherlock.org
Stars: ✭ 23 (-74.44%)
Mutual labels:  ros
phidgets drivers
ROS drivers for various Phidgets devices
Stars: ✭ 30 (-66.67%)
Mutual labels:  ros
costmap depth camera
This is a costmap plugin for costmap_2d pkg. This plugin supports multiple depth cameras and run in real time.
Stars: ✭ 26 (-71.11%)
Mutual labels:  ros
ros hadoop
Hadoop splittable InputFormat for ROS. Process rosbag with Hadoop Spark and other HDFS compatible systems.
Stars: ✭ 92 (+2.22%)
Mutual labels:  ros

indires_navigation

THIS PACKAGE IS NOT LONGER MAINTAINED!

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 (Kinetic Distro) 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 Kinectic distro. 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).

  • indires_macro_actions: A set of navigation macro-actions have been implemented by using the actionlib library of ROS. This way, the navigation system is employed to perform different actions as reaching an indicated goal, perform an autonomous exploration, or teleoperate the robot.

  • control_state_machine: Python scripts that contains the finite state machine for the interaction between the actionlib macro-actions defined in indires_macro_actions.

The following image shows an example of the ros node graph of a simulation of the exploration and navigation system also using Gazebo as robot and environment simulator (nodes from indires_macro_actions and control_state_machine are not shown), and ethzasl_icp_mapper as SLAM algorithm [4] .

alt text

Configuration

The system does not include any SLAM or mapping algorithm. It relies on any external mapping algorithm which must be publishing an online map in the form of point cloud.

The files for simulation in Gazebo of the robot and the environments are not included.

  • What you need to configure:

    • Chose a SLAM or mapping algorithm that provides an online map in the form of pointcloud. The system listens to it in the topic /point_map [sensor_msgs/PointCloud2]. This can be changed through the parameter "pointcloud" indicated in the launch file adapted_move_base.launch.
    • Your robot (real or simulated) must be publishing a "reliable" odometry topic. The name of the odometry topic need to be indicated in different places:
      • Parameters "robot_odom_topic" and "odometry_topic" of the configuration file navigation_params.yaml of the package adapted_move_base.
      • Parameter "robot_topic" in the launch file pcl_filters.launch.
      • Parameter "odom_topic" in the launch file indires_macro_actions.launch.
    • You need a proper TF tree of your system. The robot frame (usually /base_link) and the frame of the sensor that is publishing the pointcloud (a rgb-d camera for instance) must be indicated in the files navigation_params.yaml and pcl_filters.launch.
    • The name of your topic for robot control commands [geometry_msgs/Twist] must be indicated in adapted_move_base.launch.

Functioning

After configuring your system, your simulation (or real robot) with the mapping algorithm must be launched. Then, you can try the navigation and exploration system by launching three launch files:

  • Navigation and exploration system:

roslaunch adapted_move_base adapted_move_base.launch

  • Navigation macro-actions:

roslaunch indires_macro_actions indires_macro_actions.launch

  • Finite State Machine that controls the macro-actions and a simple command-line program for testing:

roslaunch control_state_machine control_tester.launch

Version

This package has been tested under ROS MELODIC distribution.

Last modifications:

  • Removing dependency on FLANN library for NearestNeiborghs search. It has been replaced by a custom kdtree.

  • Update to ROS Melodic distro:

    • Dependency on dedicated costmap_2d package has been removed.
    • Adapted_move_base has been updated to be used in Melodic.
    • Tf1 replaced by tf2.

[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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].