Software Architecture: Difference between revisions

From SpaceElevatorWiki.com
Jump to navigationJump to search
Line 5: Line 5:


There will be 3 main modules:
There will be 3 main modules:
== Driving ==
== Driving (Control theory / Machine learning) ==


Driving module will use an interface like this of Torcs:
Driving module will use an interface like this of Torcs:
* Input: high level information from the Vision and world simulator.
* Input: from the Vision and world simulator
* Output: high level orders to the simulator (which may be replaced by a real car).
* Output: high level orders to the car simulator
 
 
It seems like we encode rules like: standard practice is to trail a car by 2 seconds
And then we mention things like avoid other cars, don't make 3-G turns. The question is, how are those rules encoded?
What about the situation where we want to make notice of things for later, like the location of potholes. Assuming the vision has decided that is a pothole, how do we add that to map, remove it when we go by because it has been fixed? In a racing game, we should make note about a jump so that we don't go off a cliff. Supposed we would just drive the car through the map to have it gather data. What is the maximum speed it could go through the map the first time?


== Vision ==
== Vision ==

Revision as of 21:08, 22 June 2008

Software Architecture

Diagram File:Vision.odg (Uses OpenOffice -- install it if you haven't already!) Diagram is currently embarrassingly simple :-)

There will be 3 main modules:

Driving (Control theory / Machine learning)

Driving module will use an interface like this of Torcs:

  • Input: from the Vision and world simulator
  • Output: high level orders to the car simulator


It seems like we encode rules like: standard practice is to trail a car by 2 seconds And then we mention things like avoid other cars, don't make 3-G turns. The question is, how are those rules encoded? What about the situation where we want to make notice of things for later, like the location of potholes. Assuming the vision has decided that is a pothole, how do we add that to map, remove it when we go by because it has been fixed? In a racing game, we should make note about a jump so that we don't go off a cliff. Supposed we would just drive the car through the map to have it gather data. What is the maximum speed it could go through the map the first time?

Vision

Vision module I/O:

  • Input: screenshot of the world (real or virtual).
  • Output: object geometry, etc. and other information necessary to the AI.

World Simulator

World simulator I/O:

  • Input: Progression of time, instructions to the car
  • Output: visual output for the user, screenshots for vision module, APIs to find out where stuff actually is. A warning when our car has "crashed", which means there is a bug in the vision or driving logic.