All Projects → LetsPlayNow → TrajectoryPlanner

LetsPlayNow / TrajectoryPlanner

Licence: MIT license
ROS - based trajectory planning for a robot on OccupancyGrid

Programming Languages

python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to TrajectoryPlanner

Pathfinding
A pmmp virion (library) for pathfinding using A*
Stars: ✭ 36 (+38.46%)
Mutual labels:  astar
Graphhopper
Open source routing engine for OpenStreetMap. Use it as Java library or standalone web server.
Stars: ✭ 3,457 (+13196.15%)
Mutual labels:  astar
Artificial-Intelligence-State-Space-Search
Different Searching algorithms (DFS, BFS, IDS, Greedy, A*) opting to find optimal path from source to destination
Stars: ✭ 24 (-7.69%)
Mutual labels:  astar
path demo
An experimental set of pathfinding algorithms for video games
Stars: ✭ 16 (-38.46%)
Mutual labels:  astar
unity-pathfinding
Find paths in Unity Tilemaps with A* Search
Stars: ✭ 70 (+169.23%)
Mutual labels:  astar
Pathplanning
Common used path planning algorithms with animations.
Stars: ✭ 3,418 (+13046.15%)
Mutual labels:  astar
Astar
ROS package of A star algorithm
Stars: ✭ 42 (+61.54%)
Mutual labels:  astar
psycopgr
A Python wrapper of pgRouting for routing from nodes to nodes on real map.
Stars: ✭ 24 (-7.69%)
Mutual labels:  astar
Baritone
google maps for block game
Stars: ✭ 3,868 (+14776.92%)
Mutual labels:  astar
pathfinding-visualizer
Website built using React Framework for visualizing Pathfinding and Maze Generation Algorithms.
Stars: ✭ 33 (+26.92%)
Mutual labels:  astar
NavMeshDemo
Unity client navmesh export to server for pathfinding
Stars: ✭ 31 (+19.23%)
Mutual labels:  astar
maze solver
This project solves self-made maze in a variety of ways: A-star, Q-learning and Deep Q-network.
Stars: ✭ 24 (-7.69%)
Mutual labels:  astar
Easystarjs
An asynchronous A* pathfinding API written in Javascript.
Stars: ✭ 1,743 (+6603.85%)
Mutual labels:  astar
tektosyne
The Tektosyne Library for Java provides algorithms for computational geometry and graph-based pathfinding, along with supporting mathematical utilities and specialized collections.
Stars: ✭ 52 (+100%)
Mutual labels:  astar
SS-Replan
Online Replanning in Belief Space for Partially Observable Task and Motion Problems
Stars: ✭ 43 (+65.38%)
Mutual labels:  planning-algorithms
astar-gridmap-2d
A* algorithms for 2D gridmaps. The fastest one, until you prove me wrong
Stars: ✭ 43 (+65.38%)
Mutual labels:  astar
Valhalla
Open Source Routing Engine for OpenStreetMap
Stars: ✭ 1,794 (+6800%)
Mutual labels:  astar
LightOSM.jl
A Julia package for downloading and analysing geospatial data from OpenStreetMap APIs.
Stars: ✭ 32 (+23.08%)
Mutual labels:  astar
ordered
Entropy-controlled contexts in Python
Stars: ✭ 36 (+38.46%)
Mutual labels:  planning-algorithms
godot-hexgrid
a godot based framework to build hex map boardgames.
Stars: ✭ 48 (+84.62%)
Mutual labels:  astar

Trajectory planner

trajectory_planner example This planner can calculate movement trajectory from start to goal positions on a ros::OccupancyGrid using A* or BFS algorithms for a robot primitive that can perform a set of simple movements.

Features

2D planning

Planning works on a 2D occupancy grid (ros::OccupancyGrid), which is just a 2D array, where each cell represents a small area and can be in one of three states: occupied, free, unknown. It is a good map data structure for small wheel platforms and simple walking robots. You can get it from Rtabmap, hector_mapping or gmapping SLAM algorithms.

rospy based

This package is based on ROS and built using Python 2, so you don't need to compile it. To run the package, move it into catkin workspace and run planning on predefined map: roslaunch trajectory_planner_py static_planning.launch

Description

How planner works

The planner is searching in the state space, where State is a vector of position and orientation of a robot. The Robot is a rectangular primitive with width and height parameters and a set of simple moves, which are described as vectors (length, dtheta) and represent rotation and moving forward/backward. New states are derived from the previous ones by applying move transformations.

apply_movement

We also check intermediate sub states on collisions with obstacles by simulating moves with a small step. simulate_move

To start planning we need a map, start and goal positions, robot parameters and a set of available moves. Then we can get a tree of states by applying moves to the start state and repeating this for its "children". We use A* or BFS to search for a goal state in that tree. I got intuition for A* implementation from this nice publication.

ROS API

Subscribed topics

Published topics

Disclaimer

This package is in development now and may contain bugs.

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