In my EDA and IP roundup a couple of weeks ago, I mentioned a program where Matlab and Simulink were being used as part of NASA's Synchronized Position Hold Engage and Reorient Experimental Satellites (SPHERES) project. There was interest in this program, and more information was requested, so here is the next level of detail about the program.
The SPHERES in question are three bowling ball-sized satellites that fly around inside the International Space Station. Each satellite is self-contained with power, propulsion, computers, and navigation equipment. They form a series of experiments to gain more insights into satellite servicing, vehicle assembly, and formation flying in space.
SPHERES can test algorithms related to relative attitude control and station-keeping between satellites, re-targeting and image plane filling maneuvers, collision avoidance, and fuel-balancing algorithms, as well as an array of geometry estimators used in various missions. They are doing this in the space station because it presents a controlled environment within a microgravity that resembles the real but idealized conditions under which they would normally operate.
Rather than being spheres, these satellites are 18-sided polyhedrons that are 20 centimeters in diameter and weight 3.5 kilograms. They have a carbon dioxide propulsion system, which is expelled through thrusters, and they are powered by AA batteries.
Three satellites fly in formation as part of the Synchronized Position Hold, Engage, Reorient, Experimental Satellites (SPHERES) investigation. This image was taken during Expedition 14 in the Destiny laboratory module. Source: NASA.
The plan is that information learned from these experiments will lead to simpler autonomous docking, allowing for easier servicing, re-supplying, reconfiguring, and upgrading of space systems. The algorithms would eliminate complicated maneuvers that require ground teams to coordinate and execute. Secondly, this formation flight technology could lead to the creation of telescopes and interferometers based on separated spacecraft. It could also lead to autonomous spacecraft, a bit like drones in the earth's atmosphere, which could, with the right coordination and programming, perform tasks too complicated or too expensive for larger spacecraft to execute.
The program was started in 2000, with the first SPHERE delivered to NASA in 2003. Flights aboard the Space Station started in 2006. Early flights were used to ensure basic operation of an individual satellite and to develop the on-board navigation system. An extended Kalman filter is used to combine data from ultrasound receivers and gyroscopes into an accurate estimate of position and attitude. The final integrated tests of these algorithms culminated in the successful demonstration of docking to fixed and tumbling targets, a space first in the case of a tumbling target.
Today, they are testing with three satellites, perfecting things such as enabling the satellites to find each other if they start off being lost in space. The satellites use on-board sensors with a limited field-of-view to locate each other. Once they have found each other, they can start to fly in formation in order to cooperate on tasks. Part of this involves algorithms for collision avoidance, even under the influence of failures, and helping the satellites scatter to safe distances when necessary.
So, how is Matlab being used?
First, Matlab and Simulink are being used to test algorithms used for relative attitude control and station-keeping between satellites, retargeting and image plane filling maneuvers, collision avoidance, and fuel-balancing. Second, Matlab is being used to help render real-time, three-dimensional animation of the satellites during the experiments, allowing on-ground researchers to better visualize the experiments and view it from any angle. Until now, the only visualization available was a video from a fixed location.
If you are interested in this program, MIT has an opening for a post doctoral associate researcher.
Autonomous systems are definitely on the increase, and I wonder if they are building Asimovís laws of robotics into them. It would seem as if they are working on Asimov's third law: that a robot must protect its own existence as long as such protection does not conflict with the first or second laws.