Ahron Train, Jyotsna Jillepalli, Nour Alli
supervised by Dr. Krishna Kumar
RyeSat (Ryerson satellites) is a miniature low-cost satellite system, comprised of pico- and femto-satellites which weigh as little as 100 grams. One possible use for such a system is the tracking of space objects. The purpose of this project is to allow these satellites to track marked space objects, by means of optical recognition and an embedded processor. The module is capable of tracking six axis of freedom: x, y, and z relative to the module, as well as rotation in each axis. From this information, velocity and acceleration may also be determined.
The tracked objects are marked with three bright LEDs, in order to simplify detection and reduce false positives. The implementation of this project relies on a small camera for capturing the images, and a small microcontroller for scanning the image and tracking the object. Wi-Fi and XBee may be used. XBee mesh functionality can be used to coordinate with other RyeSat modules, and allow for coordinated synchronised flight via the feedback provided by this system. OpenCV image processing libraries were used, and hence an embedded Linux system was built for this microprocessor.
The performance of the completed project was limited by a number of bottlenecks. Most significantly, the camera's slow transfer rate limits the operation to 0.6 frames per second with greyscale images, and 0.15 frames per second with full color full resolution images. The images transferred from the camera are compressed as JPEG, and must be decoded. The selected processor is of ARMv5 architecture without SIMD instructions, so JPEG decompression takes as long as 260ms. Finally, the blob detection algorithm (which scans the image pixel by pixel detecting color or brightness and sorting the areas into blobs) is a major bottleneck as well— this process can take as long as 2.5 seconds to scan an entire image. To reduce this last bottleneck, the area which is scanned is reduced in subsequent iterations to the area around where the object was last detected, reducing its impact to a few hundred milliseconds. XBee proved to be a less than practical communication method for two reasons: The actual continuous throughput rate is much slower than the advertised rates and interface rates, causing unexpected delays, and compared to Wi-Fi, implementing proper two-way protocols was significantly more complex.
The biggest bottleneck of this implementation was the slow CCD camera, and additional associated performance costs of decoding its data. A camera with a parallel interface such as SCCB would not have these issues, because these interfaces run at much higher rates and transfer decompressed images directly into the system's memory. In this case, the limiting factor would be the blob detection algorithm and the communication speeds. Furthermore, this project can benefit massively from the use of a CPLD or FPGA, because it would be able to apply the bottlenecked blob detection in algorithm, and in close to real time as the pixels are transferred into the system.
Project targeted applications: Satellites, Remote Monitoring, Traffic Control