12 IR receivers for swarm robot.


I am trying to work on swarm robots. So i am trying to develop the basic hardware for now. I am using 12 IR transmitter on single bot, each IR will transmit it's bot number (given by me) and its led no, something like "Bot no 5, led no 4" (and this will keep repeating in loop, sort of broadcasting itself all the time). Now i realized that i will need 2 controllers (Arduino mini pro), independently for transmitting and receiving the data and processing on it.

Now the problem is 12 IR receiver (TSOP 1738) is kind of big number, i realized that i cant use polling since i will miss the message most of time, so i decided to use interrupt, pin change interrupt, but there are only 3 vector routines, so i have to check each pin in routine and then try to get the message and decoded it. I have a feeling that probably there is a better way to do this. I am planning to use RC5 protocol, but ready made libraries are quite big and not suitable for this number i believe.

I am still in planning phase, so any guidance would be very helpful. Thank you

Why 12? among other questions...

A swarm definitely needs a network protocol, else you’ll produce only IR lightning without any decodable information. I’d consider bluetooth or some other networking devices for communication.

@lastchancename thanks for quick reply. Well 12 because it will cover majority of area around the robot making sure that i receive the signal in which ever position i am.

@DrDiettrich thank for the help. Even i was starting to have these doubts when i was in the middle of designing my solution. You putting it into words made things more clear, so thanks again.

mayank_emb: Even i was starting to have these doubts when i was in the middle of designing my solution.

How did you manage to push these doubts aside?

You should call it a solution after you made it work.

You may be better off with Zigbee or one of the ultra low-cost 433MHz radios. IR is going to cause a lot of issues - including multi path / reflections. WiFi will probably introduce too much latency, unless the members have a lot of autonomous processing power.

Something like Zigbee and others already include support for mesh management, which means the swarm members become aware of each other by 'name'. Each member would need a very fast processor, an IMU/accelerometer, and some means of avoiding immediate collisions. There are a lot of 3D variables to process at 3x real-time (remember Nyquist).

The challenge in any scenario like this - apart from the individual swarmee - is the physical distance/relationship between the members (which is why those swarm demos you see - use arena mounted cameras) to coordinate the 3D space.

You could possibly do this with IR, but the data load would be horrendous, and filtering the simultaneous messages from multiple autonomous senders would be hard work - not something I'd be throwing at a student class!

mayank_emb: I am still in planning phase, so any guidance would be very helpful.

How do you synchronize the data transmit of the IR transmitters, so that only one transmitter is sending at the same time, while all other transmitters are in off-state to avoid overlapping of transmitted data, which would mess up the data reception at the IR receivers?

If more than one IR transmitter is sending unsynced data at the same time as other IR transmitters do, you can fuck up the whole swarm with all of their IR receivers immediately. :smiling_imp: