To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Reactive planning

From Wikipedia, the free encyclopedia

In artificial intelligence, reactive planning denotes a group of techniques for action selection by autonomous agents. These techniques differ from classical planning in two aspects. First, they operate in a timely fashion and hence can cope with highly dynamic and unpredictable  environments. Second, they compute just one next action in every instant, based on the current context. Reactive planners often (but not always) exploit reactive plans, which are stored structures describing the agent's priorities and behaviour. The term reactive planning goes back to at least 1988, and is synonymous with the more modern term dynamic planning.

YouTube Encyclopedic

  • 1/1
    Views:
    491 746
  • Lecture 1 | Introduction to Robotics

Transcription

(music) >> This presentation is delivered by the Stanford Center for Professional Development. >> Okay, let's get started. Welcome to Intro to Robotics, 2008. Well, Happy New Year to everyone. So 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 represents [sic] robotic systems in many different ways. And in fact, you just saw those in class. You saw a [sic] assimilation of a humanoid robotic system that we are controlling at the same time. And if you think about a model that you are going to use for the assimilation, you need really 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. So let's go back to this-- I think it is quite interesting. So here's a robot you would like to control. And the question is: How can we really come up with a way of controlling the hands to move from one location to another? And if you think about this problem, there are many different ways of, in fact, 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. So, what kind of sensors you would have [sic] on the robot to know where the robot is? Any idea? >> GPS. >> GPS? Okay. Well, all right, how many parameters you can measure with GPS? That's fine. I mean, we can try that. How many parameters you can-- What can you determine with GPS? >> Probably X and Y coordinates. >> Yeah, you will locate X and Y for the location of the GPS, right? But how many degrees of freedom? How many bodies are moving here? When I'm moving this--like here--how many bodies are moving? How many GPS you want [sic] to put on the robot? (laughter) You will need about 47 if you have 47 degrees of freedom, and that won't work. It will be too expensive. Another idea. We need something else. >> Try encoders. >> Encoders, yeah, encoders. So, encoders measures [sic] one degree of freedom, just the angle. And how many encoders we need [sic] for 47 degrees of freedom? Forty-seven. Now that will give you the relative position, but we will not know whether this configuration is here or here, right? So you need the GPS to maybe locate one object and then locate everything with respect to it if you-- Any other idea to locate-- >> Differential navigation. >> Yeah, by integrating from an initial known position or using >> Vision systems. >> vision systems to locate at least one or two objects, then you know where the robot is, and then the relative position, the velocities could be determined as we move. So once we located the robot, then we need to somehow find a way to describe where things are. So where is the right hand? Where the left hand? [sic] Where-- So you need-- What do you need there? You need to find the relationship between all these rigid bodies so that once the robot is standing, you know where to position--where the arm is positioned, where the hand is positioned, where the head is positioned. So you need something that comes from the science of-- Well, I am not talking now about sensors. We know the information, but we need to determine-- >> A model. >> A model, the kinematic model. Basically, we need the kinematics. And when the thing is moving, it generates dynamics, right? So you need to find the inertial forces. You need to know-- So if you move the right hand, suddenly everything is moving, right? You have coupling between these rigid bodies that are connected. So we need to find the dynamics. And once you have all these models, then you need to think about a way to control the robot. So how do we control a robot like this? So let's say I would like to move this to here. How can we do that? The hand--I would like to move it to this location. I'm sorry? >> Forward, inverse kinematics. >> Oh, very good. Well, the forward kinematics gives you the location of the hand. The inverse kinematics give you--given [sic] a position for the hand that you desire. You need to-- You will be able to solve what joint angles-- Yeah. And 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 positions, and the arm will move to that configuration. Well, can we do inverse kinematics for this robot? It's not easy. It's already difficult for six-degree-of-freedom robot like an arm, but for a robot with many degrees of freedom-- So suppose I would like to move to this location--this location here. There are infinite ways I can move there. And there are many, many different solutions to this problem. In addition, a human do not [sic] really do it this way. I mean, when you're moving your hand, do you do inverse kinematics? Anyone? No. So we will see different ways of-- Oh, I will come back to this a little later, but let's-- I'm not sure, but the idea about robots is basically was captured [sic] by this image--that is, you have a robot working in an isolated environment in a manufacturing plant, doing things, picking, 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 a human [sic], to robot assisting a worker to carry a heavy load, to robots in entertainment, to robots in many, many different fields. And this is what is really exciting about robotics: the fact that robotics is getting closer and closer to the human-- that is we are using the robot now to carry, to lift, to work, to extend the hands of the human through haptic interaction. You can feel a virtual environment or a real environment. I'm not sure if everyone knows what is haptics. [sic] Haptics comes from the sense--a Greek word that describe [sic] the sense of touch. And from haptics-- So here is the hands [sic] of the surgeon, and the surgeon is still operating. So he is operating from outside, but essentially the robot is inserted, and instead of opening the body, we have a small incisions [sic] 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. Teleoperation through haptics or through master devices allow us to control-- So here is the surgeon working far away, operating, or 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 these models, all these techniques we developed in robotics, to model a human and to create sort of a digital model of the human that can, as we will see later, that can be assimilated and controlled to reproduce actual behavior captured from motion capture devices about the 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 world 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 through haptic devices, we can explore those world. [sic] Maybe the most exciting area in robotics is reproducing devices, robots that look like the human and behave like life, animals or humans. And a few years ago, I was in Japan. Anyone recognize where this photo is? >> Osaka. >> He said Osaka. >> Yokohama. >> Very good, but you are cheating because you were there. (laughter) So this is from Yokohama, and in Yokohama, there is Robodex. Robodex brings thousand and thousand [sic] of people to see all the latest in robotics. This was a few years ago. And you could see ASIMO here--ASIMO which is really the latest in a series of development [sic] at Honda following P2 and P3 robots. And in addition, you could see, well, most of the major players in robotics, in humanoid robotics. Anyone have seen [sic] this one? Do you know this one? This is the Sony robot that-- Actually, 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. And you can imagine the requirements in real-time control and dynamic modeling and all the aspect [sic] of this. And this was accomplished a few years ago. Well, actually, we brought this robot here to Stanford a few years ago, and they did a performance here, and it was quite exciting to see this robot dancing and performing. There are a lot of different robots, especially in Asia-- Japan and Korea--humanoid robots. AIST built a series of robots: HRP, HRP-1 and 2. And they are building and developing more capabilities for those robots. One of the interesting show [sic] that we had recently was near Nagoya during the World Expo in Aichi, 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. Let's see This is HRP. So 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. You see that sliding and touching is not completely mastered yet, but this is the direction of research in those areas. This is an interesting device that come [sic] from Waseda University. This robot has additional degrees of freedom that-- Okay, another problem. So you have additional degrees of freedom in the hip joints to allow it to move a little bit more like a human. Let's see This is one of my favorite. This is a humanlike, and humanlike actuation in it, so artificial muscles that are used to create the motion. But 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 yet-- But we will talk about those issues, as well. Okay, let me know what you think about this one. So? So what do you think? Do we need robots to really have the perfect appearance of a human? Or, like, we need the functionalities of the environment? Like if we are working with the trees, we specialize the robot 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. So these are really interesting issues to think about: whether we need to have the robot biologically based or functionally based, and how we can create those interactions in an effective way. Last one, I think is-- Yeah, this is an interesting example of how we can extend the capabilities of human with an exoskeleton system. So you wear it, and you become a superman or a superwoman, and you can carry a heavy load. They will demonstrate here carrying, I believe, 60 kilograms without feeling any weight because everything is taken by the structure of the exoskeletal system you are wearing. Another interesting one is this one from Tokyo Institute of Technology, a swimming robot. So make sure no water gets into the motors. Anyway, the thing is robotics is getting closer and closer to the human. And as we see, robots are getting closer to the human. We are facing a lot of challenges in really making these machines work 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, development in robotics has many aspects and many forms. And really at Stanford, we are fortunate to have a large number of classes, courses offered in different areas of robotics, graphics and computational geometry, haptics and all of these things. And you have a list of the different courses offered all along the year. And in fact, in my-- This is the Intro to Robotics. In spring, I will be offering two additional courses that would 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, and this is in Advanced Robotics. So, I'm Oussama Khatib, your instructor. And you have-- This year, we are lucky. We have three TAs helping with the class: Pete, Christina and Channing. So let's-- They are over here. Please stand up, or just turn your faces so they will recognize you. And 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. So we keep improving it. It's not yet a textbook, but it is quite complete in term [sic] of the requirements and the things you need to have for the class. So, um, let's see The schedule-- So we are today on Wednesday the 9th, and we will go to the final examination on March the 21st. There are few changes in the schedule from the handout you have, and we will update these later. There is-- These changes happened just in this area here around the dynamics and control schedule. But 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 go to the forward kinematics, and we will do the Jacobian. And 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. And we will have two groups that will attend these review sessions, which will take place in the evening. And they will take place in the lab, in the robotics lab. And during those sessions, we will cover the midterm of past years and the finals of past years. And 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 So that will happen between 7:00 and 9:00. Sometimes it goes to 10:00 because we have a lot of questions and discussions. But these sessions are really, really important, and I encourage you and I encourage also the remote students to be present for the sessions. They are very, very helpful in preparing you for the midterm and the final. So as I said, this class covers mathematical models that are essential. I know some of you might not really like, well, 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 these machines, design these machines. We need to understand the mathematical models, the foundations in kinematics and dynamics. And 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 motion that are [sic] safe, and we need to generate trajectories 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, interact with the world. So we need to create compliant motions, which rely on force control. So force control is critical in creating those interaction. [sic] And 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. And then we will have some time to discuss some advanced topics, just introduce those advanced topics, so that those of you who are interested in pursuing research in robotics could make maybe plans to take the more advanced courses that will be offered in spring. So 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 platform. This is a mobile manipulator platform. You would like to move it from here to here. How do we do that? Well, we said-- Essentially, what we need to do is somehow find a way of discovering a configuration through which the robot reaches that final goal position. And this is one of them. You can imagine the robot is going to move to that configuration. But the problem with this is the fact that if you have redundancy. So what is redundancy? Redundancy is the fact that you can reach that position with many different configuration [sic] because you have more degrees of freedom in the system. And when you have redundancy, this problem of inverse kinematics becomes pretty difficult problem. But if you solve it, then you will be able to say I would like to move each of those joints from this current position, this joint position to this joint position. So you can control the robot by controlling its joint positions and by creating trajectories for the joints to move, and then you will then be able to reach that goal position. Well, 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. So to control the robot, first you need to find all these position and orientation [sic] of the mechanism itself, and that requires us to find descriptions of position and orientation of object in space. Then we need to deal with the transformation between frames attached to these different objects because here, to know where this end effector is, you need to know how-- If you know this position, this position of those different objects, how you transform the descriptions to find, finally, the position of your end effector. So you need transformations between different frames attached to both objects. So the mechanism, that is the arm in this case, is defined by a rigid object that is fixed, which is the base, and another rigid object that is moving, which we call the end effector. And between these two objects, you have all the links that are going to carry the end effector to move it to some location. And the question is: How can we describe this mechanism? So we will see that we are raising joints, different kinds, joints that are revolute, prismatic. And through those descriptions, we can describe the link and then we can describe the chain of links connected through a set of parameters. Don't worry-- Denavit and Hartenberg were two PhD students here at Stanford in the early ???70s, and they thought about this problem, and they came up with a set of parameters, minimal set of parameters, to represent the relationship between two successive links on a chain. And their notation now is basically used everywhere in robotics. And 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 effector, so through forward kinematics, you can compute where the end effector position and orientation is. So these parameters are describing the common normal distance between two axes of rotation-- 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 effector frame. So once we have those transformations, then we can compute the total transformation. So we have local transformation between successive frames, and we can find the local transformation. Now once we know the geometry--that is, we know where the end effector is, 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. And we need to consider two things: not only the linear velocity of the end effector, but also the angular velocity at its rotate. [sic] And we will examine the different velocities--linear velocities, angular velocities--with which we will see a duality with the relationships between torques applied at the joints and forces resulting at the end effector. Forces, this is the linear-- Forces are associated with linear motion. Movement, torques associated with angular motion. And there is a duality that brings this Jacobian, the model that relates velocities, to be playing two roles: one to find the relationships between joint velocities with end effector velocities, and one to find the relationship between forces applied to the environment and torque applied to the motors. The Jacobian plays a very, very important role, and we will spend some time discussing the Jacobian and finding ways of obtaining the Jacobian. So the Jacobian, as I said, describes this V vector, the linear velocity, and the omega vector, the angular velocity, and it relates those velocities to the joint velocities. So the Jacobian, through that, gives you the linear and angular velocities. And 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. So we will also discuss inverse kinematics, although we are not going to use it extensively as it has been done in industrial robotics. We will use-- We will examine inverse kinematics and look at the difficulties in term [sic] of the multiplicity of solutions and the existence of those solutions and examine different techniques for finding those solutions. So, again, the inverse kinematics is how I can find this configuration that correspond [sic] to the desired end effector 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 Cartesian space. So this-- Oh, I'm going backwards. So this will result in those smooth trajectories that could have via points that could impose upper bound on the velocities or the accelerations and resolving all of these by finding this interpolation between the different points. And that will bring us to the midterm, which will be on Wednesday, February the 13th. It's not a Friday 13th. It's Wednesday. So no worries. And it will be in class, and it will be during the same schedule. Now for the midterm, the time of the class is short, and you'll have really to be ready not really to, like to discover how to solve the problem but really immediately to work on the problem. So 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 the problems, although 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. And first, what we need to do is to-- Well, I'm not assuming-- I'm not sure how many of you are mechanical engineers. Let's see, how many are mechanical engineers in the class? Good. And how many are CS? Wow! That is about right. We have half of the class who's familiar with some of the physical models that we are going to develop, and some others who are not. But I'm going to assume that really everyone has no knowledge of dynamics or control or kinematics, and I will start with really the basic foundation. So you shouldn't worry about the fact that you don't have strong background in those areas. We will cover them from the start. We will go to: What is inertia? What is-- How do we describe accelerations? And then we will establish the dynamics, which is quite simple. Anyone recalls the Newton equation? So, let's see. What is the relationship between forces and accelerations? You need to know that, everyone. (laughter) Okay, I need to hear it. Someone tell me. Okay, good. Mass, acceleration equal force. Well, this is all what you need to know. [sic] If you know how one particle can move under the application of a force, then we will be able to generalize to many particles attached in a rigid body, and then we will put them into a structure that will take us to multi-body system, articulated multi-body system. So we will cover these without difficulty, hopefully. The result is quite interesting. So this is a robot. This is a robot that is controlled not by motors on the joints but by cables. So really, the active part of the robot is from here to there, and here, you'll see all the motors and cables-driven system that is on the right. Now if you think about the dynamics of this robot, it gets to be really complicated. So you see on the right here-- So this is the robot, and here you have some of the descriptions of-- Wait, you cannot see anything probably. But you have all the descriptions of-- For instance, what is the inertia view from the first joint when you move? So this inertia is changing as you move. So imagine, if I'm considering the inertia above this axis, right? If I'm deploying the whole arm, the inertia will increase. If I'm putting the arm like this, I will have smaller inertia above this axis. Bigger inertia, smaller inertia. So the configuration-- The inertia view from a joint is going to depend on the structure following that joint. And we will see that essentially all of this will come very naturally from the equations that will be generated from the multi-body system. But 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, Oh, this is the characteristics, the dynamic characteristics of this joint. And you can almost see the coupling forces between the different joints in a visual form that all depend on those axes of rotation and all translation of the robot. And this comes through the explicit form of dynamics that we will develop. This representation is an abstract, abstraction of the description that we will do with the Jacobian. So 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? So when we do this, we will look at what is the contribution of this joint and the attached link and the contribution of the others. And we just add them all, and you will see this structure coming all together. So that is a very different way than the way Newton and Euler formalized the dynamics, which relies on the fact that we take each of these rigid bodies and connect them through reaction forces. So if you take all the links and if you remove the joints, you get one link. But 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. Well, this way, which is called the Recursive Newton-Euler formulation, is going to require elimination of these internal forces and elimination of the forces of contact between the different rigid bodies. And 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. So if you have a velocity V and omega at the center of mass, and you can write the energy, the kinetic energy, associated with this moving mass and inertia associated with the rigid body. And simply by adding the kinetic energy of these different links, you have the total kinetic energy of the system. And 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. So the mass metrics will become a very simple form of the Jacobian. So 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. So going to dynamics is going to be very simple if after the midterm, you really understood what is the Jacobian. 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-- Oh, I'm going to assume also a little background in control. So we will go over just a single mass-spring system and analyze it, and then we will examine controllers such as PD controllers or PID controllers, proportional derivative or proportional integral derivative, and then we 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. And that is going to lead to a very interesting analysis of the dynamics and how dynamics affect the behavior of the robot. And you can see that the equation of motion for two degrees of freedom comes to be sort of two equations involving not only the acceleration of the joint but the acceleration of the second joint, the velocities, centrifugal, Coriolis forces and gravity forces. And through this, all of these will have an effect, dynamic effect, and disturbances on the behavior. But we will analyze a structure that would allow us to design torque one and torque two, the torques applied to the motor, to create the behavior that is going to allow us to compensate for those effects. So all of these are descriptions in joint space--that is, descriptions of what torque and what motion at the joint. [sic] 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 term [sic] 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 joint is going to move. And this concept can be captured by simply thinking about this robot, this total robot, as if the robot was attracted to move to the goal position. This is similar to the way a human operate. [sic] When you are controlling your hand to move to a goal position, essentially you are visually surveying 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. So it's like holding the hand and pulling it down to the goal. And at the initial configuration, you have no commitment about the final configuration of the arm. You are just applying the force towards the goal, and you are moving towards the goal. So simply by creating a gradient of a potential energy, you will be able to move to that configuration. And this is precisely what we saw in this example, in the example of this robot here. So this motion that we are creating-- So 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. But at the same time, you have-- In this complex case, you have a robot that is standing, and it has to balance. So there are other things that needs [sic] 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. So when we apply this force, you see it's just following. It's like a magnet. It's following this configuration. There is no computation of the joint positions. Simply we are applying these attractive forces to the goal. We can apply it here, apply it there, or apply it to both. Now obviously, if you cut the motors, it's going to fall. And it behaves a little bit like a human, actually. When you cut the muscle (laughter) In fact, this environment, we developed-- It's quite interesting. You can not only interact with it by moving the goal, but you can go and pull the hair. (laughter) Ouch. You can pull anywhere. When I click here, I'm computing the forward kinematics and the Jacobian. And 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. So we are able to create those interaction [sic] between the graphics, the kinematics and apply it to the dynamic system. And everything actually is simulated on the laptop here. So this is an environment that allow us [sic] to do a lot of interesting simulations of humanlike structures. So you apply the force and you transform it. As I said, the relationship between forces and torques is also the Jacobian, so the Jacobian plays a very important role. And then the computer dynamics--all that we need to do is to understand the relationship between forces applied at the end of factor and the resulting acceleration. Now when we talked earlier about Newton law, we said force-- mass, acceleration equal force. And the mass was scalar. But this is a multi-value system. And the mass is going to be a big M, mass metrics. So the relationship between forces and acceleration is not linear--that is, forces and acceleration are not aligned because of the fact that you have a metrics. And because of that, you need to establish the relationship between the two. And once you have this model, you can account for the dynamics in your forces, and then you can align the forces to move, to be in the direction that produces the right acceleration. Finally, we need to deal with the problem of controlling contact. So when you are moving in space, it's one thing, but when we are going to move in contact space, it's a different thing. Applying this force put [sic] the whole structure under a constraint, and you have to account for these constraints and compute the normals to find reaction forces in order to control the forces being applied to the environment. So we need to deal with force control, and we need to stabilize the transition from free space to contact space-- so that is, we need to be able to control these contact forces while moving. And what is nice-- If you do this in the Cartesian 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 a little bit some issues related to safety and the issues related to making robots lighter with structures that become safer and flexible to work in a human environment. Also, we need to discuss a little bit about motion planning, and especially if we are going to insert those robots in the human environment, we need reactive planning. And there is-- In this video, you can see how a complex robotic system is reacting here to obstacles that are coming at it. It's moving away from those obstacles. And 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. So if you put two magnets north-north, they will repel, and this is exactly what is happening. We are creating artificially those forces and making the robot move away. But 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. And when an obstacle or when 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 is-- I'm not sure if you're familiar with the problem. Oh, sorry, let me just-- The problem of motion planning in robotics is exponential in the number of degrees of freedom. So usually, if you want to replan a motion when one obstacle has moved, it would take hours to do for a large number of degrees of freedom. And here we are able to do this quite quickly because we are using the structure and we are using this concept of repulsive forces that modifies future configurations and integrate-- So this is an example showing Indiana Jones going through the obstacles modified by--in real time, actually, modified all these configurations. And all 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 human. [sic] And learning from the human [sic] is very interesting and very attractive to create good controls for robots, and also understanding the human motion. In fact, currently, we are modeling Tai Chi motion and trying to analyze and learn from those motions. So you can go from motion capture to copying that motion to the robot. But in fact, you will end up with just one example of motion. The question really is how you can generalize, not just one specific motion. And to do that, if you want to generalize, you need to take the motion of the human from motion capture and map it not to the robot but to a model of the human. So you need to model the human, and modeling the human involves modeling the skeletal system. So we worked on this problem, so now you have-- This is a new kind of robot system with many degrees of freedom, about 79 degrees of freedom. And all of this is modeled through the same model of kinematics, dynamics. And then you can model the actuation, which is muscles now, and from this, you can learn a lot of things about the model. And then now you can control it. You can control-- This is synthesized motion. And you understand how this is working. You just guide the task, and then you have the balance taking place through other minimization of the reminder of the degrees of freedom. And then you can take those characteristics and map them to the robot, scale 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 environment, the real physical environment. So you go and touch-- And now you have information that allows you to reconstruct the surface and move over now more descriptions of what you are touching and what normals you have. Well, contact. (laughter) Quite amazing. What is amazing about this is this is done in real time. So someone from the automotive industry was visiting us and said, ?Now you have model of skeletal systems and good models for resolving contact. Why don't you use them for crashes instead of using dummies, right? So-- Ouch. But it's only in the model. Well, 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. Okay, so what is happening here? Okay, this is a different planet. I'm going to just-- Okay, and that will take us to the final, which will be on Friday, the 21st of March. And 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. In that review session, we'll review previous finals, and here you will have enough time to solve some good problems. So, by the way, not everything that you see in simulation is valid for the real world. And let's see How many skiers do we have here? Skiers. That's all? I would have thought-- Okay. Okay. Does it ski? Let's see the ski. Don't do that. (laughter) All right. I will see some of you on Monday. Okay.

