The objective is to provide a platform to test policies for Autonomous Ground Vehicles and integrate KEEL-based reasoning into the behavior of the vehicle.
|Autonomous Ground Vehicle - arrow shows steering direction of front wheels|
|Garage (for parking)|
Just click on the Command button (or click anywhere on the screen and type "L"). This is a quick way to tell the vehicle to drive to the garage. It will "plan" how to do this. From where it is it presently, it identifies 3 points to steer through. It will drive into the garage and stop. Type a "D" on the keyboard and the vehicle will back out and reverse left or right and shift for forward in preparation for the next command.
Click on the screen and the vehicle will attempt to change its heading and steer to that point. While enroute, you can click another point and it will decelerate, turn, and accelerate toward that new point.
Click the command button and the vehicle will attempt to steer toward the garage and park again.
Use the Reset (or "X" key) button if you crash into the garage.
Type "V" to see a demonstration of steering to a "vector".
Type "S" to see a demonstration of steering to a "steering heading" (where the objective is to get the front wheels on a particular heading).
Type "H" to see a demonstration of steering so the body of the vehicle is traversing in a particular heading.
Type "F" to shift to forward (and center the steering).
Type "R" to shift to reverese (and center the steering).
A list box is provided in the upper right corner to select between commanding the different vehicles.
What is happening:
While it would be possible to just move the vehicle around the screen and rotate it under program control (called tweening in Flash), that is not what is happening in this demonstration. The vehicle is actually being steered through the horizontal scroll bar at the lower right corner of the screen. When going in a straight line, you will notice some minor corrections in steering.
Obstacle Avoidance: (with AutoAvoid checked at top of screen)
The present design has 2 vehicles and one "garage" that are potential obstacles. Each vehicle has a "proximity circle" that indicates the range at which it detects obstacles. A KEEL Engine determines how to navigate around the obstacle. Obstacle avoidance is turned off as the vehicle enters the garage. (This is a preliminary solution.) Single obstacles are handled (initial phase), but not multiple simultaneous obstacles. Obstacle avoidance when driving in reverse is not yet handled.
Work in Progress:
Video explaining the objectives of the project.
The horizontal scroll bar provides the steering.
The vertical scroll bar provides the accelerator (as does the roller ball on your mouse).
'F' and 'R' keys set forward and reverse.
You can also drive the vehicle by clicking the mouse on the screen. The vehicle will accelerate, steer to that point, decelerate and stop. Click again and it will accelerate and steer to the next point... Clicking another point on the screen while the vehicle is in motion will decelerate, turn, accelerate toward the new point.
At the top of the screen there are several commands that can be issued to the vehicle (when stopped or when moving). The "L" command will drive the vehicle into the garage. The "S" command will accelerate the vehicle to a "steering" heading defined by the angle assigned to the front wheels of the vehicle (the field after the "S". The "H" command will accelerate the vehicle to a heading (of the vehicle body) defined by the angle after the "H" in the command box. The "V" command will drive the along a vector from where the vehicle is located at the instant the command is given (shown by a green line). The field after the "V" in the command line defines the angle.
Green (acceleration) and Red (deceleration) indicators are shown next to the Accelerator at the lower right. They are illuminated when accelerating or decelerating.
The Show Checkbox, when checked, shows the intermediate points determined while moving.
The AutoAvoid Checkbox, when checked enables obstacle avoidance to be used. Unchecked, the user can drive the vehicles and create collisions.
A circle surrounds the vehicle. This will be used to simulate a proximity sensor that can be used for collision detection / avoidance.
Integrate KEEL cognitive engines so judgment and reasoning can be applied to planning and executing appropriate driving skills - avoid human error (and during the policy development phase: provide easily auditable decisions and actions).