This is work by Ravi Balasubranian with Tucker Balch.
We have developed a 2D kinematic simulator for the GOAT. The purpose of this simulation is to help us evaluate the limits of GOAT mobility and to prototype mobility algorithms. In the simulation we make the following simplfying assumptions:
We have coupled the simulation with a planner that attempts to find a trajectory for the robot through configuration space from an arbitrary starting state to a goal state using the A* algorithm. Subject to limitations of our discretization of the action space, the planner will find an optimal trajectory (if one exists).
This kind of approach to terrain navigation may not be feasible for use in a dynamic environment on an autonomous vehicle. However, it is an important tool because it will enable us to find the absolute limits of mobility of the vehicle. We will then be able to compare the capabilities of the robot when driven by a heuristic controller with those possible under optimal control.
The state of the robot is determined by:
At each step the planner is allowed to change the state of the robot by applying one of several "actions" or operators:
Each of these actions changes the state of the robot by a small, discrete amount (e.g. drive the front wheel 10cm forward). The fidelity of the solution is determined by the size of the actions. A finer resolution (smaller movements) yields a more accurate plan.
For realism we add additional constraints. If, while planning, one of the actions takes us to a state that violates one of the constraints, that action is discarded. The constraints are:
The simulation and planner are illustrated in the sequence of images below. The robot is given the task of navigating from the starting configuration on the left to the goal configuration on the right. It must plan a series of forward motions and joint angle changes to get over the step.