Design Review Spring 1999



Abstract

The Aircraft Imaging Platform is a part of the ongoing Space Systems and Operational Laboratory (SSOL) project. The current project of SSOL is to take aerial photos of Ames so that the images can help to determine the amount of light pollution in Ames. And the mission of AIP is to continue design of the navigation software in Visual C++ for use in a small private plane with the help of GPS technology. The software assists the pilot to fly in a desired path and control the settings of the camera, for instance the interval between each photo. AIP will integrate GPS data to overlay on video input from a video camera.
 
 

Problem Statement, Background and Content

AIP has designed a navigational program that shows the pilot the specific checkpoints and the flight path on a laptop computer. The program informs the pilot how far the plane is from the checkpoint. The checkpoint is a three dimensional point in space that marks where a picture is to be taken. If the pilot misses a checkpoint, the program recalculates a flight path that will lead the pilot back to the missed checkpoint. The program is designed to insure that the pilot covers all the checkpoints and no checkpoint is repeated. It also informs the pilot when a particular checkpoint has been reached. In addition, the program controls the camera shutter release timing. When the plane reaches a checkpoint, the program activates the protocol for automated shutter release. A user interface was design to facilitate the pilot’s operation of the navigational and photography control.

With the current system it is difficult to determine were a specific photo was taken due to the fact that the GPS coordinates are not on the photograph. Therefore, a system for integrating GPS data and live video recording will be designed. This recording can be cross-referenced with the still photographs to help determine the location of the photograph and other environmental variables that were present during the flight.
 
 

Design Objectives

Functional

The main functional objective of AIP is as follow:

The secondary functional objectives of AIP are as follow: The main objectives of AIP are to design a system for integrating GPS data and live video recording and complete the parallel port activation system. The video recording with be done via a Video Device Overlay (VDO) and stored on a VHS tape. The parallel port activation system is the communication link between the GPS data, the laptop, and the PIC.
The additional objectives include replacing the present experimental board with an integrated circuit board, creating documentation of the AIP system, and verifying that the AIP system code is operating with the correct spatial and temporal dimensions.
 
 

End Product Description

The end product is composed of the AIP control box that runs in unison with a laptop computer, a camera, a video camera, a computer monitor, power supply and a VCR. The AIP control box and video camera run off of a DC battery, the laptop has it’s own battery and the VCR and monitor use a portable AC power source. The AIP box contains a Global Position System (GPS) receiver, a Differential Global Position System (DGPS) receiver, a Video Digital Overlay (VDO), a RS232 interface, a camera triggering system and voltage control circuitry. This hardware communicates with the laptop’s navigation and VDO controlling software through a serial and a parallel interface cable. Together they time camera triggers and display position coordinates on the video camera’s images that are recorded on the VCR.

The laptop communicates with the GPS-DGPS system through the COM1 port on the laptop and the RS232 interface circuit in the control box. This interface is capable of two-way communication that enables the laptop to receive GPS data and also run a diagnostic program that can change on-chip settings on the GPS board. Having this diagnostic software on the laptop can be an invaluable tool during field-testing, helping to confirm proper operation of the GPS board.

Communications with the VDO and the camera triggering system are done through the laptop’s parallel port. This allowed for the controlling of the camera triggering and communicate with the VDO without adding additional circuitry or connecting cables that would have increased complexity. The VDO and camera triggering signals are each given a dedicated data line on the parallel cable. The VDO receives serial style data that contains configuration data as well as the text characters to be displayed. The camera triggering is connected to a transistor switch inside the control box that controls the camera shutter.

The laptop is the user interface for this system. A person that desires to take aerial photos must first enter the longitudinal and latitudinal coordinates into the waypoint generating software on the laptop. This software converts the coordinates into a form the navigation software will understand and saves it to a file for later reference. When this is done the pilot can run the navigation software and VDO software on the laptop. The navigation software will read in the waypoints from the file and display them in three-dimensional space in order to help the pilot maneuver the aircraft over the correct positions to take photographs. When a position is reached, the camera will be triggered to take a photograph.

