Instructor (Oussama Khatib):Okay. Let’s get started. Welcome to intro to robotics 2008. Happy new year, everyone. In introduction to robotics, we are going to really cover the foundations of robotics. That is, we are going to look at mathematical models that represent robotic systems in many different ways. In fact, you just saw a simulation of a humanoid robotic system that we are controlling at the same time. If you think about a model that you are going to use for the simulation, you need to represent the kinematics of the system. You need also to be able to actuate the system by going to the motors and finding the right torques to make the robot move.
Here is a robot you would like to control. The question is how can we really come up with a way of controlling the hands to move from one location to another? If you think about this problem, there are many different ways of controlling the robot. First of all, you need to know where the robot is, and to know where the robot is, you need some sensors. What kind of sensors would you have on the robot to know where the robot is? GPS? Okay. How many parameters can you measure with GPS? We can try that.
What can you determine with GPS? You will locate X and Y for the location of the GPS. But how many bodies are moving here? When I’m moving this here, how many [inaudible] are moving? How many GPS systems do you want to put on the robot? We would need about 47 if you have 47 degrees of freedom, and that would be too expensive. Another idea? Encoders. Encoders measure one degree of freedom, just like the angle, and how many encoders would we need for 47 degrees of freedom? Forty-seven.
That will give you the relative position, but you will not know whether this configuration is here or here. You need a GPS to locate one object and then locate everything with respect to it. Any other ideas? By integrating from an initial known position or using vision systems to locate at least one or two objects. Then you know where the robot is. The relative position – the velocities could be determined as we move.
Once we located the robot, then we need to somehow find a way to describe where things are. Where is the right hand? Where is the left hand? What do you need there? You need to find the relationship between all these [inaudible] bodies so that once the robot is standing, you know where the arm is positioned and where the hand is positioned. You need something that comes from the science of – I’m not talking now about sensors.
We know the information. We need to determine a model – the kinematics model. When the thing is moving, it generates dynamics. You need to find inertial forces. You need to know if you move the right hand, everything is moving. You have a coupling between these rigid bodies that are connected. You need to find the dynamics.
Once you have all these models, then you need to think about a way to control the robot. How do you control a robot like this? Let’s say I would like to move this to here. How can we do that? Very good. The forward kinematics gives you the location of the hand. The inverse kinematics gives you given a position for the hand that you desire. You will be able to solve what [inaudible] angles you have. If you do that, then you know your goal position angle for each of the joints. Then you can control these joints to move to the appropriate joint position and the arm will move to that configuration.
Can you do inverse kinematics for this robot? It’s not easy. It’s really difficult for a six degree of freedom robot like an arm. For a robot with many degrees of freedom – suppose I would like to move to this location here. There are infinite ways I can move there, and there are many different solutions to this problem. In addition, humans do not really do it this way. When you’re moving your hand, do you do inverse kinematics? No.
We will see different ways. I will come back to this later. Let’s see if all of these videos I prepared for you are going to work. First, I’m going to start with the tradition of this class, which is to start with a video presenting a small development that is related to robotics, and to keep you up to date with what’s going on in robotics. Since this is the first lecture, I thought we would go to some development that happened in the past. In fact, in the year 2000, I edited a video about the history of robotics for the past 50 years.
We have seven minutes that we will use to cover everything that happened in the last 50 years. Are you ready? I hope the video sound is ready and everything works. Come on. This is taken, actually, from Stanford Robotic Institute, SRI. This is the first robot that was built for industrial manipulation, and these are some of the early [inaudible]. Some of you might recognize the Stanford [inaudible] arm. The six degree of freedom arm was the first robot.
This is a vehicle. This is the [inaudible] arm. The [inaudible] arm is similar to the human kinematics. These are the early first controls, the [inaudible]. This is the puma. Compliant motion. Robotics machine. Mobile robots – these are the early ones. [Inaudible] from Australia. The hopping machine. The hopping robot started out at CMU and later was developed at MIT.
Multi-fingered hand from Stanford [inaudible]. This is smaller and smaller robots that started to come. Biped walking. Ping pong playing. Who wants to play ping-pong with a robot? Collision avoidance. Teleportation in space. Navigation. Painting. [Inaudible] robotics. Underground robotics. Flexibility. This is from CMU, a huge robot. [Inaudible] just balance. Compliant motion. Navigation. Underwater. This is related to space. Visual [inaudible]. This one is really interesting.
Take a look at this one. Moving furniture. Elastic [inaudible]. This was done on the shuttle. This is from [inaudible] lab, and this is from here at Stanford. Field robotics. Wall climbing. Again compliance. Toshiba. Robotic assistance. Finished. Thank you.
I guess we’re not going to see the end of that video because it will start from the beginning. Let me start from here, and hopefully – I’m not sure, but the idea about robots was basically captured by this image. You have a robot working in an isolated environment in a manufacturing plant moving things, pick and place, moving from one location to another without any interaction with humans. But robotics over the years evolved, and today, robotics is in many different areas of application, from robots working with a surgeon to operate on a human to robots assisting works to carry a heavy load to robots in entertainment to robots in many different fields.
This is what is really exciting about robotics, the fact that robotics is getting closer and closer to the human. We are using the robot now to carry, to lift, to work, to extend the [inaudible] of the human through haptic interaction. You can feel a virtual environment or a real environment. I’m not sure if everyone knows what haptics is. Haptics is a Greek word that describes the sense of touch. From haptics – here are the hands of the surgeon, and the surgeon is still operating.
He is operating from outside but essentially, the robot is inserted and instead of opening the body, we have a small incision through which we introduce the robot, and then we do the operation and the recovery is amazing. A few days of recovery and the patient is out of the hospital. The operation through haptics or through master devices are to control – here is the surgeon working far away, operating underwater or interacting with a physical environment in homes or in the factory.
Another interesting thing about robotics is that because robotics focuses on articulated body systems, we are able now to use all of these models and techniques to model human and to create a digital model of the human that can, as we will see later, can be simulated and controlled to reproduce actual behavior captured from motion capture devices about human behavior.
Also with this interaction that we are creating with the physical world, we are going to be able to use haptic devices to explore physical worlds that cannot be touched in reality. That is, we cannot for instance go to the atom level, but we can simulate the atom level and, though haptic devices, we can explore that world.
The most exciting area in robotics is reproducing devices that look like the human and behave like life, animals or humans. A few years ago, I was in Japan. This is from Yokohama, and in Yokohama, there is [inaudible]. It brings thousands and thousands of people to see all the latest in robotics. This was a few years ago. You could see [inaudible] here, which is the latest in a series of development [inaudible] following P2 and P3 robots.
In addition, you could see most of the major players in humanoid robotics. Has anyone seen this one? This is the Sony robot. I think I have a video. Let’s see if it works. The Sony is balancing on a moving bar, and this is not an easy task. You can imagine the requirements in real time control and dynamic modeling and all the aspects of this. This was accomplished a few years ago. We brought this robot to Stanford a few years ago, and they did a performance here. It was quite exciting to see this robot dancing and performing.
There are a lot of different robots, especially in Asia, Japan and Korea. EIST built a series of robots, HRP, HRP1 and HRP2, and they are building and developing more capabilities for those robots. One of the interesting [inaudible] that we had recently was near [inaudible] during the World Expo in [inaudible], and they demonstrated a number of projects. Some of them came from research laboratories that collaborated with the industry to build those machines. This is a dancing robot.
This is HRP. HRP is walking. Walking is now well mastered, but the problem is how can you move to a position, take an object and control the interaction with the physical world? This is more challenging. Sliding and touching is not completely mastered yet. This is the direction of research in those areas.
This is an interesting device that comes from [inaudible] University. This robot has additional degrees of freedom. You have additional degrees of freedom in the hip joints to allow it to move a little bit more like a human. This is one of my favorites. This has a human like actuation in it, so artificial muscles that are used to create the motion. Obviously, you have a lot of problems with artificial muscles because dynamic response is very slow, and the power that you can bring is not – we will talk about those issues.
Let me know what you think about this one. So what do you think? Do we need robots to have the perfect appearance of humans, or do we need the functionalities of the environment? If we are working with trees, we specialize the robots to cut trees. If we are working in the human environment, then we will have a robot that has the functionalities of two arms, the mobility, the vision capabilities – these are very interesting issues to think about, whether we need to have the robot biologically based of functionally based and how we can create those interactions in an effective way.
This is an interesting example of how we can extend the capabilities of humans with an exoskeleton system. You wear it and you become a superman. You can carry heavy loads. They will demonstrate here carrying 60 kilograms without feeling any weight because everything is taken by the structure of the exoskeleton system you are wearing. Another interesting one is this one from the Tokyo Institute of Technology. It is a swimming robot. Make sure no water gets into the motors.
The thing is robotics is getting closer and closer to the human, and as we see robots getting closer to humans, we are facing a lot of challenges in really making these machines make in the unstructured, messy environment of the human. When we were working with robots in structured manufacturing plants, the problems were much simpler. Now, you need to deal with many issues, including the fact that you need safety. You need safety to create that interaction, and this distance between the human and the robot is very well justified. You don’t want yet to bring the robot very close to the human, because these machines are not yet quite safe.
Well, the development in robotics has many forms and aspects, and at Stanford, we are fortunate to have a large number of classes offered in different areas of robotics, graphics and computational geometry, haptics and all of these things. You have a list of the different courses offered all along the year. In fact, this is the intro to robotics. In the spring, I will be offering two additional courses that will deal with experimental robotics – that is, applying everything you have learned during this class to a real robot and experimenting with the robot as well as exploring advanced topics in research. This is in advanced robotics.
This year, we are lucky. We have three TAs helping with the class – Pete, Christina and Shannon. They are over here. Please stand up or turn your faces so they will recognize you. The office hours are listed, so we will have office hours for me on Monday and Wednesday and Monday, Tuesday and Thursday for the TAs. The lecture notes are here, and they are available at the bookstore. This is the 2008 edition. We keep improving it. It’s not yet a textbook, but it is quite complete in terms of the requirements and the things you need to have for the class.
The schedule – we are today on Wednesday the 9th, and will go to the final examination on March 21. There are a few changes in this schedule from the handout you have. These changes happened in this area here around the dynamics and control schedule. Essentially, what we’re going to do starting next week is to start covering the models, so we will start with the spatial descriptions. We’ll go to the forward kinematics and we will do the Jacobian. I will discuss these little by little. That will take us to the midterm.
One important thing about the midterm and the final is that we will have review sessions, and the class is quite large, so we will split the class in two. We will have two groups that will attend these review sessions, which will take place in the evening. They will take place in the robotics lab. During those sessions, we will cover the midterm of past years and the finals of past years. What is nice about those sessions is that you will have a chance to see some demonstrations of robots while eating pizza and drinking some.
That will happen between 7:00 and 9:00. Sometimes it goes to 10:00 because we have a lot of questions and discussions. These sessions are really important, and I encourage you and the remote students to be present for the sessions. They are very helpful in preparing you for the midterm and the final.
As I said, this class covers mathematical models that are essential. I know some of you might not like getting too much into the details of mathematical models, but we are going to really have to do it if we are going to try to control these machines or build and design these machines. We need to understand the mathematical models, the foundations in kinematics and dynamics. We will then use these models to create controllers, and we are going to control motions, so we need to plan these motions.
We need to plan motions that are safe, and we need to generate [inaudible] that are smooth, so these are the issues that we need to address in the planning and control, in addition to the fact that we need to touch, feel and interact with the world. We need to create compliant motions, which rely on first control. First control is critical in creating those interactions. We will see how we can control the robot to move in free space or in contact space as the robot is interacting with the world.
Then we will have some time to discuss some advanced topics so that those of you who are interested in pursuing research in robotics could make plans to take the more advanced courses that will be offered in the spring. Let’s go back to the problem I talked about in the beginning – the problem of moving this robot from one location to another. Suppose you would like to move this mobile manipulator platform. You would like to move it from here to here. How do we do that?
Essentially, what we need to do is somehow find a way of discovering a configuration through which the robot reaches that final goal position. This is one of them. You can imagine the robot is going to move to that configuration. The problem with this is the fact that you have redundancy. Redundancy is the fact that you can reach that position with many different configurations because you have more degrees of freedom in the system. When you have redundancy, this problem of inverse kinematics becomes a very difficult problem.
If you solve it, you will be able to say I would like to move each of those joints from this current position to this position. You can control the robot by controlling its joint positions and by creating trajectories for the joints to move. You will then be able to reach that goal position. This is not the most natural way of controlling robots, and we will see that there will be different ways of approaching the problem that are much more natural.
To control the robot, first, you need to find all these positions and orientations of the mechanism itself. That requires us to find descriptions of positions and orientations of objects in space. Then, we need to deal with the transformation between frames attached to these different objects. Here, to know where this [inaudible] is, you need to know you transform the descriptions to find, finally, the position of your end factor. You need transformations between different frames attached to both objects.
The mechanism that is the arm in this case is defined by a rigid object which is fixed, which is the base, and another rigid object that is moving, which we call the end factor. Between these two objects, you have all the links that are going to carry the end factor to move it to some location. The question is how can we describe this mechanism? We will see that we are raising different kinds of joints, joints that are [inaudible] and through those descriptions, we can describe the link and then we can describe the chain of links connected through a set of parameters.
[Inaudible], who were two PhD students here at Stanford in the early 70s thought about this problem, and they came up with a set of parameters to represent the relationship between two successive links on a chain. Their notation now is basically used everywhere in robotics. Through this notation and those parameters, we will be able to come up with a description of the forward kinematics. The forward kinematics is the relationship between these joint angles and the position of the end factor. Through forward kinematics, you can compute where the end factor position and orientation is.
These parameters are describing the common normal distance between two axes of [inaudible] – so this distance, and also the orientation between these axes, and through this, we can go through the chain and then attach frames to the different joints and then find the transformation between the joints in order to find the relationship between the base frame and the end factor frame.
Once we have those transformations, then we can compute the total transformation. We have local transformation between successive things, and we can find the local transformation. Once we know the geometry – that is, we know where the end factor is and where each link is with respect to the others, then we can use this information to come up with a description of the second important characteristic in kinematics, and this is the velocities – how fast things are moving with respect to each other.
We need to consider two things. Not only the linear velocity of the end factor, but also the angular velocity [inaudible]. We will examine the different linear velocities with which we will see duality with the relationships between torques applied at the joints and forces resulting at the end factor.
Forces – this is the linear forces associated with linear motion. Movement and torques are associated with angular motion. There is a duality that brings this Jacobian model to be playing two roles. One, to find the relationship between joint velocities with end factor velocities and one to find the relationship between forces applied to the environment and torque applied to the motors. The Jacobian plays a very important role, and we will spend some time discussing the Jacobian and finding ways of obtaining the Jacobian.
The Jacobian, as I said, describes the V vector, the linear velocity, and the Omega vector, the angular velocity, and it relates those velocities to the joint velocities. The Jacobian [inaudible] gives you the linear and angular velocities. We will see that essentially this Jacobian is really related to the way the axes of this robot are designed, and once you understood this model, you are going to be able to look at a robot and see the Jacobian automatically.
You look at the machine and you see the model automatically through this explicit form that we will develop to compute those linear velocities and angular velocities through the analysis of the contribution of each axis to the final resulting velocities. We will also be discussing the kinematics. We are not going to use it extensively as it has been done in industrial robotics. We will examine inverse kinematics and look at the difficulties in terms of the multiplicity of solutions and the existence of those solutions and examine different techniques for finding those solutions.
Again, kinematics is how I can find this configuration that corresponds to the desired and effective position and orientation. And then using those solutions, we can then do this interpolation between where the robot is at a given point and then how to move the robot to the final configuration through trajectory that are smooth both in velocity and acceleration and other constraints that we might impose through the generation of trajectories, both in joint space and in [inaudible] space.
This will result in those smooth trajectories that have [inaudible] points that could impose up or down on the velocities or the accelerations and resolve all of these by finding this interpolation between the different points. That will bring us to the midterm, which will be on Wednesday, February 15. It’s not a Friday. It will be in class, and it will be during the same schedule.
For the midterm, the time of the class is short, and you will have to be ready not to discover how to solve the problem but to work on the problem. That’s why the review sessions are very important to prepare you for the midterm to make sure that you will be able to solve all of the problems. We will make sure that the size of the problem fits with the time constraints that we have in the midterm.
After the midterm, we will start looking at dynamics, control and other topics. First, what we need to do is – I’m not sure how many of you are mechanical engineers. How many are CS? That is about right. We have half of the class familiar with some of the physical models that we are going to develop, and some others are not.
I’m going to assume that everyone has no knowledge of dynamics, control or kinematics, and I will start with the basic foundation. You shouldn’t worry about the fact that you don’t have a strong background in those areas. We will cover them from the start. We will go to what is the inertia, how did we describe the accelerations and then we will establish the dynamics, which is quite simple.
Does anyone recall the Newton equation? What is the relationship between forces and accelerations? You need to know that. Mass acceleration equals force. Well, this is all that you need to know. If you know how one particle can move under the application of a force, then we will be able to generalize to many other particles attached in a rigid body, and then we will put them into a structure that will take us to multi-body systems and articulated multi-body systems. We will cover these without difficulty, hopefully.
The result is quite interesting. This is a robot. This is a robot that is controlled not by motors on the joints but by cables. Really, the active part of the robot is from here to there, and here, you see all the motors and cables driven system that is on the right. If you think about the dynamics of this robot, it gets to be really complicated. You see on the right here – this is the robot. Here, you have some of the descriptions. For instance, what is the inertia view from the first joint when you move? This inertia is changing as you move.
Imagine if I’m considering the inertia about this axis. If I’m deploying the whole arm, this will increase. If I’m taking the arm like this, I will have smaller inertia about this axis. The inertia view from my joint is going to depend on the structure following that joint. We will see that essentially all of this will come very naturally from the equations that will be generated from the multi body system.
What we are going to use for this is a very simple description that again will allow you to take a look at this robot and say these are the dynamic characteristics of this joint, and you can almost see the coupling forces between the different joints in a visual form that all depends on those axes of [inaudible] and all translation of the robot.
This comes through the explicit form of dynamics that we will develop. This representation is an abstraction of the description that we will do with the Jacobian.
I said in the Jacobian case, we will take a description that is based on the contribution of each joint to the total velocity and we will do the same thing. What is the contribution of each link to the resulting inertial forces? When you do this, we will look at what is the contribution of this joint and the [inaudible] and the contribution of the others. We just add them all, and you will see the structure come together.
That is a very different way than the way that Newton and others formalized the dynamics, which relies on the fact that we take each of these rigid bodies and connect them through reaction forces. If you take all the links and if you remove the joints, you get one link. When you remove the joint, you substitute the removal of the joint with reaction forces and then you can study all these reaction forces and try to find the relationship between forces and acceleration.
This way, which is called the recursive Newton formulation, is going to require elimination of these internal forces and elimination of the forces of contact between the different rigid bodies. What we will do instead – we will go to the velocities and we will consider the energy associated with the motion of these rigid bodies. If you have a velocity V and Omega at the center of the mass, you can write the kinetic energy associated with this moving mass and inertia associated with the rigid body.
Simply by adding the kinetic energy of these different links, you have the total kinetic energy of the system. By then taking these velocities and taking the Jacobian relationship between velocities to connect them to joint velocities, you will be able to extract the mass properties of the robot. The mass metrics will become a very simple form of the Jacobian. That’s why I’m going to insist on your understanding of the Jacobian.
Once you understand the Jacobian, you can scale the Jacobian with the masses and the inertias and get your dynamics. Going to dynamics is going to be very simple if after the midterm, you really understood what the Jacobian is. The dynamics – this mass metrics associated with the dynamics of the system comes simply by looking at the sum of the contributions of the center of mass velocities and the Jacobian associated with the center of masses.
In control, we will examine – I’m going to assume also a little background in control. We will go over a single mass [inaudible] system and analyze it, and then we will examine controllers such as PD controllers or PID controllers, and then we will apply these in joint space and in task space by augmenting the controllers with the dynamic structure so that we account for the dynamics when we are controlling the robot.
That is going to lead to a very interesting analysis of the dynamics and how dynamics effects the behavior of the robot. You can see that the equation of motion for two degrees of freedom comes to be two equations involving not only the acceleration of the joint but the acceleration of the second joint, the velocities, centrifugal [inaudible] forces and gravity forces, and through this, all of these will have dynamic effect and disturbances on the behavior. We will analyze a structure that will allow us to design torque one and torque two to apply to the motor to create the behavior that is going to allow us to compensate for those effects.
All of these are descriptions in joint space – that is, descriptions of what torque and motion at the joints, and what we will see is that in controlling robots, we can really simplify much further the problem by considering the behavior of the robot in terms of its motion when it’s performing a task. That is, we can go to the task itself – the task in the case of the example I described is how to move the hand to this location – without really focusing on how each of the joints are going to move.
This concept can be captured by simply thinking about this robot as if the robot was attracted to move to the goal position. This is similar to the way humans operate. When you are controlling your hand to move to a goal position, essentially, you are visually [inaudible] your hand to the goal. You are not thinking about how the joints are moving. You are just moving the hand by applying these forces to move the hand to the goal position. It’s like holding the hand and pulling it down to the goal.
At the initial configuration, you have no commitment about the final configuration of the arm. You are just applying the force toward the goal and you are not moving towards the goal. Simply by creating a gradient of potential energy, you will be able to move to that configuration. This is precisely what we saw in this example of this robot here. This motion that we are creating – if we are going to move the hand to this location, we are going to generate a force that pulls like a magnet. It will pull the hand to this configuration.
At the same time, you have a robot that is standing, and it has to balance. There are other things that need to be taken into account, and what we are doing is we are also applying other potential energies to the rest of the body to balance. When we apply this force, it’s following this configuration like a magnet. There is no computation of the joint positions. We are simply applying these attractive forces to the goal. We can apply it here, there or apply it to both.
Obviously, if you cut the motors, it’s going to fall. It behaves a little bit like a human, actually. In fact, in this environment, you cannot only interact with it by moving the goal, but you can go and pull the hair. You can pull anywhere. When I click here, I’m computing the forward kinematics and the Jacobian. I’m applying a force that is immediately going to produce that force computed by the Jacobian on the motors, and everything will react in that way.
We are able to create those interactions between the graphics, the kinematics and apply it to the dynamics system. Everything is simulated on the laptop here. This is an environment that allows us to do a lot of interesting simulations of human life structures. You apply the force and you transform it. As I said, the relationship between forces and torques is also Jacobian. The Jacobian plays a very important role.
Then, computer dynamics – all that we need to do is understand the relationship between forces applied at the end factor and the resulting acceleration. When we talked earlier about Newton’s law, we said mass acceleration equals force. The mass was [inaudible]. This is a multi-value system. The mass is going to be a big M, mass metrics. The relationship between forces of acceleration is not linear. That is, forces of acceleration are not aligned because of the fact that you have a metrics.
Because of that, you need to establish the relationship between the two. Once you have this model, you can account for the dynamics in your forces, and then you can align the forces to be in the direction that produces the right acceleration. Finally, we need to deal with the problem of controlling contact. When you are moving in space, it is one thing. When we are going to move in contact space, it’s a different thing.
Applying this force puts the whole structure under a constraint, and you have to account for these constraints and compute the normal to find the reaction forces in order to control the forces being applied to the environment. We need to deal with first control, and we need to stabilize the transition from free space to contact space. That is, we need to be able to control these contact forces while moving. What is nice – if you do this in the [inaudible] space or in the task space, you will be able to just merge the two forces together to control the robot directly to produce motion and contact.
I mentioned that we will discuss some other topics. There will be a guest lecturer that will talk about vision in robotics, and we will also discuss issues about design. I would like to discuss some issues related to safety and the issues related to making robots lighter with structure that become safer and flexible to work in human environments. Also, we need to discuss a little bit about motion planning and especially if we are going to insert those robots into human environments, we need reactive planning.
In this video, you can see how a complex robotics system is reacting here to obstacles that are coming at it. It’s moving away from those obstacles. This is simply done by using the same type of concept that I described for moving to a goal position. I said we can create an attractive potential energy in here to create this motion. We are creating a repulsive potential energy. If you put two magnets [inaudible], they will repel, and this is exactly what is happening. We are creating artificially those forces and making the robot move away.
If you have a global plan, you need to deal with the full plan so that you will not reach a local minima, and we then apply this technique to modify all the intermediate configurations so that a robot like this would be moving to a goal position through this plan. When an obstacle or the world is changed, the trajectory is moving, the hand is moving, and all of this is happening in real time, which is amazing for a robot with this number of degrees of freedom.
The reason – I’m not sure if you’re familiar with the problem. The problem of motion planning in robotics is exponential in the number of degrees of freedom. Usually, if you want to replan a motion when one obstacle has moved, it would take hours to do. Here we are able to do this quite quickly because we are using the structure and we are using the concept of repulsive forces that modify future configurations and integrate. This is an example showing Indiana Jones going through the obstacles modified in real time.
All of these computations are taking place in real time because we are using this initial structure and incrementally modifying all the configurations. Another topic that I mentioned slightly earlier is the implication on digital modeling of humans. Learning from humans is very interesting and very attractive to create good controls for robots. In fact, currently, we are modeling tai chi motion and trying to analyze and learn from those motions. You can go from motion capture to copying that motion to the robot. In fact, you will end up with just one example of motion.
The question really is how you can generalize, and to do that, you need to take the motion of the human from motion and capture and put it to a model of the human. You need to model the human, and modeling the human involves modeling the skeletal system. We worked on this problem, so now you have a new kind of robot system with many degrees of freedom – about 79 degrees of freedom.
All of this is modeled through the same model of kinematics and dynamics. You can model the actuation, which is muscles now, and from this, you can learn a lot of things about the model. Now you can control it. This is synthesized motion. You understand how this is working. You just guide the task and then you have the balance taking place through other [inaudible] of the reminder of the degrees of freedom.
Then, you can take those characteristics and map them to the robot – not copying trajectories but copying the characteristics of the motion. It’s quite interesting. We’ll discuss also a little bit about haptics. This will be more developed in advanced robotics later in the spring, but haptics is very important, especially in the interaction with the real physical environment. You go and touch and now you have information that allows you to construct the surface and move over more descriptions of what you are touching and what normals you have.
Contact – what is amazing about this is this is done in real time. Someone from the automotive industry was visiting us and said now you have models of skeletal systems and good models for resolving contact. Why don’t you use them for crashes instead of using dummies? It’s early in development. There is a lot that will come later, but I will mention a few things about the interactivity also with obstacles and how we can deal with those issues and then combining locomotion – walking with manipulation and dynamic skills like jumping, landing and all these different things.
That will take us to the final, which will be on Friday, the 21st of March. The time is different. It will be at 12:15. We will announce it, and hopefully we will have again a review session before that. It is on the schedule. That review session, we will review previous finals and here, you will have enough time to solve some good problems.
By the way, not everything that you see in simulation is valid for the real world. How many skiers do we have here? Does it ski? Don’t do that. I will see some of you on Monday.
[End of Audio]
Duration: 67 minutes