Notifications
Clear all

Swarm Robotics

78 Posts
6 Users
28 Likes
3,421 Views
THRandell
(@thrandell)
Reputable Member
Joined: 2 years ago
Posts: 197
Topic starter  

My work with the Hide and Seek robots started me thinking about robot collaboration and coordination toward some collective goal.  Sounds pretty lofty but it led me to the work being done in the field of Swarm Robotics.  Of course there is a formal definition but for me the idea of using “relatively simple” robots to achieve a goal that is beyond the capabilities of the individual robot sounds intriguing.  The literature talks about the interaction between robots and the interaction between robots and the environment.  The requirement is for the robots to have local sensing and communication capabilities.  So with those high level requirements I have come up with a design for a small, and hopefully inexpensive robot.

 

To start with I’m going to run though some of the Swarm Robotics scenarios that have already been published.  Namely, 

A) Aggregation and Clustering - You see this in honey bees, ladybugs, Monarch butterflies.

B) Dispersion - The opposite of aggregation.

C) Object Clustering and Sorting - I’ve seen this in my neighborhood when the honey bees move their dead out of the hive.

D) Flocking and Collective Motion - Birds, fish, insects.  This one is a diverse field of study.

There are many more scenarios like collective transport, collective manipulation, division of labor.  It’s a big list to be sure.

 

 

On the hardware side to keep things small I selected a microcontroller that has a built in switching step-up voltage regulator that can be powered from a 0.5V to 5.5V supply.  

Also on the small side are the motors that I’m using.  They are designed to run on 4.5V but still operate in a range of 3V to 6V.  I know that there are smaller motors out there but I selected plastic gear motors because they are inexpensive, come in an HP version, are already geared down, have encoders and run just fine on a 3.7V Lithium Ion battery.

I played around with a couple of chassis designs using these motors and I settled on this one.

IMG 1773

Although the clearance is pretty low the tracks allow it to climb over a lot of obstacles.  I tried a different design to give it more ground clearance by re-positioning the motors.  This made the chassis more complicated to cut out and seemed to waste space. 

IMG 1789

Here are a couple of photos of my current work on the prototype.  The microcontroller and motors are working fine on a single Lithium Ion battery.  I would like to get 2 or more hours out of a battery charge.  Time will tell.

IMG 1813
IMG 1823

 

Tom

To err is human.
To really foul up, use a computer.


   
Quote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

That's an interesting concept, what ideas do you have for home use?

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@thrandell

So what communal goal do you have in mind? I assume they need those tank tracks to achieve the goal.

The closest I came with playing with swarm behaviour was with software robots.

A popular task is playing soccer which I alluded to in an earlier thread.

https://forum.dronebotworkshop.com/user-robot-projects/hide-and-seek-robots-request-for-comments/#post-19249

For some reason the soccer playing robot makers seem to have moved to complicated walking bots in the soccer games when I think the little wheeled variety would work just as well (faster simpler).

One thought was check out for small cheap robot toys big enough to fit in a microprocessor to replace the remote controls.

 


   
ReplyQuote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

@robotbuilder Soccer is a positional game, not really a swarm, but this makes it much more interesting as it now smacks of AI. I would love to see the code for any of the set plays.

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
THRandell
(@thrandell)
Reputable Member
Joined: 2 years ago
Posts: 197
Topic starter  
Posted by: @robotbuilder

So what communal goal do you have in mind?

I’ve been reading a book by Heiko Hamann and he has a case study on Adaptive Aggregation that I’ll start with. 

The idea is to come up with software that controls a robot swarm which aggregates at a specific spot determined by sensor input and stays flexible to any change in the environment.  The solution that he comes up with has biological inspiration from honeybees.  Biologists have found that young honeybees that are less than 24 hours old have no wings and no stingers and that they aggregate in clusters in the bee hive at locations with a specific temperature, which helps them dry their wings.  These young bees are known to change their behavior when they meet other bees.  The interesting result from the experimenters is that a single bee cannot find the optimum spot.  A small group will inefficiently find the optimum spot and a big group of bees finds the spot in the most efficient way.  This is a great example of a swarm effect where the behavior of a single bee improves as the size of the group increases.

Anyway, that’s where I’ll start.  I’ll probably measure lux instead of temperature.

 

Tom

To err is human.
To really foul up, use a computer.


   
Inst-Tech reacted
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@zander 