During the flight the VDO software receives GPS data in character format and sends it to the VDO so the data can be overlaid on the video camera’s images. This provides a reference from the images of the ground to the GPS coordinates. The still photographs from the camera will then be compared to the output from the VDO to help determine the exact coordinates at which the pictures were taken.
 
 

Assumptions and Limitations

There are some inherent limitations with this project. Some of the limitations had to be dealt with are:

Technical Approach

The AIP flight system is composed of both a software oriented user interface, and a hardware oriented data acquisition system. Each of these components operated largely independently, and as such were largely handled as separately designed systems. The hardware system consists of the GPS receivers, VDO, video and still cameras, monitor, and VCR. The software system consists of a navigation and triggering software system, a waypoint entry program, and a VDO communication program.
 
 

Technical Approach (hardware)

The main functions of the hardware system include the following:

To achieve the above functions, a GPS board and a Differential GPS board were selected for receiving GPS coordinates from the satellites. In order to process the GPS coordinates, a laptop containing a Navigation program is used. A VDO circuit board is used to overlay GPS coordinates with the video image from a CCD camera. When a waypoint is reached, the laptop will automatically trigger the camera to take a picture. A detailed circuit diagram and system flowchart is available in the appendix and Figure 1 shows the inside of the control box.

Figure 1 AIP Control Box

GPS-DGPS Receivers

To receive the GPS coordinates a GPS-DGPS system was selected by the AIP-1 team. The Motorola VP Oncore GPS board was selected as the standard GPS board. The board receives only the regular GPS signal, which is not highly accurate. To improve accuracy a Communication systems International SBX-2 differential GPS board was purchased. The differential GPS board receives a coordinating signal from Coast Guard towers that compensates for the minor errors associated with the standard GPS signal. This allows for highly accurate position information to be received.

This differential receiver is referred to as a beacon receiver. The SBX-2 is a 300kHz minimum shift keying demodulator. It features a two-channel fully automatic search algorithm. The corrections are broadcast from radio beacons under the authority of the International Association of Lighthouse Authorities. The nearest one is located at Dubuque Iowa. It can broadcast over almost the entire state of Iowa. There are a few counties in the extreme northwest corner that are not covered. The transmit pin on the SBX-2 is connected to the receive pin on the Motorola board. The output of the SBX-2 is in the RTCM 104 format. This is a standard interfacing format from DGPS to GPS receivers.

The output form the Motorola board is in the format of NMEA (National Maritime Electronics Association) 0183. There are continual updates on the web for this format. The GPGGA field was chosen for the AIP application. This happens to be the same field type that is currently used for the SSOL balloon flights. It gives time, position, and fix related data. The message fields consist of ASCII strings that are broken apart to obtain the necessary data.
 
 

The GPS board is connected to the Differential GPS board to ensure reliable GPS coordinates are received. The next problem is to route the GPS coordinates data to the

laptop computer for further processing, such as character parsing and formatting by

software running on the laptop. In order to do this, an additional RS232 chip is used

along with the serial port on laptop and the RS232 interface on the GPS board. GPS

coordinates coming in from the GPS receiver (GPS and DGPS) are sent to the laptop

through the serial communication channel COM1.

Still Camera

Still cameras will be necessary for most of the uses of the AIP system. So far one camera has been purchased for this role. The Pentaz ZX-50 ( figure 2) was selected due to its capability for nighttime photography. The camera will be connected to the triggering system with a remote triggering cord. A manual trigger will also be attached to

the system to allow for manual operation of the camera.

Figure 2 Pentax ZX-50

The camera will be triggered to take a picture when the laptop determines that a waypoint has been reached. A data line connected from the parallel port of the computer is attached directly to the gate input of a BJT transistor that acts as a switch for the camera. The camera triggering cable is connected across the input and output of the transistor. When the triggering signal is sent to the BJT, the triggering cable from the camera is shorted and the camera takes a picture.

