doebrowsk / tank-chair

A repository for senior project work for the smart wheelchair and Air Force sentry.
2 stars 2 forks source link

Pathing Algorithm #8

Open doebrowsk opened 8 years ago

doebrowsk commented 8 years ago

Creating a node in ROS that will process a path using either a crude rectangle drawing pathfinder, or implementing a relatively simple, widely used pathfinding algorithm (to be researched). It is not yet known what the mapping interface will be of the environment, so this will likely begin the architecture portion of the project.

Deliverable for this is at least one ROS node with a malleable interface. It should attempt to be as arbitrary as possible to allow the later integration of the mapping interface to be as easy as possible.

doebrowsk commented 8 years ago

Could implement a version of A* searching algorithm with fewer feedback inputs. Or possibly a solid implementation of Djikstra's algorithm that has a high resolution grid-style node system.

doebrowsk commented 8 years ago

Using the existing set of nav_msgs in ROS to manage the mapping. The resolution of the grid to model the compound area is not yet decided, but will use a 3-point coordinate system, x, y, and z.

X and Y will handle horizontal mapping of the grid, with Z being used to track changes in depth. Z will start at 0 for all locations and be updated as part of the pathing heuristic as the area is mapped.

The actual heuristic analysis being used will be an implementation of the A* pathing algorithm. It will still encompass the original two factors, current distance from start and the estimated cost to finish, with the included Z height data point now added as a factor.

Turning may also impact performance if it is decided that we want to accomplish diagonal movement. With tank turning (0 radius, in place), we can calculate the turning cost as time it takes to turn 90 degrees. With diagonal movement, the heuristic would need to calculate the additional effort required to turn whilst moving.