I’m thinking of trying a swarm robot project for sometime in the future. However, I want to do something different.
I’m thinking that individual swarm-bots might not be too intelligent, but what if each of them had a neural network, and with communication between bots, parts of the neural networks can combine (Holy Mighty Morphing Power Bots, Batman!) via radio. Right now i’m not sure exactly how to do this as artifical neural networks were never of more than a passing interest to me before.
Right now I’m using ANN for any time of generic computing structure that can be combined to produce better results.
They should individually be decent robots, though small, but when combined, they should be able to somehow combine extra computing power such that they are smarter together than they are apart.
Some of the bases could be 3d printed, with BasWheels.
I’m just thinking out loud now, if you have anything to add (positive or negative), feel free.
I’m going to make a pico net bluetooth swarm of cheap robots. Or wifi managed if i can program the esp8266.
The concept behind neural networks is to have boxed intelligence, rather than more processing power. It can work on a cheap robot so that it learns how to move itself by trial and feedback, until it learns a basic set of moves. After that instead of trying it uses the values it learnt, the values can be stored elsewhere, then the robot is re-programmed with the new values.
Another application it’s a mesh distrubuted wifi network, where bots deploy themselves so that other members have a precise location, can communicate indirectly passing messages between nodes and each sharing what it does. There can be messages like “come here”, “all to the base” or “avoid location x,y”.
Neural network? Isn’t that the definition of swarm?
Dear: Dangerous Thing
Neural network? Isn’t that the defintion of swarm or are you refering to the cpu of your robot? I am a little bit confussed could you enlighten that for me? Because I thought swarm robots already used neural networks in the way they communicated. If you are hoping to use the circuit diagram you showed me of learnable logic gates good luck!!! I am looking forward to it.
Mogul was the one behind the Mogul was the one behind the logic gate NN.
And swarm robots can be programmed however you want. I was using ANN as a word for any sort of distributed intelligence. Real ANN’s aren’t used as much anymore in robotics. They looked good for a while though.
I thank you Silux, but I’m I thank you Silux, but I’m trying for a rather specific thing.
I want a small robotic swarm that get more inteligent the more of them there are available. When it’s just one, I want a basic explorer robot. When there are two, I want more abilities. Each should also have a few similar sensors (some sort of proximity), but each will also have one or more extra sensors (a camera or a LIDAR Lite) which will combine synergistically when all are together, or so is the plan.
Right now I’m just thinking Right now I’m just thinking out loud. Groucho is the leader of the pack, and will probably do the overall storage when necessary, but yes, it might be good to have one with a lot of extra memory.
I wish I could do an SD card to SATA converter so I could boot one of these puppies with a small SATA drive. That one could handle vision and logging.
If I ran each of these off of an ODroid CL, which is similar to a RasPi 2, then I’d have excess computing power not normally needed in a small bot. When multiple ones communicated, then this excess power could be shared among the swarm. For example, if some of them used OpenCV to handle simple data fast, then the one that specialized with OpenCV by having a faster board, the. This Vision Bot could help the others by sharing its own data as well as interpreting some of the others’ vision stream.
Similar for a bot that handles sound input and voice to text. With other bots around that have sound input, the Sound Bot could use the information from the other bots to localize the source of the sound/voice.
Maybe even some repeater bots to keep the signal from being lost in a noisy environment. Or a drone for an eye in the sky.
I would use the swarm as a collective single robot. And the fun thing is that I could add a robot with new capabilities to the swarm as long as I am careful in creating the protocol used to send the data so something new could fit in. On the other hand I’d probably just have to be careful in my programming so a new sensor is just a new service.
A bit of hierarchy and abstraction could help. You use a big robot to act as a gateway, memory and command center for the swarm. This holds a big hard disk, good ram and processing power, act as a master in a bluetooth connection and can be accessible from a static ip. When the gateway receives a command it evaluate what is the best way to solve it; if it has a member of the swarm able to do it, it designates that member to do it.
The gateway can also receive commands from swarm members(the ones with input abilities), but always give priority to his hardware sensors and user commands.
Once a new member comes in it offers itself as a discoverable bluetooth slave module or as an Access Point. The gateway or a special member of the swarm will welcome the new bot by giving him the password needed to communicate with the master and ask what it can do. Then it is registered on the gateway.
Martin Triplett’s AI can already do the proxy-based command chain, and he’s working on a cloud version.
Drones are better managed with a carrier ground vehicle, which acts as a deployer, location station, landing spot and bettery charger. The drone has to be big and smart enough to do marker based precise landing, and some processing to find the carrier. The carrier has some way to recharge the drone battery and lock the drone. Drones have an awful flying autonomy, while a big robot can just use bigger batteries and solar panels.
Artificial Neural Network. Which it’s a bold name for a kind of program which takes in a bunch of floats as example and try to make sense of them. They are really useful when you get a really big data set, you analise just a fraction of it, use it to train the program, wait some time, if it has trained well you can use it to analyse all the dataset, else you just give the neural network a different configuration or more neurons.
They are not so used because they are not easy to use, and long and catchy to configure. Some AI jobs like image recognition may need too neurons or many helping algorithms to work.