Video Camera

A black and white CCD pinhole camera will be used to provide the video image for the VDO. The camera will be mounted beside the still camera on the camera mount (figure 3). Its video output will be sent the VDO boards composite input. The camera uses a 12 volt 90mA DC power source. It is sensitive to .5 lux with an F-stop of 1.8, making it ideal for a wide range of uses including night flight.

Video Digital Overlay (VDO)

The VDO provides the capability to combine the video image received from the video camera with the GPS data that is received. To achieve this function the BOB-1 VDO board from Decade Engineering was chosen. BOB-1 can display 10 rows by 24 columns of text with a variety of other options. The exact specifications for the VDO will be included in the appendices. The VDO receives the video input signal from the video camera, connected though a standard RCA cord to the input lines of the board. This image is combined with data from the laptop and output to the VCR and monitor where it is displayed and recorded for future reference.

The data input to the VDO is simple TTL (5V logic) serial connection, using Clock, Data, and Select lines. The Clock signal will be sent from the Laptop across a data line on the parallel cable. The Select line will be tied to +5 Volts to keep the VDO activated, since the VDO will be needed as long as the system is activated. The data line accepts data as a serial string, which is sent from the laptop across another data line on the parallel cable.

The data sent to the VDO will consist of Latitude, Longitude, altitude, and the time. This will be used to help recreate a landscape from the pictures taken by the still camera. Also, this will help identify the specific GPS coordinates where the pictures were taken.

Monitor and VCR

A black and white Apple computer monitor and a standard VHS VCR are used to record and display the combined video image from the VDO. A DC/AC converter is being used to provide the power source for these two items.
 
 

Camera Mount

The still and video cameras are mounted to steady them during a flight. The current mount (figure 3) is a simple design with a resting slot cut for the still camera. Foam padding is used to rest the camera on to minimize vibration in flight. Also Velcro straps are attached to secure the camera. The video camera is attached at the top of this slot so both cameras will have a good perspective out of the camera hole. Four bolts are used to allow the mount to rest above the base of the plane and allow for adjustments so the mount can be leveled in flight.

Figure 3 AIP Camera Mount and Video Camera

Technical Solution (Software)

The system completeness evolves through the use of commercial software products to resolve the following issues:

To resolve the above issues two software products, OpenGL and Visual C++ were chosen. OpenGL and Visual C++ were chosen because they both are cost effective, easy to learn, and easy to use. Also, C++ allows easy access to I/O ports and more flexibility to implement a custom interface. An overall look at the software solution is in the appendix. The software issues can be grouped into four main components: VDO (video digital output) Interface system, Camera Triggering System, GPS receiver interface, and Laptop Navigation Aid.

GPS Receiver Interface

The software that interfaces with the GPS receiver is located in pseudoinput.cpp. It retrieves the GPS data from serial port and sends it to requesting functions. The GPS data is received in NMEA format, essential a test string with data fields separated by commas. The receiver interface parses the latitude, longitude and altitude data from the string and makes it available for the rest of the program to use. The interface also saves this data to a file for later use by the VDO overlay software to combine the GPS data with the video camera image.

Laptop Navigation Aid

The Laptop Navigation Aid as shown in figure 4 was created using OpenGL for the graphics and Visual C++ for the non-graphics. The display in figure 4 is divided into four sections, statistical information, 3-d view and location of waypoints on flight path, top down view of plane and waypoints’ locations, and waypoint database management.

Statistical Information

This section contains information about the aircraft’s current altitude, speed, heading, longitude, latitude, and etc. The software that generates this display is located in the file statlist.cpp & statlist.h. The software receives its information directly from the GPS receiver during the flight.

Top Down View

This section contains a visual image of the aircraft and waypoints from the viewpoint of looking on top of the plane. It provides a graphical plane that shows the current position of the aircraft and a smoke trail to indicate previous travel. The software for this section is found in the Topdown2.cpp and accompanying header files.

Figure 4: Laptop Navigation System Display

3-D View

