Projects – Summer 2004

Click on a project to read its description.

This project is based on the DARPA Grand Challenge race. The goal of the extended project is to have a vehicle autonomously navigate 210 miles across the desert with no driver or external inputs. Oone of the key requirements to complete is to be able to track the exact positionof the vehicle at all times, include short periods of time when the GPS signal may not be available.

We are looking for a device that can meet the following requirements:

  1. Device must output current Lat, Long, speed, direction at least 10 times per second.
  2. Communications will be by RS232 or RS422 protocol.
  3. Accuracy of position muxt be xxx.xxxxxxx (7 decimal places) (+- 3 inches)
  4. Software protocol to be defined to minimize communication overhead.
  5. Device shall seamlessly continue to operate when GPS signal is lost and shall maintain (+- 1 foot accuracy over 3 minute signal loss).
  6. Device will operate on 12V DC at less than 1 amp.
  7. Mounting instructions will be provided to allow operating the device in an off road vehicle at speeds up to 55mph. (High vibrations and shock)
  8. Device must operate continuously and unsupported for a minimum of 12 hours.

Task:

  1. The SDBB will read the GPS location.
  2. When the vehicle is stopped and the GPS has a valid signal, it will update the INS with current information.
  3. The SDBB will collect and forward to the host via RS232 the following items:
    • Current Lat
    • Current Long
    • Current Heading
    • Current Speed
    • X,Y,Z Rates
    • Accuracy Estimate
  4. THe SDBB should continue to work with loss of signal from either GPS or INS.

Accuracy estimate is a value of 0 to 100 percent. Zero means no valid signal available. 100% means we have a location fix with a very strong signal. This should be adjusted based on the signal strength of the GPS or if using INS, an indication of the drift of the unit over time. If both GPS and INS are available, the accuracy estimate would be the estimated drift between them. This value is used by the master computer to determine if the position is accurate enough for the current segment being traversed. As the accuracy estimate decreases, we can continue, stop and re-sync, or wait for a better signal based on current requirements.

Checkpoints

  1. Read/understand INS interface
  2. Read/understand GPS interface
  3. Determine requirements and specify device for SDBB
  4. Design and build SDBB
  5. Program device
  6. Test device


This project is based on the DARPA Grand Challenge race. The goal of the extended project is to have a vehicle autonomously navigate 210 miles across the desert with no driver or external inputs. One of the key requirements to complete this race is the capability to process video images captured by cameras on the vehicle and to define a path that will avoid obstacles in the immediate area of the vehicle. The vehicle must complete the course in 10 hours to win...or average 21 mph over the entire course.

Background:
The vehicle will be directed to follow a path defined by DARPA and refined by additional on-baord software. This path is based on general terrain information. The project software is the eyes of the vehicle. It must look in front of the vehicle and look for a clear path that can be traveled by a 4-wheel drive vehicle. you will give steering commands to the master computer with instructions to turn the steering wheel left or right and the correct ammount. This application will also return a maximum suggested speed for the vehicle based on obstacle detection and rate of turn.

Recommendations:
Per our proposal, we suggest that we use two cameras. One camera with a long-range lens will process a wide-angle view ahead of the vehicle. The software should take this view and look for areas that are clear and may represent roads or trails. It should also detect features that the vehicle may need to manuver around. A second camera will be focused short range in front of the vehicle and will look for small objects such as rocks, fences, holes, other vehicles, bushes, and similar objects that must immediately be avoided.

Requirements:

  1. Define equipment required to collect and process scene information in front of the vehicle. Document cameras, lens, frame grabbers, interfaces as required. Must connect to Linux based processor. Minimize power requirements.
  2. Software must operate on Red Hat Linus 9.0
  3. Must consider the effect of bright sunlight, dust and vibration on the system.
  4. Must be able to react to objects in front of the vehicle at speeds upt o 60 mph.
  5. You do not need to classify objects other than to determine if the vehicle can pass through a given area.
  6. When making a decision to turn, use left/right flag from routing to tread the desired path.
  7. Steering wheel position must consider system reaction time, current vehicle speed, obstacles present, and target route.
  8. Maximum speed needs to consider turn rate, terrain, number of obstacles, type of surface, processing rate, and visibility.
  9. You must consider that another moving vehicle or multiple moving vehicles may be in the field of view. You could be following it, it could be passing you, or it could be entering the path of our vehicle. We must avoid other vehicle(s).
  10. You must update steering information (-100 to +100 where -100=hard left, 0 centered, and +100=hard right) and specify the maximum speed (in MPH), at 10 times per second.
  11. If no forward path is found, stop (set maximum speed to zero), set blocked flag.
  12. Software must be able to run continuously and unsupported for a minimum of 12 hours.

Summary:
We must process the scene information very quickly and make decisions about our route in real time. Any delays will result in failure. We are not looking for details, only to eliminate as much data as possible as quickly as possible, and to evaluate specific areas necessary to make quick decisions. Speed will be proportional to how quickly we can process this information.

Concerns:
In the desert the color of objects are very similar. The dirt, the brush, and the rocks will all have similar colors. Be careful not to make assumptions based on high contrast images the environment may provide. Also, the sun is very bright and tends to blind the camera as well as wash out color. Alos, because of the low contrast, washes in the desert are very hard to detect. These dry streams can be very deep, have very defined sharp edges, and blend into the terrain because of the low contrast.

Class Tasks:

  1. From a series of pictures taken of the course, write a program to process each still frame as identified above. Provide steering command, max speed, and an accuracy estimate. Measure the time to process. Visually verify the calculated updates.
  2. Get a frame-grabber and process the video tape of a route. Look for opportunities to use information in consecutive frames to speed up processing. Look for multi-thread and mulit-processor enhancements. Visually verify that the calculated track is valid.