Reactive plan representation

There are several ways to represent a reactive plan. All require a basic representational unit and a means to compose these units into plans.

Condition-action rules (productions)

A condition action rule, or if-then rule, is a rule in the form: if condition then action. These rules are called productions. The meaning of the rule is as follows: if the condition holds, perform the action. The action can be either external (e.g., pick something up and move it), or internal (e.g., write a fact into the internal memory, or evaluate a new set of rules). Conditions are normally boolean and the action either can be performed, or not.

Production rules may be organized in relatively flat structures, but more often are organized into a hierarchy of some kind. For example, subsumption architecture consists of layers of interconnected behaviors, each actually a finite state machine which acts in response to an appropriate input. These layers are then organized into a simple stack, with higher layers subsuming the goals of the lower ones. Other systems may use trees, or may include special mechanisms for changing which goal / rule subset is currently most important. Flat structures are relatively easy to build, but allow only for description of simple behavior, or require immensely complicated conditions to compensate for the lacking structure.

An important part of any distributed action selection algorithms is a conflict resolution mechanism. This is a mechanism for resolving conflicts between actions proposed when more than one rules' condition holds in a given instant. The conflict can be solved for example by

  • assigning fixed priorities to the rules in advance,
  • assigning preferences (e.g. in Soar architecture),
  • learning relative utilities between rules (e.g. in ACT-R),
  • exploiting a form of planning.

