-
Notifications
You must be signed in to change notification settings - Fork 3
Project Details (Fall 2011)
Architecture:
- High Level Planner (Actionlib based)
- Waypoint Navigation (Global Planner)
- Local Planner/Motion Planner
The purpose of the high level planner is to look at the field and develop a general coverage map divided into waypoints.
It would be really cool if we could generate coverage paths for arbitrary shapes (like the Auburn logo, perhaps?)
Functional Requirements
- Generate a near optimal coverage path within a time constraint.
- A time limitations could be the ability to regenerate the coverage path once the location of the flower bed is known. This means within the current coarse run we'd need the ability to re-calculate the path and have enough time left over to follow the path.
The purpose of the way point navigation system is to move from one goal to the next by generating a path with A* or Dijkstra's algorithm but have a tendency to follow orthogonal lines along the map. The map server would tell the Global Planner what an Orthogonal line's orientation is.
Functional Requirements
- Generate a path from a single waypoint to another waypoint.
- Have a variable tendency to stick the orthogonal lines of the field. This means a diagnal move might end up looking like a saw toothed line or it might travel along the
a
,b
of a given tringle, see image below.
Local planning with a strong tendency to stay close to the global planners path.
Probably some near-optimal controller (nonlinearities and whatnot), that will drive the cutting deck to minimize lateral path error and path heading error.
This is going to require a rework of the navigation filter, I believe. William and I discussed it in broad terms, but I haven't hammered out anything specific yet.