This section illustrates the flight path to be taken and the waypoints that are located on that path. The waypoints are represented as spherical balls with a line extending from the waypoint to its reference point. The waypoints are "flying" over a grid layout that is to represent the land below the waypoints

VDO Interface

The VDO system allows for a picture taken during the flight to be properly identified. The VDO system is comprised of live video recording that is overlaid with the GPS data as received from the GPS receiver during the flight. The interface software is interfaced with BOB-I (low power video character overlay device).

The interface software sends the GPS data to the VDO board across the parallel interface connected to the control box. The GPS receiver interface software stores the current GPS data in a file. This file is read in by the VDO interface software and sent to the VDO board in proper format. This data is then incorporated into the video image from the video camera and recorded on the VCR for later reference. The source code for the VDO interface is located in vdo.cpp

Camera Triggering System

The camera triggering system controls when the camera will take a photo of the land. It checks to position of the aircraft (via GPS data) to verify if the plane is within a valid distance of the next waypoint. If the aircraft is within the specified distance from the waypoint a signal is sent to the camera triggering system via the parallel port. The software for the camera triggering system is located in the file statlist.cpp.

Waypoint Database Management

Figure 5: Waypoint Database Management

The Laptop Navigation simulator also provides a waypoint database management tool. (see figure 5 below). The database was created to allow the pilot to enter the locations where pictures need to be taken before a flight actually begins. The latitude, longitude, and altitude of each waypoint is recorded and saved into a text file for later reference by the program. Once the flight has begun, the software will continuously reference the database to determine current navigation information to the next waypoint.

File Listing and Descriptions of the Entire Software System
 
 
 
GPS Receiver Interface
Pseudoinput.cpp Retrieve GPS data from serial port and send to requesting functions
Pseudoinput.h  
Test.cpp Functions for reading waypoints from file
Resource.h  
Laptop Navigation Simulator
MainScreen.cpp Main screen implementation file
MainScreen.h  
Graphics.cpp Miscellaneous graphic functions (i.e. fog, colors, etc.)
Graphics.h  
Main.cpp Begins setup and display for the main screen
3dprim.cpp This file generates the 3-d graphics of the flight path and the location of the waypoints along the flight path that are view in the main display window or the flight path simulator.

 

3dprim.h  
3dview.cpp This file is basically, the driver program for the 3-d generation of the flight path and waypoints that are viewed in the main window display.
3dview.h  
Topdown1.cpp Provides the functions for the class Topdown that creates the topdown view of the flight path and waypoints.
Topdown1.h  
OGLStatic.cpp Base class for all OpenGL windows
OGLStatic.h  
Statlist.cpp This file calculates the statistical values that are located in the statistical window of the Laptop Navigation System Window Display. It also contains the camera triggering software, and the system’s advancement to the next waypoint.
Statlist.h  
Waypoint.cpp Handles the waypoints. It contains the data for the waypoints that is to be recorded. It reads the data from a file and output the number of time that data is recorded at that point to another file. 
Waypoint.h  
WaypointDlg.cpp Provides definition for the waypoint class
WaypointDlg.h  
Db.cpp Implements the database that manages the waypoints
Db.h  

 
 
 

Project Success

Overall, this semester has been successful. A full system test flight was preformed in March, however the test was unsuccessful. The GPS board was not initializing properly and therefore not receiving data. One more full system test flight will be done, but should be done by the time this report is presented. Most of the major milestones have been reached this semester.

Parallel port constraints with the windows programming environment prevented the integration of the VDO interface code directly into the main program. So instead a separate C++ program was written to run alongside the rest of the AIP code in a DOS window. Unfortunately several parts on the VDO board were been damaged and significant time has been spent on repairing the board, which has delayed many system tests. This has prevented the full testing and final integration of the VDO into the AIP system. The camera triggering system was finished. Rather than continuing to use the PIC microcontroller that was originally supposed to manage this task, a simple BJT transistor is being used to control camera triggering. This was done due to several problems encountered in using the PIC for this task. Work on the system board and circuit design was also completed. An additional parallel port was added to the system box for connecting the triggering device, and VDO board to the laptop.