Expert systems often use other simpler heuristics such as recency for selecting rules, but it is difficult to guarantee good behavior in a large system with simple approaches.

Conflict resolution is only necessary for rules that want to take mutually exclusive actions (c.f. Blumberg 1996).

Some limitations of this kind of reactive planning can be found in Brom (2005).

Finite State Machines

Finite state machine (FSM) is model of behaviour of a system. FSMs are used widely in computer science. Modeling behaviour of agents is only one of their possible applications. A typical FSM, when used for describing behaviour of an agent, consists of a set of states and transitions between these states. The transitions are actually condition action rules. In every instant, just one state of the FSM is active, and its transitions are evaluated. If a transition is taken it activates another state. That means, in general transitions are the rules in the following form: if condition then activate-new-state. But transitions can also connect to the 'self' state in some systems, to allow execution of transition actions without actually changing the state.

There are two ways of how to produce behaviour by a FSM. They depend on what is associated with the states by a designer --- they can be either 'acts', or scripts. An 'act' is an atomic action that should be performed by the agent if its FSM is the given state. This action is performed in every time step then. However, more often is the latter case. Here, every state is associated with a script, which describes a sequence of actions that the agent has to perform if its FSM is in a given state. If a transition activates a new state, the former script is simply interrupted, and the new one is started.

