 Okay Welcome back to this afternoon's session. I have a short announcement concerning a change, slight change in the program. Shasha Tupali had a problem with his flight, so he's not able to be in for today's talk at 5 p.m. You'll be arriving tonight in Trieste, so we have moved his talk sometime later in the week. So for today the session ends at 5 p.m. From that time on you will be free to roam everywhere around in the city and I will give you details how to reach the city center, how to get back and what to do in the next break. And now I leave the floor to Dario. Okay, hi, my name is Dario Floriano. We'll be chairing this afternoon's session. The first speaker is Marco D'Origo and I don't think I need to introduce him. Okay, so very nice to be here today to talk about Beyond Pure Self-Organization Robo's Worms. Basically what I want to do today is to give a short overview of research that we have been doing in the last 15 years on purely self-organized Robo's Worms and then conclude with some recent research on going beyond this pure self-organization approach because of what I believe are some problems that we had when using pure self-organization. Okay, so the problem we are interested in is how to control a large number of relatively simple robots that cooperate to perform a given task and that are robust to failure and such that the system in a way so that the system is scalable so that if you want to perform more work, you just add more robots. And the way you control such a large number of robots, well, there are basically two main possible philosophies. One is centralized control. The other one is decentralized control of self-organization. The first one, you might be tempted to use it because we have a lot of experience on how to build the software for centralized systems but there are a few problems and one very important problem that is there is a single point of failure so your system is not that robust to failures. On the other side, when you use self-organization, there is no centralized controller. There are local interactions between the components of the system, local communication and so what is good in this approach that is coherent with our goals in small robotics but we have a problem that is what is called the micro-macro problem because what we want is to program a swarm or a large group of robots but what we can do in practice is to program the single robot. So the problem is how do you program this single robot so that you get the swarm level behavior that you want. So swarm robotics is exactly the science and engineering, the studies how to design, build and control swarms of cooperating robots so that using self-organization principles and in a robot swarm, we have the robots that are relatively simple, there are many of them and they are relatively simple and incapable and they need to cooperate to perform a task that you give them. So if they do not cooperate, I don't call it swarm robotics. So if you have a bunch of robots, each one is doing things independent of each other but there are just many robots. So I approximately already said this but why do we want the swarm robotic systems is because we all could be able to have a robotic system made of many simple parts that can do the same things that were much more complex robots could do and have additional desirable properties like fault tolerance, scalability, parallelism that would be difficult to have in a more complex single robot. Additionally, the op is that they can be cheaper since usually the cost of an artifact grows more than linearly with its complexity. Having many simple robots might be a cheaper way to go. So in these last 15 years, we have built a number of robots to do experiments in small robotics. In particular, we have built S-bots, N-bots, high-bots, foot-bots, which I will present very briefly. The S-bot is what you see here is a robot that is capable of grasping other robots. This is the main characterizing feature. It has grippers that allow the robot to attach to other similar robots and so they can perform, they can cooperate physically, not only logically. The robot is 12 centimeters, 700 grams and has a number of capacities. It can communicate with other robots using light, using sounds, it has cameras and so on. And they, as I said, can attach to each other using the gripper and the motors are strong enough so that they can lift another robot. So this robot can be used to, when they cooperate, they can do things that they cannot do alone. For example, you see they cooperate to move on a rock terrain to pass over a rock by using these flexible grippers to attach to each other. Here you see the same robots attach to each other that managed to pass over a step and here you see a number of 20 of these robots that grasp a child and pull it on the ground. So the child was augmented with a red bar so the robots could use their sensors to see the child and then they formed four structures which we call swarm bots and they retreat the child. Okay, so how do we program a robot swarm? So the basic paradigm that has been followed in the great majority of the cases, there are always exceptions, but this is the standard way to go, is we use a behavior-based architecture. So if we define a certain number of behaviors that the robots should have and then we either write or use some machine learning techniques to learn these behaviors and then we test, we place the behaviors in formal controllers on the robots, but we first test the behaviors in simulation and once we are happy with the results, so there are cycles until we are happy with the results and then once we are happy we move to test with the real robots, which are the real test. If it works we are happy and otherwise we recycle. And to give you an example about these works, I will discuss briefly a search retrieval task that we perform with a swarm of these S-bots, the robots that I've shown before. So these robots have a local sensing so they can see robots that are close by, they are capable as I've shown before of physical cooperation and they are controlled by stochastic rules and they should cooperate to search a retriever and heavy object, heavy means that more than one robot is needed to move it around, in particular case three robots at least are needed. So what we do is we give a robot rules. So robots can be in different states like they can be free, they can belong to a virtual chain, I will explain in a moment that they can be retrieving an object. In each of these states they have simple rules like if I see nothing explore and so on that are applied with certain probabilities. In this particular case so the way we proceeded to define this rule is the following. So what you see is the object to be retrieved, the goal, the object that should be retrieved to these gray circles here are the robots and each robot has this sensing distance. So at the beginning of the experiment the robots start to move around in the environment randomly and when they happen to see the blue color which is the goal the rule says that they can belong to the first element element of a virtual chain and take a particular color for example green. And then the process is repeated and so when another robot arrives at the sensing distance from the green can stop and become the second element of the virtual chain and so on. Obviously I am here showing only one of these virtual chains that could be other moving in other directions. When a robot is alone at the end of a virtual chain with a certain probability it will give up and the virtual chain will be destroyed, the old robots will be free again. And once one chain happens to be long enough in the right direction so that the last robot in the chain see the red, the chain is frozen and is used by other robots to find and retrieve the object. So this informal algorithm can be then written in a formal way using a probability finance state machine that you see here and then downloaded on the virtual robot in a simulation environment. So here is the object, the goal locations are and these are the objects to be retrieved and what you see here is the algorithm that I explained before. So the robots are creating these virtual chains all the time and at some point one of the chains finds the object like here and then the other robots follow the chain and go grasp the red object and retrieve it. Okay so this was a simulation and when we got here we were confident enough that the algorithm was well conceived and then we could go to the real robots experiment and what you now in the next slide that we show the a movie of an experiment with the real robots which by the way was performed by Roderich Cross that is here in the audience when he was a PhD student. What I would like you to serve in the video that I'm going to show is that all the robots have the same control system and that they dynamically take up different roles and they form different teams. Okay so there will be robots that are exploring the environment, robots that are belonging to the chain, robots that retrieve and they can join and leave this team dynamically during the experiment. So this is the arena where we are in the experiment, this is the object, go location, the robots placed randomly and so they start. So there is a lot of since the movements and the the application that moves are probabilistic probabilistic there is kind of confusion going on. So this for example you see the here this chain was built up to a point and then was destroyed again here this will happen this at some point that these robots will give up and the and the robots become again free. And then as now these robots have built a chain that connects to the other objects and the other robots that are exploring they don't know and so they are just exploring trying to extend the chain but when they see the red object one of their rules say grasp it and so the robots grasp it and then start to pull but the object is heavy so they don't manage to pull until there are at least three of them. And then at some point in this experiment the robots did something stupid because their sensing is very bad so they don't see very well and they can see things that are not there or make error so at this point these robots are going away and the other robots that are building trying to build chains they fill the gap so that the robot were able to start again to retrieve the object. So after this experiment we tried to go ahead and do something similar but now more complicated working with an heterogeneous swarm with so different type of robots that cooperate and in three dimensions. So we built this heterogeneous swarm that we call the Swarmanoid that was composed of three type of robots the footbots the n-bots and the i-bots they are specialised and so I show them in here briefly so the footbot is a robot the name reminds a little bit of its function is a robot very similar to the previous one just better engineered it still has a gripper but is made in a way that is easier for the robot to grasp another and its main function in our experiments was to transport other robots these robots here and these robots here are called the n-bots these are robots that cannot move around they need to be transported but they have a gripper so that they can grasp objects and they can climb some kind of structures like you see and finally the i-bots which we use in the swarm as the robot that had the better vision capability that was helping the other robots in their exploration of the space so as before we built we brought the controllers using a base of base approach and then we tested the resulting system in a virtual simulated environment that you see here where these red uh these are the model of the flying robot and what you see here are the models of the other two the footbots and n-bots so basically we let the highbot explore the environment and when once they find the object uh they help the robot on the ground to reach the location of the object and then the climbing robots retrieve it so i go directly to show you the video with experiments with the real robot swarm anoid is a heterogeneous robotic swarm made up of three types of robot the handbot is designed to manipulate objects the handbot can also climb but needs help from other robots to move around the footbot is a wheeled robot with a gripper using its gripper a footbot can form physical connections with other footbots or with the handbot the i-bot can fly and rapidly explore large areas it can attach to the ceiling and provide environmental information to the other robots in this film the swarm anoid is deployed to find and then retrieve a book here the swarm anoid has already partially explored its environment as the i-bots search successive i-bots attach to the ceiling forming a connected network once an i-bot has found the book the knowledge propagates back to the deployment area the handbot then requests transport assistance from the footbots using the i-bot network the footbots form a ground-based chain linking the deployment area to the book the composite footbot handbot entity then follows this ground-based chain a second handbot prepares for transport the first footbot handbot entity has rotated and aligns with the bookshelf while climbing the handbot supports its weight with a cord attached to the ceiling actuated fans give the handbot control over its angle of rotation around the vertical axes swarm anoid is a parallel distributed system okay parallel um so from these two experiments and many others that we run I don't have the time to show now uh well we learn first the one that we saw before the one with the s-bots was the first example of self-organized robot team formation to be proposed and then we found that it was not only very difficult to obtain but it was not so easy to generalize to more complex task or the approach that we were following I mean and it was not so easy to generalize the same approach to perform more difficult task and that the system was not so robust to failures as one could hope for example when you build these chains of robots if one of the robots breaks down then it is in the way of the other robots okay so the it becomes difficult to to find a solution to this um also it is very difficult to interact with a swarm uh exactly because it is completely self-organized you don't have a someone to talk to if you want to tell something to the swarm like giving a comment so before I go to the next part of the talk I need I want to uh thanks all these colleagues the image a little bit dark but there are many well-known people here uh some of them are also here in this audience and uh the many PhD students that collaborated to this uh work um okay so I was saying because I I somehow eat the limit what I think was the limit of self-organization maybe I was not good enough but uh at some point I said okay it seems that using a pure self-organization approach might be too difficult to develop a robot swarm that do something useful I started to think what could be done next and um going beyond these pure self-organization was what I did recently by designing what I call the robots with mergeable nervous system so the idea was to introduce some elements of a centralization in the organization of a robot swarm trying not to lose the good parts of self-organization okay so um this is some initial work so I'm not there yet but uh just to give you the idea what is the direction so we call a robot nervous system basically the CPU and all the connection between the CPU and sensor and actuators okay and so in the graphics that I show you in drawings I show here the red is a robotic unit and when there is a white circle on the center it becomes also the brain of that particular robot okay so obviously here there is only one robot one there is one brain then what happens when you have two autonomous robots so you have two robots each one with its brain but then you want them to connect with each other and when they connect to each other one of the two robots sees authority to the other one okay so basically it's like um I give my hand to someone else and by giving the hand one of the two brains sees control to the other one so that we now are a single uh being so in this composite robot there is one brain and the and this brain has knowledge about the previous one so basically if you have a more complex structures like here we have six robots are attached to each other with one brain to every year this brain has knowledge about the body structure and the nervous system of all the body that is all the other robots that are attached to it and this second robot here has knowledge about everything that is attached to it so since it's a tree structure uh this one will have knowledge about this one and so when you have two of these uh merge vulnerable system enabled robots and they connect to each other so since there are two msc enabled robots they have each a brain and each brain has knowledge about this body when they attach to each other so this this robot here was attached to this one this robot is seeing authority to the other one and this brain automatically gets knowledge about all the body okay so why is this interesting because in this way we can give the robots uh interesting capacities while retaining the capability of letting them work as a self-organized system when they are independent of each other so for example we can tell robots to form particular morphologies so if it's working yeah one robot is given the common to start in particular morphologies and he knows about the structure of his body it calls for other robots to attach and they can self-assemble in many different ways and it's very easy to implement even more interestingly you can have the merger robot act as a single entity so for example consider a problem in which you have robots that are reacting to external stimulus and this green light by pointing and the retracting so they point to the stimulus into the stimulus is too close they move back so when they are independent of each other they just do this then they are given the common to self-assemble in bigger robots and now the things it becomes for a purely self-organized system would be much more complex because how do you know which robot is the closest one how do you coordinate the movement of the world entity to move away from the stimulus but since I showed this in the video since they are touching to each other and have this nervous system this become feasible so these are the robots this is a stimulus here okay so now the stimulus exit and the robots are given the instruction to form two mns robots with these two brains and now the and then the stimulus reappears and you will see that the stimulus when it reappears let well the robots are capable of pointing to the stimulus with the part of the body that is the closest one now the stimulus is a way again the robots are given the common to attach to each other they become a single robot and again when the stimulus reappears it is the robots is capable of to perform the pointer retract behavior if it is as if it was a single entity so another interesting thing that you can do with sorry yeah and other things that you can do with with robots that have this mergeable system is to let them self here so we have run an experiment in which one of one one of these robots with a brain here is broken in different parts and then it can readjust let's say can self here okay so this is the video of the experiments in the first experiment we basically we kill the brain so the robots attached to each other and now we kill the brain so the robots that are attached to the brain they realize that the brain is broken they detach they form three new robots each one with its own brain and then they reattach to each other and two of them see the authority and so the robots is basically again in the very similar situation as before we've excited the broken part similarly here we have a composite robot where one of the components is broken the brain realizes moves away and then two robots cold and the system gets repaired finally what you can do is if you have an heterogeneous system where you have robots that are specialized for different tasks and they need to cooperate with different configuration depending on the tasks they are given they could they can self assemble and create bigger robots with the right components this is a very simple example in which one robot here would like to retrieve a brick here but he has no grasping capability so when it goes there it realizes that the brick is there but he has no grasping capability he calls for another robot that has the gripper but it would not be powerful enough to remove the object they attach to each other and they move away okay so this is uh some work that we have recently published in natural communication with these three guys here that are my ex phd student and francesco and data that you probably know so what we are doing now we are trying to understand how these uh in part centralized uh the architecture can be instead of being programed as we need the year can be the results of self-organizing processes so for the moment what we have done here is to put to create the infrastructure that make possible to do these type of experiments and now the next step is to understand whether we can get these centralized hierarchies architecture uh emerge through the interaction of the robots with the environment we also intend to extend the paradigm to swarm of robots that do not physically interact with each other so you could imagine that the same kind of mergeable nervous system approach uh is used to control a swarm of robots that are just logically interdependent with each other okay so last slide uh okay obvious for time reason i was able only to present as more part of the things that we did we do in our lab we also have activities and collective decision making robot swarms in stig merge based as one construction and recently we have worked on the use of blockchain based as smart contracts to try to make robot swarm more secure and all the automatic synthesis of robot swarm behaviors so it seems i will be in the coming days if you are interested in any of these subjects you are welcome to come and see me and we can discuss uh any of them um okay so finally just a little bit of advertising there is a journal most of you are aware but for those that are not uh that is called swarm intelligence is now in 12th year so it's very well going so you are invited to submit your papers there and if you're interested there is the ants 2018 conference on swarm intelligence in Rome next october thank you