Documentation for the system has not yet been done. The setbacks encountered with the project this semester have delayed the documentation process.
 
 

Testing of the end product

Testing was started with the navigation software first. This was done by hooking the COM1 port of the laptop to a computer that was transmitting simulated GPS data. When the simulated route that the GPS data took passed through the waypoints the camera was successfully triggered. The VDO was then connected to the same system to see if it would overlay the correct coordinates to the video. The VDO failed to operate properly in the initial tests which lead to the development of a separately running dos program for interfacing with the VDO board.

Hooking up the GPS to the laptop to see if the GPS board was communicating to the laptop was the next portion of testing. During this initial test the DGPS antenna was unavailable so precise data was not expected. The interface with the software was working correctly except for the lost precession from not having the DGPS. Next the system was loaded into a car to test how it would operate in a moving enclosed vehicle. This test was also successful and didn’t reveal any problems.

During the initial tests the GPS initialized almost instantly and had no problems receiving data within the enclosed car. Unfortunately this didn’t happen during the first test flight. On this flight the GPS never initialized and the triggering system was unable to be successfully tested. However, the proper operation of the video camera was
 
 

confirmed. The hole out of the plane is small and in a well. Thus a redesign of the mount should allow the camera to sit deeper in the well to get a better view.

To find out why the GPS didn’t initialize during the flight it was hooked up to diagnostic software to make sure that it was operating in the right mode. Everything seemed to check out during this diagnostic test except the GPS never "locked on" to its location. Once the GPS was brought outside, where it had a clear view of the satellites, it eventually reinitialized and reported GPS coordinates again. Some more in-car testing was done. It was found that if the GPS antennas weren’t situated properly, within an enclosed vehicle, the GPS board wouldn’t have a clear enough signal to process its location. However, it appeared that if the antennas were close to the windows it could get a clear enough signal to operate correctly.

The final test flight has not yet been done due to weather constraints. The final test will be a combined final operation of the system and will fully test all components.

Weather permitting the final test flight will be conducted the week of the 26th and the results of that flight will be appended to the current report on the week of May 3rd.
 
 

Future Work

Since AIP is an ongoing project, there are many things that can be done

to improve the system. Some things that can be done in the future is as follows:

These are the parts of the project that have been started and that should be completed by the end of this semester: As the program goes along and more tests are completed, there are certainly many more things that will come up that will either need to be changed or improved.
 
 
 
 
 
 

Human Effort Budget
 
  Personnel Estimated Total Hours Estimated Personnel Used Total Hours Used
Determining Needs        
Team Meetings
6
120
6
90
Meetings with users     
2
10
Aquatinting new members with AIP
4
80
4
40
Preliminary Design        
Design new software features
4
30
4
20
Hardware design changes
2
20
3
45
Software Implementation        
Familiarizing with Visual C++
4
80
4
60
Modify and debug code to add new 

Features

Not Estimated
Not estimated
4
70
Parallel port programming and 

Debugging

2
20
2
20
User Documentation
2
20
2
13
Code Documentation
2
40
4
30
Other Design         
Camera mount design and 

Implementation

Not Estimated
Not Estimated
1
5
Hardware redesign and 

Implementation

2
20
2
50
Testing         
Testing with simulated data
4
10
4
40
In flight testing
4
20
4
10
Total  
462
 
503

 

Changes in the human effort budget have largely resulted from inaccurate estimates in the amount of time expected to complete tasks. Most tasks were underestimated. This is a common problem in effort budgets, as it is hard to estimate the time it will take to complete tasks before they are began.

Final Spring 1999 Time Line

Monetary Budget

Spring 1999 Budget
 
Item Quantity Estimated Cost Actual Cost
Misc. Interfacing

(cabling, wires)

Several $50 $30
Hardware components

(circuit board and components)

