Pages

Sunday, September 12, 2010

Swarm Robotics Prototype 0.0


Now that we have done some basic electronics...little bit of interfacing and we 'say' that we make robots, let us go on to one of the latest advances in robot technology: Swarm Robotics.



Taking a classic example from our own society, we know that we progress because of communication. There are countless things that we learn just because someone tells them to us. Maybe we never experience them ourselves, but at the 'back of the mind' we know about them. For example, I have never been burnt by a fire. But still i 'KNOW' that I should be careful not to go anywhere near it. Hence, the communication that enables these interactions spreads experience among a group and promotes development. Hence, we are going to look at a very important aspect of developmental robotics, wireless communication.



One of the easiest methods of doing wireless communication is to use available RF Modules. Though not the most advised method of communication during competitions (frequencies clash :|) it is excellent to test basic projects. RF transmitter and receiver modules are available in the market. Now, to make things simpler, we assume we have 2 robots. The first robot is a healthy individual, it has RF transmitter to 'talk' to others, it has sensors to enjoy the surroundings. The second robot is not so fortunate. It has no sensors of its own...just the ability to 'listen' as it has a receiver module. Now, I guess you have already figured these modules need to be interfaced with the microcontrollers, the transmitter on the first controller and the receiver on the second one.

Using RF modules is possible after we write a basic protocol of communication. Here, it is going to be a code that checks for errors or 'noise' in the communication. There are many error correction algorithms, again I suggest google is a better guide than me. The task is to be able to send say one byte of data from the first bot to the second bot. This data that is sent now needs to be stored in some memory location. Remember that the code should be such that it continuously checks for data and at the same time drives the second robot.



Now after all this, I come to a simple yet not so simple problem statement. Remember the line follower we made ? Now the poor second robot has no sensors and cannot follow a line. The first robot decides to help it out. It keeps telling the second robot where to go next ! So keep the robots on the line one after the other. The first robot runs the line follower code and at the same time sends bits to the second bot. For simplicity, say it sends the values of the respective pins that are connected to the motors. The second bot receives this data and then assigns it to the pins to which its motors are connected !!! And done...we have a very very basic robot swarm of 2 robots where the first robot 'helps' the second robot to do some particular task :)

No comments:

Post a Comment