This project is based on the DARPA Grand Challenge race. The goal of the extended project is to have a vehicle autonomously navigate 210 miles across the desert with no driver or external inputs. One of the key requirements is to create a GUI front ent that will allow us to visually see what route has been chosen for the truck and to see how the truck is following the path. It will be important to see the land features on this map as well as our projected and actual paths.

Background:
The vehicle will be directed to follow a path which will be given to us by DARPA two hours before the race starting time. From there another piece of software will determine the "optimal" route to complete the race. There will also be terrain data available to make decisions. This piece of software will visually display the terrain data, including elevation, roads, water, etc. It will also display DARPA's route, our optimal route, and our actual route as we travel along. This poece of software will be extremely useful during the debugging and practice runs as well as a good check to determine that our optimal route appears to stay in the designated areas.

Recommendations:
We suggest that the terrain data be plotted on the display first. The routes should be plotted once all the necessary terrain objects are plotted. A scaling function will be necessary to display more or less of the route as required. This must update at a rate of once per second while the vehicle is moving. This display should keep the vehicle's current location as its center of focus. Current and expected information on the vehicle's actions will also need to be displayed onscreen. This display will need to show current and expected speed, location, direction traveled, etc.

Requirements:

  1. Software must operate on Red Hat Linux 9.0
  2. Must determine a visually acceptable way to display all necessary terrain objects and features.
  3. Must display routes and their boundaries in a visually acceptable and usable way.
  4. Must update graphical image once per second to account for the truck movement.
  5. Must display current and expected information on vehicle's movement as nubers on the screen.
  6. Must update numeric display 4 times per second.
  7. It is required that the code for this project be written in X-windows/Motif for compatibility with the selected operating system.
  8. Software must be able to run continuously and unsupported for a minimum of 12 hours.

Summary:
The display of terrain data, route paths, and numeric information on the vehicle are critical for debug and analysis of the route proir to the race. This piece of software will need to display a lot of data onscreen in a convinient and appealing manner. This piece of software will be very graphics intensive and appealing for people interested in X-windows development.

Concerns:
A large ammount of data that needs to be displayed on the screen will need some innovative ideas to make it easy to use.

Class Tasks:

  1. Take the given pieces of data and display them all visually on the screen for someone to watch and analyze. This data will come from the terrain data as well as paths created by other programs. Much of this data will come from onboard databases.
  2. Update the display in real time to account for the movement of the truck.


This project is based on the DARPA Grand Challenge race. The goal of the extended project is to have a vehicle autonomously navigate 210 miles across the desert with no driver or external inputs. One of the key requirements to compete in the race is the ability to minimize the necessary route for the entire race. This pathe will then be optimized real time as the race proceeds and the vehicle deviates from the originally intended path. The vehicle must be able to complete the course in 10 hours in order to win...or average 21 mph over the entire course.

Background:
The vehicle will be directed to follow a path defined by DARPA and refined by this portion of the software. The original part from DARPA is based on GPS points. You will then refine these points to a more percise path (shorter distance between waypoints). This new path will be based on the optimal route within the given path combined with terrain data (topographical, etc.) to determine the "easiest" route. You will give steering commands to the master computer with instructions to turn the steering wheel left or right and the correct ammount. This application will also return a maximum suggested speed for the vehicle based on terrain inforamtion and current location.

Recommendations:
We suggest that first the DARPA define path be imported into the database. Then an optimal path with more waypoints will be calculated by the system before the beginning of the race. The will be the "optimal route" for the entire race. This route will incorporate data from the maximum widths of the original segments as well as the terrain data. The order of the terrain features to follow will be paved roads, dirt roads, and then smoothest route. The goal will be to avoid water and rough terrain. Finnaly you will then have to calculate current direction to turn, how much, and what speed to travel at based on current location. As the vehicle deviates from this path the module will create shorter dynamic paths to return to the optimal route. This piece of software will require a large use of geometry to determine locations and maximum areas of the path.

Requirements:

  1. Software must operate on Red Hat Linus 9.0.
  2. Must import DARPA defined route into MySQL database.
  3. Must create and store new "optimal route" in MySQL database for easy retrieval of data.
  4. When making a decision to turn, use left/right flag from routing to trend into the desired path.
  5. Steering wheel position must consider system reaction time, current vehicle speed, terrain obstacles present, and target route.
  6. Maximum speed needs to consider turn rate, terrain, and type of surface.
  7. Must consider waypoint spacing and max radius of turns.
  8. You must update steering information (-100 to +100 where -100=hard left, 0 centered, and +100=hard right) and specify the maximum speed (in MPH), at 10 times per second.
  9. Software must be able to run continuously and unsupported for a minimum of 12 hours.

Summary:
We must be able to create the entire optimal route within an hour max. We are given the coordinates roughly 2 hours before the race and must have our route determined within that time frame. We should also have time to check the route to make sure there are no glaring errors before we start. Determining the direction and speed from information available on current location will be important.

Concerns:
The time frame given to find the optimal route will be very important. The half an houlr limit to creat our entire optimal route is intensive and will be crucial in the success of the project. Also, the format of the terrain data will need to be determined and assessed as to its best use.

Class Tasks:

  1. As mentioned above, a flat file with coordinates with an initial path will need to be imported and analyzed against terrain and geometric data. From there a more detailed route will be created including such factors as shortest route, easiest route, etc.
  2. After the optimal route is created, it will be necessary to provide steering command, max speed, and accuracy estimates. This will be done while updating postion. Verify that the calculations make sense and appear correct.
  3. Update the path in real time to account for deviations from the optimal path.