Several $50  
Poster 1 $50  
Test Flights 2 $500 $80+ second flight
Voltage Converter 1 $50 Not needed
Camcorder 1 $200 Not Needed
Miscellaneous Several $50 $20
Total   $950 $130

 

Equipment provided in previous semesters
 
Item Cost
Imaging equipment mounting frame $5.00
Cable and connectors $30.00
Film Camera(1) $400.00
Video Camera (b/w) $165.00
Video Digital Overlay $200.00
PIC Microcontroller $20.00
AC/DC adapter (donated) $0.00
VCR $175.00
Monitor (donated) $0.00
DGPS receiver (donated) $0.00
Batteries (12v for TV/VCR, 9v for PIC, VDO and GPS) $165.00
3200 speed test film (2 rolls) $20.00
Video tapes $5.00
Flying Hours (2 @ 60ea.) $120.00
Presentation and printing costs $25.00
Postal and phone expenses $5.00
Laptop Computer 2870.00
Development Tools (Visual C++) $100.00
Posters  $101.89
Miscellaneous $10.00
Total $4416.89

 

The AIP team benefits from funding provided by the Iowa Space Grant Consortium, through the Space Systems Operational Laboratory. This provides the team with the resources to complete the design objectives. Since this is an ongoing project, much of the equipment has been purchased in previous semesters. This semester's expenses centered on interfacing cables and flight costs.
 
 

Lessons Learned

A project such as this always imparts a variety of lessons to its participants. One important thing learned this semester was the importance of not only teamwork but also organization. Teamwork this semester allowed large amounts of work to be done. The organization also allowed the team to keep on track, with both deadlines and goals in mind when working.

Test preparation is another important issue encountered this semester. No matter how had a project has been worked on, getting beneficial data from testing is no easy task. This team learned much about doing good tests, but there is still much improvement that can be made for the future. Advance preparation are perhaps most important. Since the most important tests for the AIP system are in-flight test, which can not be held on a whim due to cost, it is important to get the most out of every flight taken. This requires much preparation and thought, so that important issues are addressed before the flight and that there is not a waste of time in the air.
 
 
 
 

Team Members
 
James Kitson (Cpr E 482) Team Leader 

312 Hilcrest Apt #3 

Ames, IA 50014 

Phone: (515)292-7078 

E-mail: jkitson@iastate.edu

Wai Chan (CprE 482) 

PO Box 1248 

Ames, IA 50014 

Phone: (515)572-4781 

E-mail: chanwai@iastate.edu

Mark Dietrich (EE 461) 

Helser 2613 Louden 

Ames, IA 50012 

Phone: (515) 572-2572 

Email: mdietric@iastate.edu

Anita Keely (CPRE 481) 

Oak 3022 King 

Ames, IA 50013 

Phone: (515) 296-6376 

Email: akeely@iastate.edu

Clint Sanders (CPRE 481) 

2300 Mortensen #6 

Ames, IA 50014 

Phone: (515) 268-9456 

Email: csanders@iastate.edu

Jason Sturtz (CPRE 481) 

2101 Oakwood Rd. #301 

Ames, IA 50014 

Phone: (515) 296-2012 

E-mail jsturtz@iastate.edu

Advisor Client
Dr John P. Basart 

333 Durham 

Iowa State University 

Phone: (515) 294-4955 

E-mail: jpbasart@iastate.edu

Iowa Space Grant Consortium 

Iowa State University 

408 Town Engineering 

Ames, IA 50011 

Toll Free: (800)854-1667 

Voice: (515)294-3106 

Fax: (515)294-3262

 


 
 
 

Summary and Conclusion

The Aircraft Imaging Platform project has been very successful. This semester the team has flown multiple flights, and though problems have been encountered, they were overcome. The complex system that is AIP is now more functional then ever before, and is ready to begin the actual research that it was designed for. There is always more work that needs to be done in any project. Still, the achievements this semester have been remarkable, and almost two years after its inception the AIP project will begin to fulfill its mission of making research using aerial photography a much easier enterprise then before.