What is a “Swarm”?
As robots become more and more useful, multiple robots working together on a single task will become commonplace. Many of the most useful applications of robots are particularly well-suited to this “swarm” approach. Groups of robots can perform these tasks more efficiently, and can perform them in fundamentally different ways than robots working individually. However, swarms of robots are difficult to program and coordinate. My work focuses on developing software and intelligent programming techniques applicable to large swarms of robots, with populations in the 10 to 10,000 range. Software is evaluated on the 100-robot iRobot swarm.
Applications of Robot Swarms
There are many applications for swarms of robots. Multiple vacuum cleaner robots might need to share maps of areas where they’ve previously cleaned. A swarm of mars rovers might need to disperse throughout the environment to locate promising areas, while maintaining communications with each other. Robots used for earthquake rescue might come in three flavors: thousands of cockroach-sized scouts to infiltrate the debris and locate survivors, a few dozen rat-sized structural engineers to get near the scene and solve the “pick-up-sticks” problem of getting the rubble off, and a few brontosaurus-sized heavy-lifters to carry out the rescue plan.
In all these applications, individual robots must work independently, only communicating with other nearby robots. It is either too expensive (robot vacuums need to be very cheap), too far (it takes 15 minutes for messages to get to Mars), or impossible (radio control signals cannot penetrate into earthquake ruble) to control all of the robots from a centralized location. However, a distributed control system can let robots interact with other nearby robots, cooperating amongst themselves to accomplish their mission.
Software from Insects?
The main goal of my research is to learn how to program to use local interactions between nearby robots to produce large-scale group behaviors from the entire swarm. This idea is not new, in fact it is almost 65 million years old. Ants, bees, and termites are beautifully engineered examples of this kind of software in use. These insects do not use centralized communication, there is no strict hierarchy, and no one in charge.
However, developing swarm software from the “top down”, i.e. by starting with the group application and trying to determine the individual behaviors that it arises from, is very difficult. Instead, I am developing a library of “group behavior building blocks” that can linked to combined to form an intelligence to programming software. The robots use these behaviors to communicate, cooperate, and move relative to each other. Some behaviors are simple, like following, dispersing, and counting. Some are more complex, like dynamic task assignment, temporal synchronization, and gradient tree navigation. There are currently about forty of these behaviors. They are designed to produce predictable outcomes when used individually, or when combined with other library behaviors, allowing group applications to be constructed much more easily.
Robots are going to be an important part of the future. Software designed to run on large groups of robots is the key needed to unlock this tremendous potential to benefit mankind.
Example. Swarm behavior is such there is a master where all others are slaves, where you move one constant, the rest will follows, this technique can be used to program Stock Indices Prediction software.
The final product of intelligent software is so advanced that it will use 3D search engine with intelligent swarm techniques to solve complex problems trawling billions and billions of data in 3D formats, creating the “intelligence” for every human being to use to advance knowledge and search info themselves.
Enough info is available online to learn about the basics of intelligent programming, if you want to unlock the secrets of intelligent software, I do not believe in stealing other people’s works, please approach MIT to licensed their works, And if you have the necessary patents to cover your input, I will direct your output, but definitely for a fee of course. My objectives is to train everyone on the technologies that will change the method of programming forever, so that you can “Fish”, I am not interested in snippets of codes, that is why I never copywright anything, but if you steal and copy to produce a product wholesale that competes with me, I will be after your ase.
– Contributed by Oogle.