Physical and Social Human-Robot Interaction with the iCub Humanoid
Date Posted:
March 26, 2024 to April 22, 2024
Date Recorded:
April 22, 2024
CBMM Speaker(s):
Giorgo Metta All Captioned Videos Brains, Minds and Machines Seminar Series
Description:
Abstract: The iCub is a humanoid robot designed to support research in embodied AI. At 104 cm tall, the iCub has the size of a five-year-old child. It can crawl on all fours, walk, and sit up to manipulate objects. Its hands have been designed to support sophisticate manipulation skills. The iCub is distributed as Open Source following the GPL licenses (http://www.iCub.org ). More than 50 robots have been built so far which are available in laboratories across Europe, US, Korea, Singapore, and Japan. It is one of the few platforms in the world with a sensitive full-body skin to deal with the physical interaction with the environment including possibly people. In this talk I report about the work of two of research units of the Italian Institute of Technology whose focus is the design of methods to enable natural interaction with the iCub robot.
Bio: Giorgio Metta is the Scientific Director of the Istituto Italiano di Tecnologia (IIT). He holds a MSc cum laude (1994) and PhD (2000) in electronic engineering both from the University of Genoa. From 2001 to 2002, Giorgio was postdoctoral associate at the MIT AI-Lab. He was previously with the University of Genoa and from 2012 to 2019 Professor of Cognitive Robotics at the University of Plymouth (UK). He was member of the board of directors of euRobotics aisbl, the European reference organization for robotics research. Giorgio Metta served as Vice Scientific Director of IIT from 2016 to 2019. He coordinated IIT's participation into two of the Ministry of Economic Development Competence Centers for Industry 4.0 (ARTES4.0, START4.0). He was one of the three Italian representatives at the 2018 G7 forum on Artificial Intelligence and, more recently, one of the authors of the Italian Strategic Agenda on AI. Giorgio coordinated the development of the iCub robot for more than a decade making it de facto the reference platform for research in embodied AI. Presently, there are more than 40 robots reaching laboratories as far as Japan, China, Singapore, Germany, Spain, UK and the United States. Giorgio Metta research activities are in the fields of biologically motivated and humanoid robotics and, in particular, in developing humanoid robots that can adapt and learn from experience. Giorgio Metta is author of more than 300 scientific publications. He has been working as principal investigator and research scientist in about a dozen international research as well as industrial projects.
Tommy Poggio: Very happy to introduce Giorgio Metta. We know each other for a long time. He came a few years ago, or he sent-- actually, did you come when you sent the iCub to the Summer School?
GIORGIO METTA: [agree].
Tommy Poggio: Right. So the iCub, you will speak about it. And iCub is almost drinking age. It's 20 years old. And--
AUDIENCE: [laugher].
GIORGIO METTA: In Europe, it is.
Tommy Poggio: So Giorgio has been doing great work in robotics for the last 20 years at least. And actually, cognitive robotics, and is now even more busy than usual being the director of the Italian Institute of Technology, IIT. I think there are around 2,500 people or so, which is, I think, a lot. So Giorgio, very glad to have you here.
[APPLAUSE]
GIORGIO METTA: Thank you. Thank you, Tommy, and I'll-- and in fact, being the director of IIT, I'm not going to tell you about my research entirely. So introduction is my research from 20 years ago and then I'll show you some of the stuff that our PIs are doing.
And in particular, I chose a topic where we're looking at the robot that I designed interacting either physically or nonphysically, socially, with us and see some of the experiments that we put together. I think it's an interesting story and it covers some of the areas that we're developing in robotics. There's other stuff, but try to stay focused enough to be able to convey some of the messages.
Let's start from where I came from. Of course, the idea to build human robots became very popular recently because some very well-known guys are advertising the idea that we can build robots that are very beautifully useful, interactive, that can populate factories, and so forth.
My inspiration was more science fiction, and I chose this picture for the reason. It was one of the few movies, I don't know if you remember this one, The Bicentennial Man, where the robot didn't end up in causing a disaster. There was no robot revolution. There was actually a robot that was doing very normal stuff and interacting with people.
Well, our dream started in 2004. These are the 20 years that we had to count to represent the age of the robot and it started as part of a European project to pay for the 8.5 million Euros that were needed to run the project for about five years and designed hardware and some of the software to control a humanoid robot. For me at least, I was a young guy, a ponytail, and wanted to design humanoids. This was a bit of a dream, getting the money to actually start from scratch and design a robot.
This was the end result after 3.5 years. We call it Formula One of the robots, not because it was particularly high performance, but because it was breaking every second experiment, basically. So it was complicated enough to fail often enough, required a lot of technical people to replace cables, to fix, you name it. But it is typically the case that no matter how much engineering we've done, we still were researchers interested in getting our research done rather than engineered product as a company will do these days.
Anyway, it was useful enough to be able to study complex enough problems. We had cameras. We had all the sensors that you need, microphones, tactile sensing for sensing, of course, proprioception, vestibular, everything that may be needed to design nice controllers, and especially to apply machine learning methods to the data that we collect through the interaction of the robot with the environment.
The robot was designed by-- let's say, with three ideas in mind. We wanted to have hands. I've been working before this. And in fact, I was at the AI Lab at MIT for a couple of years. Was working with a human robot without hands. Was very difficult to grasp anything without hands.
The robot had flippers that would can only push things around, but not really grasp them. So I want a hand sophisticated enough to be able to apply different grasp types to different objects and that was, from the engineering perspective, the constraint that determined the size of the robot, was the smallest possible hand that we can design with enough degrees of freedom, and that determined the overall size of the robot that is only about a meter tall. So it's kind of small.
Wanted to fill the robot as much as possible with sensors. I mentioned tactile sensing. I think still, and for I guess for a while-- I don't know. There are more robots these days.
But for a while, it was the only human robot with an almost entire body covered with tactile sensors. There are about 4,000 sensors that cover the various-- at least the rigid parts of the robot so that we can use physical interaction and measure physical interaction of the robot with the environment.
And also we made it GPL, the sense of open source licensing, both the hardware, which I think was a nice way to advertise the project because nobody copied the hardware, because it was too difficult to actually copy. I mean, the mechanics of the robot is 5,000 small parts. It's very complicated. Therefore, nobody actually built a full copy of the robot. But the entire software was open source and we built ourselves copies of the robot for other people. Of course, for a fee. And the fee-- we're nonprofit, so the fee was the cost of the robot.
And this is examples of some old stuff, I will say, that's trivial these days with the advancement of computer vision. This is a slightly older video where the robot is reaching for an object and grasping, just to illustrate how the hand could actually grasp objects. This is maybe a slightly more interesting video showing the robot in zero gravity mode, let's say, being pushed around by recording the contact with the environment and also measuring the intensity of the contact.
So how much force the person is exerting on the different body parts. And I mean, difficult to see from a video, difficult to feel a force from a video, but it gives an idea that is fairly force controllable in this case. Although the joints per se are-- I mean, they're traditional motors with gears. Therefore, friction plays a role. If you don't measure contacts, it's difficult to go zero gravity, this level of smoothness.
We built many robots and here there's few locations where the robots are. As you can see, there are many Europe for a reason. The initial project paid for a certain number of copies. So the robots that were given for free to a number of institutions, and that's why there's a concentration of robots there.
And that's it. That's a project. But now jumping into some of the research that's been carried out more recently by some of the research groups at IIT, there are two parts.
The first one is about human-robot interaction from-- without physical interaction is what is shown in this video, and the fact also that we're using cognitive neuroscience methods to record and measure the interaction of the robot with the person, trying to analyze, or being, in this case, more interested in what interacting with the robot can tell about us, rather than the robot per se. Although, there are few things that I'd like to show that are, in a sense, telling us something also about the design of robots. In, particular when the robots have to interact with us.
So the first experiment is-- I think it's a bit old, but on the other hand, it shows at least in principle what type of research we could do with the robot. This is called-- again, it's a cognitive neuroscience paradigm called Posner cueing. It's very well known and it's very simple. It goes this way.
Basically, the original experiment was something like that, where a stimulus, an arrow, was being shown left or right. There was another stimulus appearing, either congruent with the direction of the arrow or noncongruent. The one on top is congruent, means-- it's called typically a valid cue. The other one is called invalid cue.
The two things can be measured. You can measure reaction times or other-- you can have other measurements. I'll show you something in a moment. And the difference between the two will tell you whether there's an effect on the first cue on your performance.
This has been done-- or the idea was what happens with the robot. So a three-dimensional stimulus a bit like us, maybe nothing happens, maybe shows, in fact, gaze cueing. Wanted to check this as a first step. And actually, this is a very simple experiment.
The subject is looking at the robot. The robot is doing something and then looking in one direction or another. And for the invalid cue, you see what happens.
The stimulus is opposite to the gaze direction. The robot is doing a little manipulation, though. It's either looking in your eyes, if you are the subject, or away, averting gaze.
Looking in the eyes is easily obtained. The robot can detect your face, the eyes, and look at you. And this is what has been done here.
So results. What we see is that in case of eye contact, there was-- there's an effect. So the ratio of the valid and invalid have different reaction times.
The case of no eye contact-- well, maybe there's no robot distraction, there's no interaction. Therefore, your reaction time are-- there's no significant difference between the valid/invalid cues.
Now these are, as I say, reaction times. And we experiment-- we thought, oh, wow, we found a super cool effect. So if the robot looks at you, it influences your behavior. Therefore, when we design an interaction with a robot, it's good to look at the person or to seek for gaze contact.
Things are so simple, because we changed slightly one of the parameters in the experiment and we see that there's-- the effect disappears. So both the case with eye contact and no eye contact have validity/invalidity effect.
And what we changed is in fact parameter called stimulus onset asynchronicity, which is basically the distance between the robot moving the eyes and the appearance of the stimulus on the screen. So a tiny-- well, tiny. It's 500 milliseconds.
So it's not so small, but still, it's one of the possible parameters. And if you're not told and you're designing a controller for the robot, why would you care when the robot moves its eyes? Why do you care when this happens more specifically.
So we thought this was interesting at least. And in fact, I mean, I think there's a message that temporal synchronization in the actions of the robot is very important for human perception. And this is one tiny example of this fact that the time basis, or the controller becomes important.
We verified this. We need to cut the story a bit shorter. But anyway, we verified this by looking at EEG. So you've seen for the picture, the subjects are wearing an EEG cap with 65 electrodes. We can measure some effects.
This is an evoked potential in certain parts of the brain. The literature show that is associated with the effects of visual processing due to attentional cues, and therefore it's consistent what we see also in the reaction times. And we check that in fact, the effects are there or not there also by looking at the evoked potentials in this case.
So just not to linger too much on this experiment anyway, but there's a first of all demonstration that the robot itself, it's a social cue, and it's interpreted by a person as a social cue. Not to be taken for granted, but this shows that indeed, the eyes of the robot can involve a difference in reaction times and also that there's an influence of the SLA, and therefore there's some processing that is happening and influencing the response of the humans due to the signal.
Another experiment of a slightly different type of that, again, involving gaze, this is a game. So participants are playing against the robot in a game where you basically have to choose whether-- you're controlling a little car on a screen. It's very simple. There's your car against the car controlled by the robot. And there's a moment where the two cars may crash and you have to decide whether to deviate or continue straight.
Of course, if you continue straight, you gain points. If you deviate, you lose points, of course, if you crash. So if both the robot and the person crash, they lose points. So you have to avoid the crash, but at the same time, try to guess what the robot is going to do.
And of course, we participants are not told what they're going to do, or what is the strategy applied by the robot. And they have to try to guess or to maximize their scores. So their strategy is when, of course, you go straight and the robot deviates because you get three.
So the best strategy-- you gain most points when you go straight and the robot deviates. If both deviate, they get a small point. If you crash, you lose points. This is how the scoring is built.
So this is the video. And again, the manipulation is whether the robot gazes at you or averts your gaze. It's a bit like in poker, the game.
Let me see if I can go a bit faster here. No way. Sorry.
Sorry about that. I was trying to go faster, fast forward on the video. It doesn't work. Anyway, you saw how the game is structured.
Very quickly what happens, the robots in the various sessions can behave in different ways. There is a version of the robot, let's call it Mike, that is more towards mutual gaze. So it's looking more at you, at the subject, at the participant in the experiment. And there's another robot-- another version where the robot is more averting gaze. So there's more social robot and less social robot.
I think what you can see, first of all, is that the response time, the averted gaze has an effect in reducing the reaction time, and this is significant across trials, which basically means that a robot that looks at you may distract you, in fact. And this has a consequence.
For instance, if you have to optimize performance of a robot operator, you don't want to distract the operator from the task. This may be interesting. This was important to check using also EEG and this is a different analysis.
Again, we went through the literature, looking for what signals may in fact signal the visual processing and this is, again, from the literature, it's known that in the alpha band, which is eight to 12 Hertz, there's a difference in values which is shown here between the case of averted mutual gaze is known to be related to the suppression of gaze contact, and therefore, this is a sign indeed that your brain, during mutual gaze, is spending some time in suppressing the robot looking at you in this case.
This is also visible, at least to a certain extent, in these other plots, which is related to a particular strategy, which, by the way, is the strategy that the robot is applying. Win, stay, lose, shift. So if you win a trial, you keep applying the same decision. If you lose, you change your decision. So if you win because you're going straight, you keep going straight. If you lose, of course you go and shift and then deviate.
So this is the strategy that the robot is applying. Therefore, it's also the optimal strategy for the participant because of the structure of the game. And in fact, what is visible is that both the occurrence of this particular strategy and the length of the subsequences that are consistent with this strategy show a difference between averted and mutual gaze robots. So for the robots there is more averting, the participant is more on that strategy and also occurs more often. So there are-- longer sequences occur more often and the two cases are significantly different.
That's not true for other possible strategies, like tit for tat, or style shift imitation. There are other two possibilities among the all the strategies that the participants can apply. By the way, these two-- I mean, the participants don't know anything. This is unconsciously applied by participants after many, many trials interacting with the robot.
This is to give another message as a result of this research, which is if you are distracted, or if you are designing a robot that has to interact with people, or if an operator has to operate a robot, maybe it's better not to have social cues distracting the operator from operating the machine. I mean, there are stories at least, because we haven't seen many humanlike robots in factories.
Indeed, human-robot operating factories, maybe this robot should not have a face after all, because the type of cues may be distracting. So if it's a cooperating task, it's one thing. But who knows whether indeed these types of cues should be used in, let's say, factory settings, or in any other professional robot situation.
Wanted to show slightly a deviation from that particular set of experiments, but going towards applications. This is something we've done using robots for interacting with kids diagnosed with autism spectrum disorders. And the idea was we got in touch with, let's say, I think it's a formerly a charity that is running training, and courses, and school for kids diagnosed with autism.
And they go through training programs for months. It's basically a year long. It's a bit like school and they do every day. So we had a good opportunity to actually put a robot in the training program, be supported by therapists, and trying to add something to the training program.
And this is the general setup. Of course, for safety reasons, although the robot is not particularly dangerous, but we had to put a barrier between the kid and the robot. So we had to invent also ways of showing or exchanging objects across the barrier. You'll see in a moment some of the experiments.
So this is how it looks like. The objects are typically simple enough for the robot to grasp. There are cubes with faces with different stickers so you can have different various figures and you can invent games where the robot is playing with the kids for months, in our case.
This is an example. Both the kid and the therapists are actors. In this case, there's no-- of course, we couldn't show the real people. And this is one of the examples in perspective taking, where the robot is showing different faces of a cube and it's basically asking the kid to guess. This is a trivial task for a nonautistic kid, but it's definitely something that has to be learned in the case of autism.
These are some of the results of my first experiment where we're basically showing exactly or we're doing exactly what is in the video. So there's an interaction, there's a cube. The robot shows a face of the cube to the kid, rotates certain-- so the kid sees a different face at that point, because the object is being rotated, and asks the kid what is the correct face, or what is the picture of the sticker that is shown from the point of view of the robot. It's called perspective taking, and of course, it's a capacity that apparently autistic kids have to develop or to learn. They won't develop it automatically or naturally just by interacting with other people.
And so this is some of the results. So this is a test called NEPSY. It's a standardized clinical test for-- and let's say it's made of a set of possible tests. There are several.
Some of them are just geometric puzzles, like this one or this one. There is theory of mind test. So there's a set of tests that we can deploy to the kids pre and post-training, and these are some of the results that, to me, are quite amazing because this is after three to four months of training with the kids. And they get-- improvement performance is quite strong.
The usual question, or the standard question is now what if instead of a robot, there's, end of the day, a super expensive toy? You have the same type of game played by a human, so by the therapist, for instance. And result is that in fact, we ran that experiment and the effect is not there. So apparently, the interaction with the robot is more well-received, more engaging. Of course, we don't know what is happening, but it's definitely more effective.
And so they decided to run another experiment with a bit more complicated and where the robot is pointing in this case, and also is looking at objects. Here, there can be various combinations of cues that are delivered to the kid to train them for either pointing, for mutual gaze towards an object, or gaze where also the head is moving. So there's a combination of movements that can be arranged to gradually or to put together different sets of experiments trying to understand what cues are most effective in training kids in this case.
So this is some of them. A result of one of these experiments again is NEPSY theorem and test. Phase 0 is before training.
There are here two groups. We run the experiments in counter-balanced ways. So we divided two groups. Every kid will receive eventually training, but when it happens is either during the first set of sessions rather than the later set of sessions.
And here, you see a couple of things. One thing is that here, group G1, the first group, receives training with the robot. There is an improvement, a very high one on the performance on the theorem and test. The second group, there's no robot-related training and nothing happens.
The second set of experiments here, G2, is receiving training with the robot and there's an increase between these two. But importantly, the group one stays with the performance after the training. Therefore, there's also stability in learning. So it's not just gone.
This is a human control, T0, T1 here. Kids are interacting only with the person. So the therapist is delivering exactly the same type of experiment or the same type of game and interacting exactly-- given that it's a person and not a robot, exactly like the robot would do. So pointing, gazing, et cetera, and there's no effect. So the therapist is not so engaging after all, or the robot is more fun, or any other attentional effect, perhaps, is at play.
So here, we can certainly conclude that there's something interesting happening there. Perhaps we need to develop and deploy a lot more of these potential training episodes for the kids and an entire long-term program, but it seems to be simple enough to design them and effective with good reliability on the training of the kids.
Let's close this first set of experiments. Let's move to something on the physical interaction. So, so far, the robot was interacting at distance, delivering certain cues, and there was no physics, no exchange of forces between the robot and the person.
Here, we decided to do something else to make the robot interact with the person. And in particular, we developed two components. One, of course, is kind of easy.
The robot is what it is. It has certain set of sensors and we can use them to try to understand the state of the environment, or the state of objects, the state of the person itself and to design a controller to move the robot appropriately, given a task.
But we can also sensorize a person, trying to extract more information about the person's behavior. And in particular here, what we've done, we modeled the human as a robot. So not surprisingly, we approximated the skeleton as a set of rigid bodies connected by joints, a bit like what you will do in a robot. The dynamics-- oops. Sorry.
The dynamics of the human is standard dynamics. So usual Lagrange equations, external forces at the contact points, joint torques generated by the motors in the case of the robot, although here, there's no-- it's a human. It's not a robot.
So this is basically what we-- how we simplified the human body into a set of equations. And of course, to measure the human state, we need sensors. And we designed the technology to deliver two different types of measures.
Of course, this very easy solution uses IMUs for detecting body movement of body parts, and this is a sensor suit that is shown here. And also, we designed shoes to measure both pressure and reaction forces with the ground to gain some understanding of the forces that are at play.
And we developed the electronics and everything that is needed to do the measurements. This is basically an evolution of the robot skin. It's a capacitive sensing technology that we designed ourselves.
It's kind of simple. It's a set of electrodes, a dielectric, and a ground plane, and you can measure the compression of the dielectric. And if everything is soft enough, nothing breaks and you can design a sole for-- or an insole for the shoes that does the measurement.
And also, here we have force sensors, two of them exactly the same stuff we have on the robot to increase the accuracy of the measurement, so the reaction forces. Having these two sets of sensors, what we can do is invert the kinematics from the IMUs to the reconstruction of the posture of the person. And also invert the dynamics, and basically estimates the, let's say-- call them joint torques, given whatever measurement we have.
On top of that, we can do a couple of things in predicting the-- or estimating the future positions and identify the behavior of the person. And also with respect to the dynamics, we can do an estimate of the future torques. And this has two different applications.
Predicting the kinematics and measuring the kinematics with respect to a reference point can be used, for instance, in health care. Knowing how you move, how you walk, it's a useful piece of information that can be used to record or measure your health status with respect to movement.
In industry, predicting forces can be used to reference your, musculoskeletal with respect to standard parameters that are used in industry, for instance, to determine the level of risk of an accident. So these are two types of things that can be done using the kinematics estimates. And this is the action recognition.
This is realized with relatively simple mixture of expert system and a bunch of neural networks. And we have the training data, basically, and behaviors, a set of behaviors-- a finite set of behaviors. So it's relatively easy to do that.
And this is instead the case where we're measuring the muscle stresses. And again, the colors represent joints that are mostly under stress while lifting a weight. So the technology with the usual approximations, given that the problem is highly-- that basically, the number of solutions for the type of measurements that we're doing is probably infinite to an appropriate dimension, but the accuracy is relatively good for standard situations.
Of course, since we're measuring forces only at the feet, we can't guarantee that other external forces will influence the measurement, and therefore we're not recovering the actual joint torques on the body. It depends all on the number of sensors that you have. This is something that we actually have done.
Given that we can segment the behaviors using the system that recognizes them, the mixture of experts that I mentioned earlier, we can divide a certain action in chunks that we can recognize. For each one, we can give an estimate of what joint torques are being generated, or will be generated. And we can use this future prediction to predict when an action is potentially dangerous, not necessarily in the short term, but in the long term, or when the particular action goes or generates stresses that are above what is the recommended level of stress in the-- given the regulation.
There is a standard, the National Institute of-- what is it called? I have a note here. That established what are the levels, and therefore they have to be-- in industry, they have to be within that level.
Let me now go to a more robotics task that is maybe more interesting in general. So bit more detached from the application, but interesting from the interaction of the robot with the world. The task is the following. So we have a person and robot interacting, for instance, lifting a weight.
So what happens here is that we can take the same equation that we used to model the human body and basically apply to the robot, and also the object. Although, the object is not necessarily as complicated as a human or robotic body. These three equations can be combined kind of trivially by putting everything together and basically this is what represents the whole situation here.
Now what we have there is the following, that we like to build the control system for the robot to maintain, or, under certain constraints, to minimize a torque that is generated by the human or following the movement of the human and minimizing the torque the human still has to make to, for instance, lift the weight.
So the robot-- I'm sorry about the automatic switching of the slides. The robot has a standard controller that we know. It's a layer controller.
The highest level, there's a trajectory planner. If you imagine the robot walking, this is a unicycle model, a very simple model that generates a trajectory and the foot placement for the robot.
The foot placement makes into another controller that is the adjustment or the generation of trajectories if you are walking. This is typically an MPC controller with some reduced or simplified model. There are different approaches there.
There's inverted pendulum model rather than center of mass behavior and so forth. And the controller here generates-- so from the overall trajectory, controls the trajectories of the low level in such a way that the robot actually follows those trajectories. And this, in our case, it's a QP controller.
So the three are layered and they generate some of the behaviors that are going to show in a moment. Now what we've done here is to use the understanding of the-- or the measurement of the behavior of the person to generate signals for adjusting the trajectory also of the robot. Of course, we don't know much of the planning of the trajectory of the human, but this is something that we can hypothesize, but depends on the task. But it is not measured. And we can also hypothesize the type of tasks that the person is generating from the model that we saw earlier.
So this is basically the controller we'd would like to put together. And this is our results for the robot part. This is the QP controller in action. So given here, we fixed certain trajectories, the robot is executing them, and also maintaining balance, which is part of the task description in this case. And it basically shows that part model-based works pretty well in controlling the robot and maintaining balance.
The complete robot controller shows that the robot can walk. Again, this is an example. It's not a load lifting, but it shows the overall architecture actually controls the robot in a way that is in accordance to the parameter that we specified then.
Putting the whole thing together, unfortunately, to get through this would require going a bit deeper into the paper, so I beg your pardon if this is not very detailed, but I'm going pretty much into overall explanation of what we need to do. So first of all, as we said, we wanted to minimize the torques that the human will experience. And this, in general, is-- you call it an equation of ergonomics. You like to be comfortable and low torque when you're lifting a weight.
Now this minimization requires some regularization of the measured forces, because of course, we have a measurement and we can't wobble too much in minimizing the torques, and therefore, we need the regularization parameter here. Also, typically, we need to-- we have a number of constraints.
First of all, we like to control the momentum. So we don't want-- we would like the person to still be balanced, and similarly for the robot. This can be-- eventually evolves down to a linear equation that can be written in a very simple form with respect to the forces.
We have the contact constraints that we have to take into account as well. And this will be it, if not for the fact that we have now to figure out what is this tau, so how the torques depend on the forces themselves. This, again, boils down to imposing constraints on the fact that of course, we have to respect the coupled dynamics that we stated before in the null space of the solution of this one.
Or we have to insert, or-- this is our choice, in fact, the postural task. So what is the position of the robot in general? And also the human postural task, since we're talking about the coupled dynamics equations.
So this all takes into account with all these constraints, or the fact that you have infinite solutions to the problem because of course, you can have the same forces to the ground, but since you have the complicated kinematics who can be in different configurations. And this is even more true when you have a human-robot interacting through the load in that case that they're trying to lift together.
So solving this, which is basically a nested set of two optimization problems, leads to determination of the forces that can be plugged in. And it's not written here, but in one of the equations to recalculate the torques that are the control values to the robot eventually. Can give you a reference to the paper where this is elaborated in details. The thing is that although it looks complicated, most of the steps are all simple algebraic reasoning on the set of equations.
This is what happens in a simple case where the operator is lifting a robot. This is exactly-- there's no weight, but the contact with the robot is exactly the same. So basically, the human here is helping the robot to be-- to lift.
This is the case with lifting the weight. And here, we have a plot with all the measurements. And gives an idea of how the robot follows and what steps that robot does. And this is another example showing that in fact, the controller is following human movement and human, let's say, commands, in a sense also when the person is trying to oscillate the weight and the robot is compensating.
Now you notice something here. So the robot is very small, and this is a problem. So it's not very ergonomic. So we wanted to do, and which-- tried to do in designing a new robot was to parameterize the entire description of the robot that is shown here.
So every single parameter of the mechanics of the robot is shown there. And also, we inserted the human into the modeling. So we tried to say, OK, we have a task like lifting weight. How we designed a robot that is optimal for that particular task?
So basically, we wrote a description of the robot subject to all the possible constraints that are positioned on the hands, and the task orientation and position of the load, but also how the feet are positioned and the usual dynamics. We went for optimizing this through a population of robots. This was a genetic algorithm method and we kept simulating for a while until we get a slightly bigger robot. Not extremely different, but-- so not huge, but a bit larger than what we designed so far, and we went, actually, for building this robot.
Forget about the face. That's, of course, unrelated to the task itself. And this is an example of the robot that-- by the way, by using the same sensors we use for monitoring the human state, we can teleoperate.
And this is our operator in Genoa and a demo with that last year ICRA Robotics Conference in London. And there's good enough performance to interact with another robot and pass an object, which, given the distance, is not trivial. And all the quadrupeds, by the way, the operators were here. So this is kind of interesting with the most complicated robot, we went for the most complicated controller.
And now the fact that we teleoperate the robot enables some end-to-end learning. So you have tons of training data. And these days, you can have a big enough neural network to learn to control the robot automatically.
And this is kind of end-to-end in the sense that we basically collected enough data and we had that task already happening. And here, the robot is autonomous. So we remove the human controller and we're just reproducing the action that the robot has learned.
Of course, it's not perfect. You see that it's kind of not perceiving everything well enough. But eventually, it will do it. And I think you can see from the video quality, this is, I think, a cell phone or something like that. So it's really finished the other day in the lab, since we're playing now with this concept that we can collect a lot of training data for a variety of behaviors.
And then you see that it fails, in fact, because it was too preliminary-- or too good to be true at the very beginning. But it works well enough for a first attempt of building such a thing, which is super interesting, I think, because we have, I think, now methods for training very complicated behaviors in a very efficient way.
Kind of crazy that we spent so much time building optimal controls for the robot, then we can replace it with a neural network. Although, without the optimal controls, we couldn't do the teleoperation. So it's kind of a chicken-egg problem. We had to go through that.
Let me finish here. This is part of the group from some time ago. It's an old picture, but some of these people are still working on the humanoids.
This guy became a Google DeepMind person. So left IIT for a career in reinforcement learning, I guess. But just to say that it requires a lot of people to actually design the robots, and design the software, and run the experiments.
And this is the group that I run the social human-robot interaction. And again, with the various toys that are being used in these experiments. Thank you.