If a script is more complicated, it can be broken down to several scripts and a hierarchical FSM can be exploited. In such an automaton, every state can contain substates. Only the states at the atomic level are associated with a script (which is not complicated) or an atomic action.

Computationally, hierarchical FSMs are equivalent to FSMs. That means that each hierarchical FSM can be converted to a classical FSM. However, hierarchical approaches facilitate designs better. See the paper of Damian Isla (2005) for an example of ASM of computer game bots, which uses hierarchical FSMs.

Fuzzy approaches

Both if-then rules and FSMs can be combined with fuzzy logic. The conditions, states and actions are no more boolean or "yes/no" respectively but are approximate and smooth. Consequently, resulted behaviour will transition smoother, especially in the case of transitions between two tasks. However, evaluation of the fuzzy conditions is much slower than evaluation of their crisp counterparts.

See the architecture of Alex Champandard.

Connectionists approaches

Reactive plans can be expressed also by connectionist networks like artificial neural networks or free-flow hierarchies. The basic representational unit is a unit with several input links that feed the unit with "an abstract activity" and output links that propagate the activity to following units. Each unit itself works as the activity transducer. Typically, the units are connected in a layered structure.

Positives of connectionist networks is, first, that the resulted behaviour is more smooth than behaviour produced by crisp if-then rules and FSMs, second, the networks are often adaptive, and third, mechanism of inhibition can be used and hence, behaviour can be also described proscriptively (by means of rules one can describe behaviour only prescriptively). However, the methods have also several flaws. First, for a designer, it is much more complicated to describe behaviour by a network comparing with if-then rules. Second, only relatively simple behaviour can be described, especially if adaptive feature is to be exploited.

