Coder Social home page Coder Social logo

xunmengfunder / srl_global_planner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from srl-freiburg/srl_global_planner

0.0 0.0 0.0 943 KB

The SRL_GLOBAL_PLANNER package provides an implementation of the sampling based motion planners (RRT, RGG, RRT*, Theta*-RRT) as global planner plugin for Move-base, a ROS framework

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

C++ 53.45% MATLAB 0.24% M 0.01% C 15.86% Makefile 1.18% HTML 28.41% CSS 0.01% JavaScript 0.60% Perl 0.06% CMake 0.18%

srl_global_planner's Introduction

srl_global_planner

The srl_global_planner ROS package provides an implementation of the sampling based motion planners (RRT, RRT*, Theta*-RRT) as global planner plugin for move_base, a ROS framework. Please refer to http://wiki.ros.org/move_base, for a detailed description of the move_base framework. All the algorithms exploit the POSQ steer function, but other steer functions are available (single and double integrator, Dubins curve). For additional info regarding the POSQ steer function and the learned distance metric used by srl_global_planner refer to the following papers:

  • Distance Metric Learning for RRT-Based Motion Planning with Constant-Time Inference, IEEE International Conference on Robotics and Automation (ICRA'15), Seattle, USA, 2015.
  • A Novel RRT Extend Function for Efficient and Smooth Mobile Robot Motion Planning, IEEE/RSJ Int. Conference on Intelligent Robots and Systems (IROS'14), Chicago, USA, 2014.

alt tag

Requirements

  • ROS (including visualization rools -> rviz), tested on Indigo and Hydro
  • ros-hydro-navigation or ros-indigo-navigation
  • Eigen3
  • Boost >= 1.46
  • C++11 compiler

Installation

Clone the package into you catkin workspace

  • cd [workspace]/src
  • git clone https://github.com/srl-freiburg/srl_global_planner.git
  • cd ../
  • catkin_make or catkin build

Usage

  • roslaunch srl_global_planner move_base_global_srl.launch will launch the global planner node. You can launch the planner with different configurations, by varying some parameters:
    • TYPE_PLANNER, set to:
      • 0, use RRT
      • 1, use RRT* only partial rewiring
      • 2, use RRT*
    • NUMBER_UPDATE_TRAJ, set to:
      • Choose after how many cost improvements the planner could stop, currently set at 2. Minimum value is 1. Higher the value, higher the computaion time required to generate a trajectory
    • BOX :
      • if it is set to 1, the nearest vertex is selected from a weighted box according to the Ball-Box Theorem.
    • RADIUS :
      • the size of the radius where the near neighbor set is generated, in case you use RRT* select -1 so to have the RRT* shrinking ball.
    • RHO :
      • end condition for the POSQ steer function, should be set to a value of few cm.
    • DT :
      • integration time step of the POSQ steer function, maximum value 0.5s
    • TYPE_SAMPLING :
      • if TYPE_SAMPLING == 0 support set as uniform over a strips following a discrete path generate by a Theta* algorithm
      • If TYPE_SAMPLING == 1 support set as Gaussian Mixture over the Theta* path
      • if TYPE_SAMPLING == 2 support set as gaussians over a spline fitting the Theta* waypoints
      • if TYPE_SAMPLING == 3 support for Theta*-RRT, if set need to specify the range where to set orientations OR_RANGE and the width of the strip along the Theta* path WIDTH_STRIP
      • if TYPE_SAMPLING == 4 support set as the entire state space, the dimension of the state space are read from the grid generate by the move_base framework
      • if TYPE_SAMPLING == 5 Path Biasing along the current available trajectory. If used need to set also the biasing probability BIAS_PROB and the DISPERSION
    • GOAL_BIASING
      • if set to 1 activate goal biasing.
    • GOAL_BIASING_THS
      • set the probability to select a state not in the state space
    • ADD_COST_FROM_COSTMAP, set to true if you want to add cost from global cost map
    • ADD_COST_PATHLENGTH, set to true if you want to add the cost associated to path length and changes of heading
    • ADD_COST_THETASTAR, set to true if you want to add cost resembling closeness to thetastar path
    • Params related to the distance metric, only one of them shoul be set to 1. LEARNED and NOTLEARNED select the best vertex from the spherical neighborhood with radius equal to the parameter RADIUS:
      • LEARNED, set to 1, if you want to find the nearest vertex according to the learned cost
      • FINDNEAREST, set to 1 if you want to find the nearest vertex according to the Kd Tree Euclidean Distance
      • NOTLEARNED, set to 1 if you want to find the nearest vertex according to the cost computed over extensions of POSQ path
    • TIMECOUNTER, set to 1 if you want to specify the maximum amount of seconds your planner should work.
    • MAXTIME, max number of seconds allowed to find a path
    • max_iterations, if TIMECOUNTER is 0, this is the maximum number of iterations the planner will execute to find a path,

Developers

Any contribution to the software is welcome. Contact the current developers for any info:

TODOs:

srl_global_planner's People

Contributors

palmieri avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.