Congratulations to Prof. Bart Massey, our PSAS CS advisor, whose proposal to re-outfit PSAS with a new flight computer won a $21,000 research grant from IBM. He was one of eleven researchers who won grant monies from IBM as part of their "Linux on POWER" innovation grant program. The grants are are part of the IBM Scholars Program, and this particular one is to encourage researchers to try novel things with Linux on IBM's POWER architecure (e.g., the PowerPC architecture) microprocessors.
Receiving this grant will enable us to upgrade our flight computer to a faster, more POWERful (sorry) processor, and provide resources to set up the cross-platform development and debug environment necessary to work with it. We'll be starting this work this Winter quarter with the goal of being done in the spring, if that's possible.
Here's the proposal:
A Power Platform for Amateur Rocket Avionics
Proposal to the IBM Power on Linux Award Program
Bart Massey <bart@cs.pdx.edu>
8 October, 2004
Description
The Portland State Aerospace Society, the student rocket club at Portland State University, has a 5-year history of excellence in the design and implementation of modular sounding rockets, with a special emphasis on the inexpensive construction of world-class amateur rocket avionics. This accomplishment was recognized by a NASA Oregon Space Grant in 2002, and by an IEEE Innovator Award in 2003: the only group of amateurs to be so honored.
Our current launch vehicle, LV2, has a design altitude of about 40,000 feet. The avionics system is comprised of a PC-104+ autonomous flight computer acting as the central controller for a variety of subsystems controlled by Microchip PIC microcontrollers connected via the high-speed, high-reliability Controller Area Network (CAN) serial bus. These subsystems include GPS and IMU navigation, Amateur TV, 802.11b, and 2-meter Amateur Radio telemetry and uplink systems, an autonomous power control system, the igniters and separation charges for the rocket, and a variety of miscellaneous functions such as a 3-axis solid-state magnetometer, pressure altitude, etc. The onboard- avionics supported by a laptop-based ground control and monitoring system which interfaces with a PC-104/CAN launch control computer. For a great deal more detail on the rocket avionics, please see [1].
LV2 was constructed "from scratch" by the PSAS team, including the entire collection of hardware and software. These systems represent a fascinating design point in terms of extremely low cost (for example, the 6-axis MEMS IMU was built from less than $100 in parts) and reasonably high quality. The documentation necessary to completely reproduce LV2, including all schematics, PCB layout, and software, is available on an open-software, open-hardware basis under the GPL at the PSAS website, http://psas.pdx.edu.
The flight computer is currently a Jumptec MOPS, an AMD Elan based board running a stock Linux 2.6 kernel. A CAN device driver has been rewritten for the Intel CAN controller chip on this board by the PSAS team: the rest of the flight control software runs as a normal user process. The Elan was chosen because, in spite of its low (266 MHz) speed, its floating point capability, availability of peripherals, and low cost made it an attractive option. (The entire rocket budget to date is estimated at less than $20,000, much of this out of student pockets: this precludes an expensive computing solution.)
Unfortunately, many of the tasks required during flight require intense and expensive realtime computation. PSAS plans to move to active guidance in the near future, and is currently doing realtime navigation in support of this goal. This means performing expensive filtering algorithms to fuse sensor data from the various sources. In addition, we are beginning to work on AI algorithms for realtime machine learning for vehicle health management [2]: some of these algorithms are quite CPU intensive. As a result of these changing requirements, a more performant computing platform is rapidly becoming a necessity.
We propose to replace the AMD-based PC-104+ flight computer with one based on the Power architecture. The PSAS team would then create and/or port and support both development tools for this platform and realtime/embedded Linux infrastructure. The Linux on Power platform should provide a more solid basis for our future launch vehicle development efforts.
[1] Free Software and High-Power Rocketry: The Portland State Aerospace Society, with James Perkins, Andrew Greenberg, Jamey Sharp and David Cassard. In Proceedings of the 2003 Usenix Annual Technical Conference, Freenix Track, San Antonio, TX June 2003.
[2] Magic Bullet: Real-time Anytime Treatment Learning for Adaptive Intelligent Vehicle Health Management, with Tim Menzies. NASA SBIR proposal, September 2004.
Objectives
The project objectives are several-fold.
First, a realtime Linux development toolchain for Power based on the GNU compiler tools will be put in place, enhanced, and evaluated. GDB stubs suitable for real-time interaction with the flight computer will be developed.
Second, a realtime software infrastructure for Linux on Power will be put in place. The CAN driver will be ported or replaced as needed for PIC communication. Low-latency and other Linux scheduling options will be further explored. RT-Linux, an option considered earlier but not chosen, will be reconsidered.
Finally, a report will be written comparing the functional and performance characteristics of the "old" x86-based and "new" Power-based infrastructure, and discussing development issues. This work involves the deployment of open-hardware, open-software systems based on the next generation of high-performance processors suitable for a broad range of applications. This sort of deployment is key to meeting the requirements of a computing infrastructure that is increasingly distributed, mobile, autonomous, and agile.
Impact
In particular, the hard realtime embedded nature of LV2 presents a particularly challenging set of requirements. Lessons learned during LV2 HW and SW design and construction have proven to be quite transferable to more benign embedded computing environments: we believe that this will continue to be the case.
Finally, and not negligibly, synergy between PSAS and IBM should provide a source of good publicity for both parties. Rocketry is an interesting application, and PSAS is the key developer of rocket technologies in the ultra-low-cost open HW/SW area. IBM can justly be proud of being part of moving the PSAS effort forward.