Reactive planning algorithms

Typical reactive planning algorithm just evaluates if-then rules or computes the state of a connectionist network. However, some algorithms have special features.

  • Rete evaluation: with a proper logic representation (which is suitable only for crisp rules), the rules need not to be re-evaluated at every time step. Instead, a form of a cache storing the evaluation from the previous step can be used.
  • Scripting languages: Sometimes, the rules or FSMs are directly the primitives of an architecture (e.g. in Soar). But more often, reactive plans are programmed in a scripting language, where the rules are only one of the primitives (like in JAM or ABL).

Steering

Steering is a special reactive technique used in navigation of agents. The simplest form of reactive steering is employed in Braitenberg vehicles, which map sensor inputs directly to effector outputs, and can follow or avoid. More complex systems are based on a superposition of attractive or repulsive forces that effect on the agent. This kind of steering is based on the original work on boids of Craig Reynolds. By means of steering, one can achieve a simple form of:

  • towards a goal navigation
  • obstacle avoidance behaviour
  • a wall following behaviour
  • enemy approaching
  • predator avoidance
  • crowd behaviour

The advantage of steering is that it is computationally very efficient. In computer games, hundreds of NPCs can be driven by this technique. In cases of more complicated terrain (e.g. a building), however, steering must be combined with path-finding (as e.g. in Milani [1]), which is a form of planning .

See also

References


External links

This page was last edited on 2 February 2024, at 21:12
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.