Giter VIP home page Giter VIP logo

maohaihua / lattice_planner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from marinakollmitz/lattice_planner

0.0 0.0 0.0 70 KB

The lattice_planner package provides a move_base global planner plugin for a time-bounded A* lattice planner. The planner is designed to plan time dependent, dynamically feasible navigation paths for robots with differential drive constraints. It uses a dynamic cost map which is based on the ROS costmap representation from the costmap_2d package.

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

CMake 0.55% C++ 99.45%

lattice_planner's Introduction

lattice_planner

The lattice_planner package provides a move_base global planner plugin for a time-bounded A* lattice planner. The planner is designed to plan time dependent, dynamically feasible navigation paths for robots with differential drive constraints. It uses a dynamic cost map which is based on the ROS costmap representation from the costmap_2d package.

the following ROS Parameters can be specified for the lattice_planner:

prefix for all ROS params: move_base/TBLattice/

cost factors:

  • lethal_cost --> cost associated with forbidden areas (e.g. obstacles)
  • time_cost_factor --> cost factor for path execution time
  • step_cost_factor --> cost factor for path length
  • rotation_cost_factor --> cost factor for the accumulated turns along a planned path
  • environment_cost_factor --> cost factor for constraints defined in the dynamic environment, according to the dynamic cost map
  • dynamic_layers_plugin --> fully qualified plugin type for dynamic layers to be used (must adhere to lattice_planner::DynamicLayers interface. See pluginlib doc on ROS wiki for help)

planner preferences:

  • allow_unknown --> whether the planner is allowed to expand into unknown map regions
  • xy_goal_tolerance --> the Euclidean goal tolerance distance in meters
  • yaw_goal_tolerance --> the rotational goal tolerance in rad
  • time_resolution --> time resolution of the discretized configuration space in seconds
  • collision_check_time_resolution --> time increment to slice trajectories for collision checking in seconds
  • time_steps_lookahead --> maximum number of time steps for planning
  • planning_timeout --> timeout for the planning after which the best solution found so far is returned
  • passive_navigation --> flag for planning dynamically for the max number of time steps, not only until the goal is found
  • publish_expanded --> flag for publishing the expanded search tree for visualization

flags for simplifying the path search - violate optimality but accelerate the search procedure:

  • easy_deceleration --> flag for simplified planning of deceleration at the goal
  • easy_turn_at_start --> flag for simplified planning of turn in place at the start
  • easy_turn_at_goal --> flag for simplified planning of turn in place at the goal

motion constraints of the robot:

  • min_vel_x --> minimum forward velocity of the robot in meters per second (can be negative)
  • max_vel_x --> maximum forward velocity of the robot in meters per second
  • acceleration_x --> forward acceleration in meters per second^2
  • min_vel_phi --> minimum angular velocity of the robot in radians per second (can be negative)
  • max_vel_phi --> maximum angular velocity of the robot in radians per second
  • acceleration_phi --> angular acceleration in radians per second^2

lattice_planner's People

Contributors

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