Never really went far with it. It is not the code (which could be in any language) rather it is the algorithms used that count.  Some of the algorithms used can be found on the internet.

 


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@thrandell 

Something like this?

http://heikohamann.de/pub/wahbyBICT2015.pdf

I could easily implement the suggested algorithms in a simulation.

The more robots (and probably the smaller they are) the better it would look.

I think drones would make great swarm robots. They can even sound like bees.

 


   
Inst-Tech reacted
ReplyQuote
THRandell
(@thrandell)
Reputable Member
Joined: 2 years ago
Posts: 197
Topic starter  

@robotbuilder

Yep, that's it.  The BEECLUST algorithm.

To err is human.
To really foul up, use a computer.


   
ReplyQuote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

@thrandell But at least pro European soccer players don't do that, American kids do though.

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@thrandell 

However the algorithm requires at least 15 robots!

From the video,

Robots detect collisions with other robots and stop if they collide.
Robots measure local illumination only when they stop after a collision.
The higher the illumination the longer they stay.
No communication is involved. Robots never have to go uphill in the gradient.
The algorithm works also with poor sensor reliability.
No global knowledge needed.
High swarm densities lead to more collisions and thus to a higher frequency of sensing.

One Robot: No chance to find the optimum, because it does neither use memory nor exploits the gradient.

Three robots: No chance because collisions are not frequent enough.

Nine robots (The critical swarm mass): The swarm finds the optimum but has no chanced to converge finally to a collective. solution.

15 robots: a robust collective decision: Please note that the solution is found very fast, due to the distributed and parallel search.

More robots find the optimum faster (efficiency increases) and find a more robust solution.
A single robot can neither sense a gradient nor does it store sensor data in memory.

The swarm in a fluctuating environment. Robust but flexible decisions are wanted.

Now they say,
The higher the illumination the longer they stay.
How is that implemented. There must be some internal change (memory) to keep the motors silent until the memory of the collision fades. Yet they say they have no memory.


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@thrandell 

As an aside I used to take a great interest in how a digger wasp was able to navigate back to its burrow after catching a spider, grub or cicada depending on species.  One day I saw what I thought was a small bird falling out of a tree but on closer inspection it was a large orange wasp with a cicada held between its inner two legs. It used its front and back legs to walk.  It travelled in a straight line for some distance and then changed direction to travel in another straight line. It kept to the straight line despite any obstacles. It then made another change in direction toward its hollow in the ground.  I observed the same thing with a smaller wasp when I saw it fighting a spider. The wasp lay on its back to jab the spider. Again straight lines back to the hollow in the ground climbing over any obstacles rather than going around them.

The evidence is they use large features like trees or bushes as beacons to orientate.  Before leaving the hollow to find prey they fly around as if fixing the features in their heads.  Even if the hollow is covered they can navigate to the correct spot using such features.

 


   
ReplyQuote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

@robotbuilder It will be interesting to learn how they 'remember' without a memory. So far I am stumped.

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

@robotbuilder Wow, that's so interesting. Of course we have heard of other species using magnetic, solar, celestial but never considered what I call 'man navigating' I think I am typical in that I can easily drive to some place but can't tell you the address. BUT if any landmarks are removed from the path I am lost. In other words I navigate like a wasp!

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
robotBuilder
(@robotbuilder)
Noble Member
Joined: 4 years ago
Posts: 1988
 

@zander 

Maybe they mean no global memory.  A neuron has no global memory but does undergo internal changes as a result of inputs which then changes how it fires in response to any future inputs.  The global memory is embodied in the whole not the parts by them being close to each other after a collision. That the internal state changes means the group will adapt to a change in the position of the maximum illumination.

Logic gates make group decisions without memory.  Each gate only has a fixed output to any input so the decision making is in their connections. The whole is greater than the parts.

 


   
Inst-Tech reacted
ReplyQuote
Ron
 Ron
(@zander)
Illustrious Member
Joined: 3 years ago
Posts: 5533
 

@robotbuilder I don't have an application in mind, but my spidey senses tell me this project will feed my active imagination, I look forward to it's project reports.

Arduino says and I agree, in general, the const keyword is preferred for defining constants and should be used instead of #define
"Never wrestle with a pig....the pig loves it and you end up covered in mud..." anon
My experience hours are >75,000 and I stopped counting in 2004.
Major Languages - 360 Macro Assembler, Intel Assembler, PLI/1, Pascal, C plus numerous job control and scripting


   
ReplyQuote
Page 1 / 6