1 00:00:00,000 --> 00:00:14,700 (music) >> This presentation is delivered by the Stanford 2 00:00:14,720 --> 00:00:24,470 Center for Professional Development. 3 00:00:24,490 --> 00:00:27,110 >> Okay, let's get started. 4 00:00:27,130 --> 00:00:29,790 Welcome to Intro to Robotics, 2008. 5 00:00:29,810 --> 00:00:34,210 Well, Happy New Year to everyone. 6 00:00:34,230 --> 00:00:40,250 So in Introduction to Robotics, we are going to really cover 7 00:00:40,270 --> 00:00:44,880 the foundations of robotics--that is, we are going to look 8 00:00:44,900 --> 00:00:48,879 at mathematical models that represents 9 00:00:48,900 --> 00:00:51,890 [sic] robotic systems in many different ways. 10 00:00:51,910 --> 00:00:56,599 And in fact, you just saw those in class. 11 00:00:56,620 --> 00:00:57,620 You saw a 12 00:00:57,620 --> 00:01:03,610 [sic] assimilation of a humanoid robotic system that we are 13 00:01:03,630 --> 00:01:05,400 controlling at the same time. 14 00:01:05,420 --> 00:01:09,550 And if you think about a model that you are going to use for 15 00:01:09,570 --> 00:01:12,820 the assimilation, you need really to represent the 16 00:01:12,840 --> 00:01:14,400 kinematics of the system. 17 00:01:14,420 --> 00:01:19,520 You need also to be able to actuate the system by going to 18 00:01:19,540 --> 00:01:23,410 the motors and finding the right torques to make the robot 19 00:01:23,430 --> 00:01:24,430 move. 20 00:01:24,430 --> 00:01:27,030 So let's go back to this-- 21 00:01:27,050 --> 00:01:30,660 I think it is quite interesting. 22 00:01:30,680 --> 00:01:36,320 So here's a robot you would like to control. 23 00:01:36,340 --> 00:01:42,480 And the question is: How can we really come up with a way of 24 00:01:42,500 --> 00:01:46,080 controlling the hands to move from one location to another? 25 00:01:46,100 --> 00:01:50,390 And if you think about this problem, there are many 26 00:01:50,410 --> 00:01:53,550 different ways of, in fact, controlling the robot. 27 00:01:53,570 --> 00:01:56,940 First of all, you need to know where the robot is, and to 28 00:01:56,960 --> 00:01:59,910 know where the robot is, you need some sensors. 29 00:01:59,930 --> 00:02:02,230 So, what kind of sensors you would have 30 00:02:02,250 --> 00:02:05,410 [sic] on the robot to know where the robot is? 31 00:02:05,430 --> 00:02:08,020 Any idea? 32 00:02:08,038 --> 00:02:09,070 >> GPS. 33 00:02:09,090 --> 00:02:10,090 >> GPS? 34 00:02:09,180 --> 00:02:10,180 Okay. 35 00:02:09,270 --> 00:02:15,840 Well, all right, how many parameters you can measure with 36 00:02:15,860 --> 00:02:21,710 GPS? 37 00:02:21,730 --> 00:02:22,730 That's fine. 38 00:02:22,260 --> 00:02:24,480 I mean, we can try that. 39 00:02:24,500 --> 00:02:25,750 How many parameters you can-- 40 00:02:25,560 --> 00:02:27,830 What can you determine with GPS? 41 00:02:27,850 --> 00:02:29,100 >> Probably X and Y coordinates. 42 00:02:28,300 --> 00:02:37,040 >> Yeah, you will locate X and Y for the location of the 43 00:02:37,060 --> 00:02:38,060 GPS, right? 44 00:02:38,060 --> 00:02:40,640 But how many degrees of freedom? 45 00:02:40,660 --> 00:02:42,780 How many bodies are moving here? 46 00:02:42,800 --> 00:02:49,260 When I'm moving this--like here--how many bodies are moving? 47 00:02:49,280 --> 00:02:50,530 How many GPS you want 48 00:02:50,480 --> 00:02:55,070 [sic] to put on the robot? 49 00:02:55,090 --> 00:02:58,090 (laughter) You will need about 47 if you have 47 degrees of 50 00:02:57,950 --> 00:03:00,959 freedom, and that won't work. 51 00:03:00,980 --> 00:03:02,230 It will be too expensive. 52 00:03:01,430 --> 00:03:03,330 Another idea. 53 00:03:03,350 --> 00:03:04,350 We need something else. 54 00:03:03,710 --> 00:03:08,090 >> Try encoders. 55 00:03:08,110 --> 00:03:09,110 >> Encoders, yeah, encoders. 56 00:03:08,800 --> 00:03:09,800 So, encoders measures 57 00:03:09,070 --> 00:03:11,489 [sic] one degree of freedom, just the angle. 58 00:03:11,510 --> 00:03:13,260 And how many encoders we need 59 00:03:13,280 --> 00:03:14,780 [sic] for 47 degrees of freedom? 60 00:03:14,730 --> 00:03:18,790 Forty-seven. 61 00:03:18,810 --> 00:03:23,080 Now that will give you the relative position, but we will 62 00:03:23,100 --> 00:03:28,130 not know whether this configuration is here or here, right? 63 00:03:28,150 --> 00:03:31,710 So you need the GPS to maybe locate one object and then 64 00:03:31,730 --> 00:03:33,730 locate everything with respect to it if you-- 65 00:03:33,690 --> 00:03:37,180 Any other idea to locate-- 66 00:03:37,200 --> 00:03:38,200 >> Differential navigation. 67 00:03:38,200 --> 00:03:46,560 >> Yeah, by integrating from an initial known position or 68 00:03:46,580 --> 00:03:52,610 using >> Vision systems. 69 00:03:52,630 --> 00:03:55,519 >> vision systems to locate at least one or two objects, 70 00:03:55,540 --> 00:03:58,950 then you know where the robot is, and then the relative 71 00:03:58,970 --> 00:04:02,460 position, the velocities could be determined as we move. 72 00:04:02,480 --> 00:04:11,519 So once we located the robot, then we need to somehow find a 73 00:04:11,540 --> 00:04:16,159 way to describe where things are. 74 00:04:16,180 --> 00:04:17,740 So where is the right hand? 75 00:04:17,760 --> 00:04:18,760 Where the left hand? 76 00:04:18,760 --> 00:04:20,300 [sic] Where-- So you need-- 77 00:04:20,320 --> 00:04:22,390 What do you need there? 78 00:04:22,410 --> 00:04:30,480 You need to find the relationship between all these rigid 79 00:04:30,500 --> 00:04:35,220 bodies so that once the robot is standing, you know where to 80 00:04:35,240 --> 00:04:39,090 position--where the arm is positioned, where the hand is 81 00:04:39,110 --> 00:04:42,210 positioned, where the head is positioned. 82 00:04:42,230 --> 00:04:49,060 So you need something that comes from the science of-- 83 00:04:49,080 --> 00:04:54,979 Well, I am not talking now about sensors. 84 00:04:55,000 --> 00:04:57,250 We know the information, but we need to determine-- 85 00:04:56,930 --> 00:04:57,930 >> A model. 86 00:04:57,930 --> 00:05:02,590 >> A model, the kinematic model. 87 00:05:02,610 --> 00:05:04,880 Basically, we need the kinematics. 88 00:05:04,900 --> 00:05:11,280 And when the thing is moving, it generates dynamics, right? 89 00:05:11,300 --> 00:05:13,690 So you need to find the inertial forces. 90 00:05:13,710 --> 00:05:15,140 You need to know-- 91 00:05:15,160 --> 00:05:17,660 So if you move the right hand, suddenly everything is 92 00:05:17,380 --> 00:05:18,380 moving, right? 93 00:05:18,380 --> 00:05:22,730 You have coupling between these rigid bodies that are 94 00:05:22,750 --> 00:05:24,310 connected. 95 00:05:24,330 --> 00:05:27,520 So we need to find the dynamics. 96 00:05:27,540 --> 00:05:33,480 And once you have all these models, then you need to think 97 00:05:33,500 --> 00:05:37,200 about a way to control the robot. 98 00:05:37,220 --> 00:05:42,330 So how do we control a robot like this? 99 00:05:42,350 --> 00:05:47,580 So let's say I would like to move this to here. 100 00:05:47,600 --> 00:05:49,700 How can we do that? 101 00:05:49,720 --> 00:05:52,470 The hand--I would like to move it to this location. 102 00:05:50,820 --> 00:05:51,820 I'm sorry? 103 00:05:51,820 --> 00:05:52,820 >> Forward, inverse kinematics. 104 00:05:52,090 --> 00:05:53,090 >> Oh, very good. 105 00:05:52,360 --> 00:06:05,400 Well, the forward kinematics gives you the location of the 106 00:06:05,420 --> 00:06:06,420 hand. 107 00:06:06,420 --> 00:06:09,340 The inverse kinematics give you--given 108 00:06:09,360 --> 00:06:12,260 [sic] a position for the hand that you desire. 109 00:06:12,280 --> 00:06:13,780 You need to-- 110 00:06:13,800 --> 00:06:16,050 You will be able to solve what joint angles-- 111 00:06:15,800 --> 00:06:19,060 Yeah. 112 00:06:19,080 --> 00:06:24,400 And if you do that, then you know your goal position angle 113 00:06:24,420 --> 00:06:25,670 for each of the joints. 114 00:06:25,280 --> 00:06:29,599 Then you can control these joints to move to the appropriate 115 00:06:29,620 --> 00:06:32,460 joint positions, and the arm will move to that 116 00:06:32,480 --> 00:06:34,070 configuration. 117 00:06:34,090 --> 00:06:41,859 Well, can we do inverse kinematics for this robot? 118 00:06:41,880 --> 00:06:43,550 It's not easy. 119 00:06:43,570 --> 00:06:46,630 It's already difficult for six-degree-of-freedom robot like 120 00:06:46,650 --> 00:06:50,929 an arm, but for a robot with many degrees of freedom-- 121 00:06:50,950 --> 00:06:53,700 So suppose I would like to move to this location--this 122 00:06:52,320 --> 00:06:53,320 location here. 123 00:06:53,320 --> 00:07:01,080 There are infinite ways I can move there. 124 00:07:01,100 --> 00:07:03,520 And there are many, many different solutions to this 125 00:07:03,540 --> 00:07:05,750 problem. 126 00:07:05,770 --> 00:07:07,270 In addition, a human do not 127 00:07:07,160 --> 00:07:08,660 [sic] really do it this way. 128 00:07:08,160 --> 00:07:11,310 I mean, when you're moving your hand, do you do inverse 129 00:07:11,330 --> 00:07:12,770 kinematics? 130 00:07:12,790 --> 00:07:17,890 Anyone? No. 131 00:07:17,910 --> 00:07:20,670 So we will see different ways of-- 132 00:07:20,690 --> 00:07:23,940 Oh, I will come back to this a little later, but let's-- 133 00:07:23,900 --> 00:07:29,810 I'm not sure, but the idea about robots is basically was 134 00:07:29,830 --> 00:07:30,830 captured 135 00:07:30,830 --> 00:07:35,590 [sic] by this image--that is, you have a robot working in an 136 00:07:35,610 --> 00:07:39,130 isolated environment in a manufacturing plant, doing things, 137 00:07:39,150 --> 00:07:42,630 picking, pick and place, moving from one location to another 138 00:07:42,650 --> 00:07:47,679 without any interaction with humans. But robotics, over the 139 00:07:47,700 --> 00:07:48,740 years, evolved. 140 00:07:48,760 --> 00:07:52,880 And today, robotics is in many different areas of 141 00:07:52,900 --> 00:07:56,810 application: from robots working with a surgeon to operate a 142 00:07:56,830 --> 00:07:57,830 human 143 00:07:57,830 --> 00:08:01,659 [sic], to robot assisting a worker to carry a heavy load, to 144 00:08:01,680 --> 00:08:04,960 robots in entertainment, to robots in many, many different 145 00:08:04,980 --> 00:08:06,030 fields. 146 00:08:06,050 --> 00:08:09,350 And this is what is really exciting about robotics: the fact 147 00:08:09,370 --> 00:08:12,630 that robotics is getting closer and closer to the human-- 148 00:08:12,650 --> 00:08:16,549 that is we are using the robot now to carry, to lift, to 149 00:08:16,570 --> 00:08:20,730 work, to extend the hands of the human through haptic 150 00:08:20,750 --> 00:08:21,900 interaction. 151 00:08:21,920 --> 00:08:25,980 You can feel a virtual environment or a real environment. 152 00:08:26,000 --> 00:08:29,510 I'm not sure if everyone knows what is haptics. 153 00:08:29,530 --> 00:08:32,760 [sic] Haptics comes from the sense--a Greek word that 154 00:08:32,780 --> 00:08:33,780 describe 155 00:08:33,780 --> 00:08:35,270 [sic] the sense of touch. 156 00:08:35,289 --> 00:08:37,969 And from haptics-- 157 00:08:37,990 --> 00:08:39,789 So here is the hands 158 00:08:39,808 --> 00:08:42,818 [sic] of the surgeon, and the surgeon is still operating. 159 00:08:42,840 --> 00:08:49,340 So he is operating from outside, but essentially the robot 160 00:08:49,360 --> 00:08:52,840 is inserted, and instead of opening the body, we have a 161 00:08:52,860 --> 00:08:54,070 small incisions 162 00:08:54,090 --> 00:08:56,840 [sic] through which we introduce the robot, and then we do 163 00:08:56,220 --> 00:08:57,290 the operation. 164 00:08:57,310 --> 00:08:59,750 And the recovery is amazing. 165 00:08:59,770 --> 00:09:04,140 A few days of recovery, and the patient is out of the 166 00:09:04,160 --> 00:09:06,160 hospital. 167 00:09:06,180 --> 00:09:10,069 Teleoperation through haptics or through master devices 168 00:09:10,090 --> 00:09:11,480 allow us to control-- 169 00:09:11,500 --> 00:09:16,860 So here is the surgeon working far away, operating, or 170 00:09:16,880 --> 00:09:21,310 operating underwater, or interacting with a physical 171 00:09:21,330 --> 00:09:24,990 environment in homes or in the factory. 172 00:09:25,010 --> 00:09:28,160 Another interesting thing about robotics is that because 173 00:09:28,180 --> 00:09:32,469 robotics focuses on articulated body systems, we are able 174 00:09:32,490 --> 00:09:36,980 now to use all these models, all these techniques we 175 00:09:37,000 --> 00:09:41,140 developed in robotics, to model a human and to create sort 176 00:09:41,160 --> 00:09:45,719 of a digital model of the human that can, as we will see 177 00:09:45,740 --> 00:09:51,210 later, that can be assimilated and controlled to reproduce 178 00:09:51,230 --> 00:09:57,910 actual behavior captured from motion capture devices about 179 00:09:57,930 --> 00:09:59,250 the human behavior. 180 00:09:59,270 --> 00:10:05,280 Also, with this interaction that we are creating with the 181 00:10:05,300 --> 00:10:08,130 physical world, we are going to be able to use haptic 182 00:10:08,150 --> 00:10:14,750 devices to explore physical world that cannot be touched in 183 00:10:14,770 --> 00:10:18,970 reality--that is, we cannot, for instance, go to the atom 184 00:10:18,990 --> 00:10:22,460 level, but we can simulate the atom level, and through 185 00:10:22,480 --> 00:10:26,570 haptic devices, we can explore those world. 186 00:10:26,590 --> 00:10:30,110 [sic] Maybe the most exciting area in robotics is 187 00:10:30,130 --> 00:10:35,080 reproducing devices, robots that look like the human and 188 00:10:35,100 --> 00:10:39,520 behave like life, animals or humans. 189 00:10:39,540 --> 00:10:44,459 And a few years ago, I was in Japan. 190 00:10:44,480 --> 00:10:46,160 Anyone recognize where this photo is? 191 00:10:46,180 --> 00:10:47,180 >> Osaka. 192 00:10:47,180 --> 00:10:50,160 >> He said Osaka. 193 00:10:50,180 --> 00:10:51,180 >> Yokohama. 194 00:10:50,270 --> 00:10:55,390 >> Very good, but you are cheating because you were there. 195 00:10:55,410 --> 00:10:58,250 (laughter) So this is from Yokohama, and in Yokohama, there 196 00:10:58,270 --> 00:11:00,930 is Robodex. 197 00:11:00,950 --> 00:11:04,190 Robodex brings thousand and thousand 198 00:11:04,210 --> 00:11:08,840 [sic] of people to see all the latest in robotics. 199 00:11:08,860 --> 00:11:10,360 This was a few years ago. 200 00:11:10,330 --> 00:11:14,840 And you could see ASIMO here--ASIMO which is really the 201 00:11:14,860 --> 00:11:18,570 latest in a series of development 202 00:11:18,590 --> 00:11:23,330 [sic] at Honda following P2 and P3 robots. 203 00:11:23,350 --> 00:11:30,740 And in addition, you could see, well, most of the major 204 00:11:30,760 --> 00:11:33,000 players in robotics, in humanoid robotics. 205 00:11:33,020 --> 00:11:36,150 Anyone have seen 206 00:11:36,170 --> 00:11:37,250 [sic] this one? 207 00:11:37,270 --> 00:11:40,030 Do you know this one? 208 00:11:40,050 --> 00:11:42,240 This is the Sony robot that-- 209 00:11:42,260 --> 00:11:45,330 Actually, I think I have a video. 210 00:11:45,350 --> 00:11:48,500 Let's see if it works. 211 00:11:48,520 --> 00:11:57,800 The Sony is balancing on a moving bar, and this is not an 212 00:11:57,820 --> 00:11:59,430 easy task. 213 00:11:59,450 --> 00:12:04,590 And you can imagine the requirements in real-time control 214 00:12:04,610 --> 00:12:07,530 and dynamic modeling and all the aspect 215 00:12:07,550 --> 00:12:08,550 [sic] of this. 216 00:12:08,550 --> 00:12:17,930 And this was accomplished a few years ago. 217 00:12:17,950 --> 00:12:21,600 Well, actually, we brought this robot here to Stanford a few 218 00:12:21,620 --> 00:12:29,330 years ago, and they did a performance here, and it was quite 219 00:12:29,350 --> 00:12:33,440 exciting to see this robot dancing and performing. 220 00:12:33,460 --> 00:12:39,090 There are a lot of different robots, especially in Asia-- 221 00:12:39,110 --> 00:12:41,460 Japan and Korea--humanoid robots. 222 00:12:41,480 --> 00:12:50,790 AIST built a series of robots: HRP, HRP-1 and 2. 223 00:12:50,810 --> 00:12:53,060 And they are building and developing more capabilities for 224 00:12:52,850 --> 00:13:00,780 those robots. 225 00:13:00,800 --> 00:13:03,890 One of the interesting show 226 00:13:03,910 --> 00:13:09,510 [sic] that we had recently was near Nagoya during the World 227 00:13:09,530 --> 00:13:15,650 Expo in Aichi, and they demonstrated a number of projects. 228 00:13:15,670 --> 00:13:21,319 Some of them came from research laboratories that 229 00:13:21,340 --> 00:13:24,890 collaborated with the industry to build those machines. 230 00:13:24,910 --> 00:13:28,020 This is a dancing robot. 231 00:13:28,040 --> 00:13:34,920 Let's see This is HRP. 232 00:13:34,940 --> 00:13:37,480 So HRP is walking. 233 00:13:37,500 --> 00:13:41,060 Walking is now well-mastered. 234 00:13:41,080 --> 00:13:46,180 But the problem is: How can you move to a position, take an 235 00:13:46,200 --> 00:13:50,470 object and control the interaction with the physical world? 236 00:13:50,490 --> 00:13:51,550 This is more challenging. 237 00:13:51,570 --> 00:13:54,330 You see that sliding and touching is not completely mastered 238 00:13:54,350 --> 00:14:02,230 yet, but this is the direction of research in those areas. 239 00:14:02,250 --> 00:14:05,020 This is an interesting device that come 240 00:14:05,040 --> 00:14:07,480 [sic] from Waseda University. 241 00:14:07,500 --> 00:14:11,320 This robot has additional degrees of freedom that-- 242 00:14:11,340 --> 00:14:18,300 Okay, another problem. 243 00:14:18,320 --> 00:14:22,210 So you have additional degrees of freedom in the hip joints 244 00:14:22,230 --> 00:14:26,910 to allow it to move a little bit more like a human. 245 00:14:26,930 --> 00:14:29,219 Let's see This is one of my favorite. 246 00:14:29,240 --> 00:14:36,700 This is a humanlike, and humanlike actuation in it, so 247 00:14:36,720 --> 00:14:41,240 artificial muscles that are used to create the motion. 248 00:14:41,260 --> 00:14:44,220 But obviously, you have a lot of problems with artificial 249 00:14:44,240 --> 00:14:48,250 muscles because dynamic response is very slow and the power 250 00:14:48,270 --> 00:14:51,699 that you can bring is not yet-- 251 00:14:51,720 --> 00:14:54,050 But we will talk about those issues, as well. 252 00:14:54,070 --> 00:15:24,070 Okay, let me know what you think about this one. 253 00:15:25,010 --> 00:15:27,220 So? 254 00:15:27,240 --> 00:15:29,420 So what do you think? 255 00:15:29,440 --> 00:15:32,440 Do we need robots to really have the perfect appearance of a 256 00:15:32,010 --> 00:15:33,010 human? 257 00:15:33,010 --> 00:15:38,960 Or, like, we need the functionalities of the environment? 258 00:15:38,980 --> 00:15:43,450 Like if we are working with the trees, we specialize the 259 00:15:43,470 --> 00:15:44,840 robot to cut trees. 260 00:15:44,860 --> 00:15:48,670 If we are working in the human environment, then we will 261 00:15:48,690 --> 00:15:53,140 have a robot that has the functionalities of two arms, the 262 00:15:53,160 --> 00:15:56,240 mobility, the vision capabilities. 263 00:15:56,260 --> 00:16:00,740 So these are really interesting issues to think about: 264 00:16:00,760 --> 00:16:07,290 whether we need to have the robot biologically based or 265 00:16:07,310 --> 00:16:12,209 functionally based, and how we can create those interactions 266 00:16:12,230 --> 00:16:15,100 in an effective way. 267 00:16:15,120 --> 00:16:16,370 Last one, I think is-- 268 00:16:15,570 --> 00:16:25,950 Yeah, this is an interesting example of how we can extend 269 00:16:25,970 --> 00:16:30,150 the capabilities of human with an exoskeleton system. 270 00:16:30,170 --> 00:16:33,939 So you wear it, and you become a superman or a superwoman, 271 00:16:33,960 --> 00:16:37,390 and you can carry a heavy load. 272 00:16:37,410 --> 00:16:43,100 They will demonstrate here carrying, I believe, 60 kilograms 273 00:16:43,120 --> 00:16:47,030 without feeling any weight because everything is taken by 274 00:16:47,050 --> 00:16:52,430 the structure of the exoskeletal system you are wearing. 275 00:16:52,450 --> 00:16:56,300 Another interesting one is this one from Tokyo Institute of 276 00:16:56,320 --> 00:17:02,500 Technology, a swimming robot. 277 00:17:02,520 --> 00:17:05,660 So make sure no water gets into the motors. 278 00:17:05,680 --> 00:17:15,069 Anyway, the thing is robotics is getting closer and closer 279 00:17:15,089 --> 00:17:16,230 to the human. 280 00:17:16,250 --> 00:17:21,400 And as we see, robots are getting closer to the human. 281 00:17:21,420 --> 00:17:27,760 We are facing a lot of challenges in really making these 282 00:17:27,780 --> 00:17:32,190 machines work in the unstructured, messy environment of the 283 00:17:32,210 --> 00:17:33,210 human. 284 00:17:33,210 --> 00:17:38,920 When we were working with robots in structured manufacturing 285 00:17:38,940 --> 00:17:41,990 plants, the problems were much simpler. 286 00:17:42,010 --> 00:17:46,320 Now you need to deal with many issues, including the fact 287 00:17:46,340 --> 00:17:48,320 that you need safety. 288 00:17:48,340 --> 00:17:51,750 You need safety to create that interaction. 289 00:17:51,770 --> 00:17:55,530 And this distance between the human and the robot is very 290 00:17:55,550 --> 00:17:56,550 well justified. 291 00:17:56,550 --> 00:18:00,560 You don't want yet to bring the robot very close to the 292 00:18:00,580 --> 00:18:05,850 human because these machines are not yet quite safe. 293 00:18:05,870 --> 00:18:12,629 Well, development in robotics has many aspects and many 294 00:18:12,650 --> 00:18:13,650 forms. 295 00:18:13,650 --> 00:18:18,170 And really at Stanford, we are fortunate to have a large 296 00:18:18,190 --> 00:18:24,320 number of classes, courses offered in different areas of 297 00:18:24,340 --> 00:18:29,439 robotics, graphics and computational geometry, haptics and 298 00:18:29,460 --> 00:18:30,460 all of these things. 299 00:18:30,460 --> 00:18:34,690 And you have a list of the different courses offered all 300 00:18:34,710 --> 00:18:36,010 along the year. 301 00:18:36,030 --> 00:18:39,790 And in fact, in my-- 302 00:18:39,810 --> 00:18:41,720 This is the Intro to Robotics. 303 00:18:41,740 --> 00:18:44,900 In spring, I will be offering two additional courses that 304 00:18:44,920 --> 00:18:48,510 would deal with Experimental Robotics--that is, applying 305 00:18:48,530 --> 00:18:53,290 everything you have learned during this class to a real 306 00:18:53,310 --> 00:18:58,270 robot and experimenting with the robot, as well as exploring 307 00:18:58,290 --> 00:19:01,580 advanced topics in research, and this is in Advanced 308 00:19:01,600 --> 00:19:03,719 Robotics. 309 00:19:03,740 --> 00:19:11,410 So, I'm Oussama Khatib, your instructor. 310 00:19:11,430 --> 00:19:13,950 And you have-- 311 00:19:13,970 --> 00:19:15,590 This year, we are lucky. 312 00:19:15,610 --> 00:19:20,620 We have three TAs helping with the class: Pete, Christina 313 00:19:20,640 --> 00:19:21,640 and Channing. 314 00:19:21,640 --> 00:19:22,640 So let's-- 315 00:19:21,950 --> 00:19:24,240 They are over here. 316 00:19:24,260 --> 00:19:27,010 Please stand up, or just turn your faces so they will 317 00:19:26,900 --> 00:19:29,230 recognize you. 318 00:19:29,250 --> 00:19:32,300 And the office hours are listed. 319 00:19:32,320 --> 00:19:38,520 So we will have office hours for me on Monday and Wednesday, 320 00:19:38,540 --> 00:19:43,590 and Monday, Tuesday and Thursday for the TAs. 321 00:19:43,610 --> 00:19:48,629 The lecture notes are here, and they are available at the 322 00:19:48,650 --> 00:19:49,970 bookstore. 323 00:19:49,990 --> 00:19:52,410 This is the 2008 edition. 324 00:19:52,430 --> 00:19:54,040 So we keep improving it. 325 00:19:54,060 --> 00:19:57,790 It's not yet a textbook, but it is quite complete in term 326 00:19:57,810 --> 00:20:01,419 [sic] of the requirements and the things you need to have 327 00:20:01,440 --> 00:20:04,250 for the class. 328 00:20:04,270 --> 00:20:06,020 So, um, let's see The schedule-- 329 00:20:04,980 --> 00:20:08,480 So we are today on Wednesday the 9th, and we will go to the 330 00:20:06,240 --> 00:20:19,870 final examination on March the 21st. 331 00:20:19,890 --> 00:20:25,300 There are few changes in the schedule from the handout you 332 00:20:25,320 --> 00:20:28,030 have, and we will update these later. 333 00:20:28,050 --> 00:20:31,020 There is-- 334 00:20:31,040 --> 00:20:38,710 These changes happened just in this area here around the 335 00:20:38,730 --> 00:20:40,920 dynamics and control schedule. 336 00:20:40,940 --> 00:20:45,430 But essentially, what we're going to do starting next week 337 00:20:45,450 --> 00:20:51,270 is to start covering the models, so we will start with the 338 00:20:51,290 --> 00:20:52,710 spatial descriptions. 339 00:20:52,730 --> 00:20:55,570 We go to the forward kinematics, and we will do the 340 00:20:55,590 --> 00:20:57,159 Jacobian. 341 00:20:57,180 --> 00:21:00,570 And I will discuss these little by little. 342 00:21:00,590 --> 00:21:02,970 That will take us to the midterm. 343 00:21:02,990 --> 00:21:08,580 One important thing about the midterm and the final is that 344 00:21:08,600 --> 00:21:10,919 we will have review sessions. 345 00:21:10,940 --> 00:21:14,510 And the class is quite large, so we will split the class in 346 00:21:14,530 --> 00:21:15,530 two. 347 00:21:15,530 --> 00:21:18,950 And we will have two groups that will attend these review 348 00:21:18,970 --> 00:21:21,860 sessions, which will take place in the evening. 349 00:21:21,880 --> 00:21:25,300 And they will take place in the lab, in the robotics lab. 350 00:21:25,320 --> 00:21:30,790 And during those sessions, we will cover the midterm of past 351 00:21:30,810 --> 00:21:34,100 years and the finals of past years. 352 00:21:34,120 --> 00:21:38,669 And what is nice about those sessions is that you will have 353 00:21:38,690 --> 00:21:46,040 a chance to see some demonstrations of robots while eating 354 00:21:46,060 --> 00:21:52,950 pizza and drinking some So that will happen between 7:00 and 355 00:21:52,970 --> 00:21:53,970 9:00. 356 00:21:53,970 --> 00:21:56,970 Sometimes it goes to 10:00 because we have a lot of 357 00:21:56,770 --> 00:21:58,250 questions and discussions. 358 00:21:58,270 --> 00:22:02,760 But these sessions are really, really important, and I 359 00:22:02,780 --> 00:22:06,660 encourage you and I encourage also the remote students to be 360 00:22:06,680 --> 00:22:08,160 present for the sessions. 361 00:22:08,180 --> 00:22:11,880 They are very, very helpful in preparing you for the midterm 362 00:22:11,900 --> 00:22:12,900 and the final. 363 00:22:12,900 --> 00:22:20,800 So as I said, this class covers mathematical models that are 364 00:22:20,820 --> 00:22:21,820 essential. 365 00:22:21,820 --> 00:22:25,080 I know some of you might not really like, well, getting too 366 00:22:25,100 --> 00:22:28,240 much into the details of mathematical models, but we are 367 00:22:28,260 --> 00:22:34,340 going to really have to do it if we are going to try to 368 00:22:34,360 --> 00:22:37,179 control these machines or build these machines, design these 369 00:22:37,200 --> 00:22:38,200 machines. 370 00:22:38,200 --> 00:22:41,040 We need to understand the mathematical models, the 371 00:22:41,060 --> 00:22:44,480 foundations in kinematics and dynamics. 372 00:22:44,500 --> 00:22:52,270 And we will then use these models to create controllers, and 373 00:22:52,290 --> 00:22:55,510 we are going to control motions, so we need to plan these 374 00:22:55,530 --> 00:22:56,530 motions. 375 00:22:56,530 --> 00:22:59,379 We need to plan motion that are 376 00:22:59,400 --> 00:23:02,730 [sic] safe, and we need to generate trajectories that are 377 00:23:02,750 --> 00:23:03,750 smooth. 378 00:23:03,750 --> 00:23:07,370 So these are the issues that we need to address in the 379 00:23:07,390 --> 00:23:10,660 planning and control, in addition to the fact that we need 380 00:23:10,680 --> 00:23:13,280 to touch, feel, interact with the world. 381 00:23:13,300 --> 00:23:17,659 So we need to create compliant motions, which rely on force 382 00:23:17,680 --> 00:23:18,680 control. 383 00:23:18,680 --> 00:23:23,200 So force control is critical in creating those interaction. 384 00:23:23,220 --> 00:23:27,180 [sic] And we will see how we can control the robot to move 385 00:23:27,200 --> 00:23:31,340 in free space or in contact space as the robot is 386 00:23:31,360 --> 00:23:32,899 interacting with the world. 387 00:23:32,920 --> 00:23:37,190 And then we will have some time to discuss some advanced 388 00:23:37,210 --> 00:23:40,900 topics, just introduce those advanced topics, so that those 389 00:23:40,920 --> 00:23:45,810 of you who are interested in pursuing research in robotics 390 00:23:45,830 --> 00:23:52,179 could make maybe plans to take the more advanced courses 391 00:23:52,200 --> 00:23:55,310 that will be offered in spring. 392 00:23:55,330 --> 00:24:00,770 So let's go back to the problem I talked about in the 393 00:24:00,790 --> 00:24:04,320 beginning: the problem of moving this robot from one 394 00:24:04,340 --> 00:24:05,340 location to another. 395 00:24:05,340 --> 00:24:07,500 Suppose you would like to move this platform. 396 00:24:07,520 --> 00:24:10,110 This is a mobile manipulator platform. 397 00:24:10,130 --> 00:24:12,700 You would like to move it from here to here. 398 00:24:12,720 --> 00:24:14,200 How do we do that? 399 00:24:14,220 --> 00:24:15,220 Well, we said-- 400 00:24:15,220 --> 00:24:19,600 Essentially, what we need to do is somehow find a way of 401 00:24:19,620 --> 00:24:26,780 discovering a configuration through which the robot reaches 402 00:24:26,800 --> 00:24:29,440 that final goal position. 403 00:24:29,460 --> 00:24:31,620 And this is one of them. 404 00:24:31,640 --> 00:24:34,390 You can imagine the robot is going to move to that 405 00:24:34,230 --> 00:24:35,490 configuration. 406 00:24:35,510 --> 00:24:38,560 But the problem with this is the fact that if you have 407 00:24:38,580 --> 00:24:39,580 redundancy. 408 00:24:39,580 --> 00:24:41,260 So what is redundancy? 409 00:24:41,280 --> 00:24:44,460 Redundancy is the fact that you can reach that position with 410 00:24:44,480 --> 00:24:46,280 many different configuration 411 00:24:46,300 --> 00:24:48,800 [sic] because you have more degrees of freedom in the 412 00:24:48,170 --> 00:24:49,170 system. 413 00:24:49,170 --> 00:24:52,530 And when you have redundancy, this problem of inverse 414 00:24:52,550 --> 00:24:55,470 kinematics becomes pretty difficult problem. 415 00:24:55,490 --> 00:25:00,220 But if you solve it, then you will be able to say I would 416 00:25:00,240 --> 00:25:04,130 like to move each of those joints from this current 417 00:25:04,150 --> 00:25:07,340 position, this joint position to this joint position. 418 00:25:07,360 --> 00:25:11,159 So you can control the robot by controlling its joint 419 00:25:11,180 --> 00:25:14,540 positions and by creating trajectories for the joints to 420 00:25:14,560 --> 00:25:17,950 move, and then you will then be able to reach that goal 421 00:25:17,970 --> 00:25:18,970 position. 422 00:25:18,970 --> 00:25:23,930 Well, this is not the most natural way of controlling 423 00:25:23,950 --> 00:25:30,150 robots, and we will see that there will be different ways of 424 00:25:30,170 --> 00:25:33,280 approaching the problem that are much more natural. 425 00:25:33,300 --> 00:25:37,870 So to control the robot, first you need to find all these 426 00:25:37,890 --> 00:25:39,540 position and orientation 427 00:25:39,560 --> 00:25:44,550 [sic] of the mechanism itself, and that requires us to find 428 00:25:44,570 --> 00:25:49,590 descriptions of position and orientation of object in space. 429 00:25:49,610 --> 00:25:53,240 Then we need to deal with the transformation between frames 430 00:25:53,260 --> 00:25:57,000 attached to these different objects because here, to know 431 00:25:57,020 --> 00:26:01,030 where this end effector is, you need to know how-- 432 00:26:01,050 --> 00:26:04,129 If you know this position, this position of those different 433 00:26:04,150 --> 00:26:08,250 objects, how you transform the descriptions to find, 434 00:26:08,270 --> 00:26:12,330 finally, the position of your end effector. 435 00:26:12,350 --> 00:26:15,750 So you need transformations between different frames 436 00:26:15,770 --> 00:26:17,810 attached to both objects. 437 00:26:17,830 --> 00:26:25,520 So the mechanism, that is the arm in this case, is defined 438 00:26:25,540 --> 00:26:30,090 by a rigid object that is fixed, which is the base, and 439 00:26:30,110 --> 00:26:34,729 another rigid object that is moving, which we call the end 440 00:26:34,750 --> 00:26:35,750 effector. 441 00:26:35,750 --> 00:26:40,130 And between these two objects, you have all the links that 442 00:26:40,150 --> 00:26:43,770 are going to carry the end effector to move it to some 443 00:26:43,790 --> 00:26:44,909 location. 444 00:26:44,930 --> 00:26:49,200 And the question is: How can we describe this mechanism? 445 00:26:49,220 --> 00:26:54,880 So we will see that we are raising joints, different kinds, 446 00:26:54,900 --> 00:26:57,880 joints that are revolute, prismatic. 447 00:26:57,900 --> 00:27:02,930 And through those descriptions, we can describe the link and 448 00:27:02,950 --> 00:27:09,240 then we can describe the chain of links connected through a 449 00:27:09,260 --> 00:27:10,730 set of parameters. 450 00:27:10,750 --> 00:27:11,750 Don't worry-- 451 00:27:10,930 --> 00:27:17,870 Denavit and Hartenberg were two PhD students here at 452 00:27:17,890 --> 00:27:22,150 Stanford in the early ???70s, and they thought about this 453 00:27:22,170 --> 00:27:26,090 problem, and they came up with a set of parameters, minimal 454 00:27:26,110 --> 00:27:30,520 set of parameters, to represent the relationship between two 455 00:27:30,540 --> 00:27:33,690 successive links on a chain. 456 00:27:33,710 --> 00:27:39,730 And their notation now is basically used everywhere in 457 00:27:39,750 --> 00:27:40,760 robotics. 458 00:27:40,780 --> 00:27:43,950 And through this notation and those parameters, we will be 459 00:27:43,970 --> 00:27:46,630 able to come up with a description of the forward 460 00:27:46,650 --> 00:27:47,650 kinematics. 461 00:27:47,650 --> 00:27:51,920 The forward kinematics is the relationship between these 462 00:27:51,940 --> 00:27:55,880 joint angles and the position of the end effector, so 463 00:27:55,900 --> 00:27:59,500 through forward kinematics, you can compute where the end 464 00:27:59,520 --> 00:28:01,639 effector position and orientation is. 465 00:28:01,660 --> 00:28:10,110 So these parameters are describing the common normal 466 00:28:10,130 --> 00:28:15,870 distance between two axes of rotation-- 467 00:28:15,890 --> 00:28:19,870 So this distance, and also the orientation between these 468 00:28:19,890 --> 00:28:24,710 axes, and through this, we can go through the chain and then 469 00:28:24,730 --> 00:28:30,110 attach frames to the different joints and then find the 470 00:28:30,130 --> 00:28:33,100 transformation between the joints in order to find the 471 00:28:33,120 --> 00:28:36,600 relationship between the base frame and the end effector 472 00:28:36,620 --> 00:28:38,929 frame. 473 00:28:38,950 --> 00:28:44,430 So once we have those transformations, then we can compute 474 00:28:44,450 --> 00:28:45,720 the total transformation. 475 00:28:45,740 --> 00:28:50,340 So we have local transformation between successive frames, 476 00:28:50,360 --> 00:28:53,510 and we can find the local transformation. 477 00:28:53,530 --> 00:28:57,290 Now once we know the geometry--that is, we know where the 478 00:28:57,310 --> 00:29:00,169 end effector is, where each link is with respect to the 479 00:29:00,190 --> 00:29:04,860 others, then we can use this information to come up with a 480 00:29:04,880 --> 00:29:09,010 description of the second important characteristic in 481 00:29:09,030 --> 00:29:14,399 kinematics, and this is the velocities: how fast things are 482 00:29:14,420 --> 00:29:16,320 moving with respect to each other. 483 00:29:16,340 --> 00:29:20,530 And we need to consider two things: not only the linear 484 00:29:20,550 --> 00:29:23,620 velocity of the end effector, but also the angular velocity 485 00:29:23,640 --> 00:29:25,060 at its rotate. 486 00:29:25,080 --> 00:29:29,060 [sic] And we will examine the different velocities--linear 487 00:29:29,080 --> 00:29:35,050 velocities, angular velocities--with which we will see a 488 00:29:35,070 --> 00:29:39,760 duality with the relationships between torques applied at 489 00:29:39,780 --> 00:29:44,260 the joints and forces resulting at the end effector. 490 00:29:44,280 --> 00:29:46,790 Forces, this is the linear-- 491 00:29:46,810 --> 00:29:49,679 Forces are associated with linear motion. 492 00:29:49,700 --> 00:29:54,290 Movement, torques associated with angular motion. 493 00:29:54,310 --> 00:29:59,169 And there is a duality that brings this Jacobian, the model 494 00:29:59,190 --> 00:30:05,250 that relates velocities, to be playing two roles: one to 495 00:30:05,270 --> 00:30:08,450 find the relationships between joint velocities with end 496 00:30:08,470 --> 00:30:11,620 effector velocities, and one to find the relationship 497 00:30:11,640 --> 00:30:17,120 between forces applied to the environment and torque applied 498 00:30:17,140 --> 00:30:18,220 to the motors. 499 00:30:18,240 --> 00:30:21,200 The Jacobian plays a very, very important role, and we will 500 00:30:21,220 --> 00:30:25,360 spend some time discussing the Jacobian and finding ways of 501 00:30:25,380 --> 00:30:27,880 obtaining the Jacobian. 502 00:30:27,900 --> 00:30:32,400 So the Jacobian, as I said, describes this V vector, the 503 00:30:32,420 --> 00:30:36,280 linear velocity, and the omega vector, the angular velocity, 504 00:30:36,300 --> 00:30:41,879 and it relates those velocities to the joint velocities. 505 00:30:41,900 --> 00:30:45,960 So the Jacobian, through that, gives you the linear and 506 00:30:45,980 --> 00:30:48,200 angular velocities. 507 00:30:48,220 --> 00:30:55,780 And we will see that essentially this Jacobian is really 508 00:30:55,800 --> 00:31:00,970 related to the way the axes of this robot are designed. 509 00:31:00,990 --> 00:31:04,820 And once you understood this model, you are going to be able 510 00:31:04,840 --> 00:31:08,929 to look at a robot and see the Jacobian automatically. 511 00:31:08,950 --> 00:31:12,200 You look at the machine, and you see the model automatically 512 00:31:12,220 --> 00:31:16,900 through this explicit form that we will develop to compute 513 00:31:16,920 --> 00:31:20,400 those linear velocities and angular velocities through the 514 00:31:20,420 --> 00:31:26,170 analysis of the contribution of each axis to the final 515 00:31:26,190 --> 00:31:28,870 resulting velocities. 516 00:31:28,890 --> 00:31:34,070 So we will also discuss inverse kinematics, although we are 517 00:31:34,090 --> 00:31:38,530 not going to use it extensively as it has been done in 518 00:31:38,550 --> 00:31:39,860 industrial robotics. 519 00:31:39,880 --> 00:31:40,930 We will use-- 520 00:31:40,950 --> 00:31:44,930 We will examine inverse kinematics and look at the 521 00:31:44,950 --> 00:31:46,270 difficulties in term 522 00:31:46,290 --> 00:31:50,760 [sic] of the multiplicity of solutions and the existence of 523 00:31:50,780 --> 00:31:55,560 those solutions and examine different techniques for finding 524 00:31:55,580 --> 00:31:57,199 those solutions. 525 00:31:57,220 --> 00:32:01,950 So, again, the inverse kinematics is how I can find this 526 00:32:01,970 --> 00:32:03,570 configuration that correspond 527 00:32:03,590 --> 00:32:07,580 [sic] to the desired end effector position and orientation. 528 00:32:07,600 --> 00:32:12,020 And then using those solutions, we can then do this 529 00:32:12,040 --> 00:32:17,730 interpolation between where the robot is at a given point 530 00:32:17,750 --> 00:32:21,480 and then how to move the robot to the final configuration 531 00:32:21,500 --> 00:32:26,040 through trajectory that are smooth both in velocity and 532 00:32:26,060 --> 00:32:30,260 acceleration and other constraints that we might impose 533 00:32:30,280 --> 00:32:34,310 through the generation of trajectories, both in joint space 534 00:32:34,330 --> 00:32:36,860 and in Cartesian space. 535 00:32:36,880 --> 00:32:37,880 So this-- 536 00:32:37,460 --> 00:32:41,640 Oh, I'm going backwards. 537 00:32:41,660 --> 00:32:45,250 So this will result in those smooth trajectories that could 538 00:32:45,270 --> 00:32:50,830 have via points that could impose upper bound on the 539 00:32:50,850 --> 00:32:55,149 velocities or the accelerations and resolving all of these 540 00:32:55,170 --> 00:32:59,920 by finding this interpolation between the different points. 541 00:32:59,940 --> 00:33:03,560 And that will bring us to the midterm, which will be on 542 00:33:03,580 --> 00:33:07,169 Wednesday, February the 13th. 543 00:33:07,190 --> 00:33:08,690 It's not a Friday 13th. 544 00:33:07,310 --> 00:33:08,310 It's Wednesday. 545 00:33:08,310 --> 00:33:11,240 So no worries. 546 00:33:11,260 --> 00:33:16,250 And it will be in class, and it will be during the same 547 00:33:16,270 --> 00:33:17,270 schedule. 548 00:33:17,270 --> 00:33:22,280 Now for the midterm, the time of the class is short, and 549 00:33:22,300 --> 00:33:30,450 you'll have really to be ready not really to, like to 550 00:33:30,470 --> 00:33:33,980 discover how to solve the problem but really immediately to 551 00:33:34,000 --> 00:33:35,000 work on the problem. 552 00:33:35,000 --> 00:33:38,150 So that's why the review sessions are very important to 553 00:33:38,170 --> 00:33:41,790 prepare you for the midterm to make sure that you will be 554 00:33:41,810 --> 00:33:47,370 able to solve all the problems, although we will make sure 555 00:33:47,390 --> 00:33:51,440 that the size of the problem fits with the time constraints 556 00:33:51,460 --> 00:33:53,820 that we have in the midterm. 557 00:33:53,840 --> 00:33:58,959 After the midterm, we will start looking at dynamics, 558 00:33:58,980 --> 00:34:01,020 control and other topics. 559 00:34:01,040 --> 00:34:04,780 And first, what we need to do is to-- 560 00:34:04,800 --> 00:34:07,710 Well, I'm not assuming-- 561 00:34:07,730 --> 00:34:12,560 I'm not sure how many of you are mechanical engineers. 562 00:34:12,580 --> 00:34:16,569 Let's see, how many are mechanical engineers in the class? 563 00:34:16,590 --> 00:34:17,600 Good. 564 00:34:17,620 --> 00:34:19,929 And how many are CS? 565 00:34:19,949 --> 00:34:24,989 Wow! That is about right. 566 00:34:25,010 --> 00:34:29,699 We have half of the class who's familiar with some of the 567 00:34:29,719 --> 00:34:32,870 physical models that we are going to develop, and some 568 00:34:32,889 --> 00:34:34,330 others who are not. 569 00:34:34,350 --> 00:34:38,319 But I'm going to assume that really everyone has no 570 00:34:38,340 --> 00:34:42,219 knowledge of dynamics or control or kinematics, and I will 571 00:34:42,239 --> 00:34:46,219 start with really the basic foundation. 572 00:34:46,239 --> 00:34:49,489 So you shouldn't worry about the fact that you don't have 573 00:34:49,429 --> 00:34:51,629 strong background in those areas. 574 00:34:51,650 --> 00:34:53,989 We will cover them from the start. 575 00:34:54,010 --> 00:34:57,120 We will go to: What is inertia? 576 00:34:57,139 --> 00:34:58,140 What is-- 577 00:34:58,140 --> 00:35:00,759 How do we describe accelerations? 578 00:35:00,780 --> 00:35:04,210 And then we will establish the dynamics, which is quite 579 00:35:04,230 --> 00:35:05,420 simple. 580 00:35:05,440 --> 00:35:12,130 Anyone recalls the Newton equation? 581 00:35:12,150 --> 00:35:13,150 So, let's see. 582 00:35:13,150 --> 00:35:21,520 What is the relationship between forces and accelerations? 583 00:35:21,540 --> 00:35:26,870 You need to know that, everyone. (laughter) Okay, I need to 584 00:35:26,890 --> 00:35:27,890 hear it. 585 00:35:27,890 --> 00:35:28,890 Someone tell me. 586 00:35:28,610 --> 00:35:29,610 Okay, good. 587 00:35:28,790 --> 00:35:32,900 Mass, acceleration equal force. 588 00:35:32,920 --> 00:35:35,520 Well, this is all what you need to know. 589 00:35:35,540 --> 00:35:40,320 [sic] If you know how one particle can move under the 590 00:35:40,340 --> 00:35:44,230 application of a force, then we will be able to generalize 591 00:35:44,250 --> 00:35:48,420 to many particles attached in a rigid body, and then we will 592 00:35:48,440 --> 00:35:52,350 put them into a structure that will take us to multi-body 593 00:35:52,370 --> 00:35:54,330 system, articulated multi-body system. 594 00:35:54,350 --> 00:35:58,460 So we will cover these without difficulty, hopefully. 595 00:35:58,480 --> 00:36:01,790 The result is quite interesting. 596 00:36:01,810 --> 00:36:03,870 So this is a robot. 597 00:36:03,890 --> 00:36:10,520 This is a robot that is controlled not by motors on the 598 00:36:10,540 --> 00:36:12,600 joints but by cables. 599 00:36:12,620 --> 00:36:16,790 So really, the active part of the robot is from here to 600 00:36:16,810 --> 00:36:22,049 there, and here, you'll see all the motors and cables-driven 601 00:36:22,070 --> 00:36:24,630 system that is on the right. 602 00:36:24,650 --> 00:36:28,110 Now if you think about the dynamics of this robot, it gets 603 00:36:28,130 --> 00:36:29,350 to be really complicated. 604 00:36:29,370 --> 00:36:31,609 So you see on the right here-- 605 00:36:31,630 --> 00:36:35,020 So this is the robot, and here you have some of the 606 00:36:35,040 --> 00:36:36,040 descriptions of-- 607 00:36:36,040 --> 00:36:37,759 Wait, you cannot see anything probably. 608 00:36:37,780 --> 00:36:41,810 But you have all the descriptions of-- 609 00:36:41,830 --> 00:36:47,950 For instance, what is the inertia view from the first joint 610 00:36:47,970 --> 00:36:48,970 when you move? 611 00:36:48,970 --> 00:36:52,140 So this inertia is changing as you move. 612 00:36:52,160 --> 00:36:58,259 So imagine, if I'm considering the inertia above this axis, 613 00:36:58,280 --> 00:36:59,280 right? 614 00:36:59,280 --> 00:37:05,020 If I'm deploying the whole arm, the inertia will increase. 615 00:37:05,040 --> 00:37:08,040 If I'm putting the arm like this, I will have smaller 616 00:37:07,930 --> 00:37:09,899 inertia above this axis. 617 00:37:09,920 --> 00:37:11,970 Bigger inertia, smaller inertia. 618 00:37:11,990 --> 00:37:12,990 So the configuration-- 619 00:37:12,580 --> 00:37:16,660 The inertia view from a joint is going to depend on the 620 00:37:16,680 --> 00:37:19,040 structure following that joint. 621 00:37:19,060 --> 00:37:23,570 And we will see that essentially all of this will come very 622 00:37:23,590 --> 00:37:29,060 naturally from the equations that will be generated from the 623 00:37:29,080 --> 00:37:30,390 multi-body system. 624 00:37:30,410 --> 00:37:37,290 But what we are going to use for this is a very simple 625 00:37:37,310 --> 00:37:41,660 description that again will allow you to take a look at this 626 00:37:41,680 --> 00:37:48,190 robot and say, Oh, this is the characteristics, the dynamic 627 00:37:48,210 --> 00:37:49,940 characteristics of this joint. 628 00:37:49,960 --> 00:37:56,380 And you can almost see the coupling forces between the 629 00:37:56,400 --> 00:38:01,780 different joints in a visual form that all depend on those 630 00:38:01,800 --> 00:38:05,640 axes of rotation and all translation of the robot. 631 00:38:05,660 --> 00:38:08,899 And this comes through the explicit form of dynamics that we 632 00:38:08,920 --> 00:38:09,920 will develop. 633 00:38:09,920 --> 00:38:15,730 This representation is an abstract, abstraction of the 634 00:38:15,750 --> 00:38:18,680 description that we will do with the Jacobian. 635 00:38:18,700 --> 00:38:22,080 So I said in the Jacobian case, we will take a description 636 00:38:22,100 --> 00:38:26,430 that is based on the contribution of each joint to the total 637 00:38:26,450 --> 00:38:28,790 velocity, and we will do the same thing. 638 00:38:28,810 --> 00:38:33,020 What is the contribution of each link to the resulting 639 00:38:33,040 --> 00:38:34,240 inertial forces? 640 00:38:34,260 --> 00:38:38,110 So when we do this, we will look at what is the contribution 641 00:38:38,130 --> 00:38:42,520 of this joint and the attached link and the contribution of 642 00:38:42,540 --> 00:38:43,540 the others. 643 00:38:43,540 --> 00:38:46,940 And we just add them all, and you will see this structure 644 00:38:46,960 --> 00:38:49,870 coming all together. 645 00:38:49,890 --> 00:38:54,230 So that is a very different way than the way Newton and 646 00:38:54,250 --> 00:39:00,090 Euler formalized the dynamics, which relies on the fact that 647 00:39:00,110 --> 00:39:06,290 we take each of these rigid bodies and connect them through 648 00:39:06,310 --> 00:39:07,549 reaction forces. 649 00:39:07,570 --> 00:39:11,250 So if you take all the links and if you remove the joints, 650 00:39:11,270 --> 00:39:12,270 you get one link. 651 00:39:12,270 --> 00:39:20,110 But when you remove the joint, you substitute the removal of 652 00:39:20,130 --> 00:39:24,850 the joint with reaction forces, and then you can study all 653 00:39:24,870 --> 00:39:27,650 these reaction forces and try to find the relationship 654 00:39:27,670 --> 00:39:30,040 between forces and acceleration. 655 00:39:30,060 --> 00:39:33,950 Well, this way, which is called the Recursive Newton-Euler 656 00:39:33,970 --> 00:39:40,839 formulation, is going to require elimination of these 657 00:39:40,860 --> 00:39:45,880 internal forces and elimination of the forces of contact 658 00:39:45,900 --> 00:39:48,100 between the different rigid bodies. 659 00:39:48,120 --> 00:39:53,700 And what we will do instead--we will go to the velocities, 660 00:39:53,720 --> 00:40:00,220 and we will consider the energy associated with the motion 661 00:40:00,240 --> 00:40:01,799 of these rigid bodies. 662 00:40:01,820 --> 00:40:06,360 So if you have a velocity V and omega at the center of mass, 663 00:40:06,380 --> 00:40:30,890 and you can write the energy, the kinetic energy, associated 664 00:40:30,910 --> 00:40:33,410 with this moving mass and inertia associated with the rigid 665 00:40:30,900 --> 00:40:31,900 body. 666 00:40:31,900 --> 00:40:34,400 And simply by adding the kinetic energy of these different 667 00:40:32,800 --> 00:40:35,300 links, you have the total kinetic energy of the system. 668 00:40:33,700 --> 00:40:36,200 And by then taking these velocities and taking the Jacobian 669 00:40:34,600 --> 00:40:36,600 relationship between velocities to connect them to joint 670 00:40:35,320 --> 00:40:39,030 velocities, you will be able to extract the mass properties 671 00:40:39,050 --> 00:40:40,050 of the robot. 672 00:40:40,050 --> 00:40:44,150 So the mass metrics will become a very simple form of the 673 00:40:44,170 --> 00:40:45,170 Jacobian. 674 00:40:45,170 --> 00:40:49,530 So that's why I'm going to insist on your understanding of 675 00:40:49,550 --> 00:40:50,550 the Jacobian. 676 00:40:50,550 --> 00:40:54,160 Once you understand the Jacobian, you can scale the Jacobian 677 00:40:54,180 --> 00:40:57,870 with the masses and the inertias and get your dynamics. 678 00:40:57,890 --> 00:41:03,529 So going to dynamics is going to be very simple if after the 679 00:41:03,550 --> 00:41:07,890 midterm, you really understood what is the Jacobian. 680 00:41:07,910 --> 00:41:08,910 The dynamics-- 681 00:41:08,910 --> 00:41:12,560 This mass metrics associated with the dynamics of the system 682 00:41:12,580 --> 00:41:18,060 comes simply by looking at the sum of the contributions of 683 00:41:18,080 --> 00:41:22,150 the center of mass velocities and the Jacobian associated 684 00:41:22,170 --> 00:41:23,420 with the center of masses. 685 00:41:23,070 --> 00:41:27,100 In control, we will examine-- 686 00:41:27,120 --> 00:41:32,130 Oh, I'm going to assume also a little background in control. 687 00:41:32,150 --> 00:41:37,800 So we will go over just a single mass-spring system and 688 00:41:37,820 --> 00:41:43,070 analyze it, and then we will examine controllers such as PD 689 00:41:43,090 --> 00:41:46,780 controllers or PID controllers, proportional derivative or 690 00:41:46,800 --> 00:41:50,570 proportional integral derivative, and then we apply these in 691 00:41:50,590 --> 00:41:57,040 joint space and in task space by augmenting the controllers 692 00:41:57,060 --> 00:42:00,730 with the dynamic structure so that we account for the 693 00:42:00,750 --> 00:42:03,480 dynamics when we are controlling the robot. 694 00:42:03,500 --> 00:42:10,860 And that is going to lead to a very interesting analysis of 695 00:42:10,880 --> 00:42:14,890 the dynamics and how dynamics affect the behavior of the 696 00:42:14,910 --> 00:42:16,020 robot. 697 00:42:16,040 --> 00:42:20,150 And you can see that the equation of motion for two degrees 698 00:42:20,170 --> 00:42:24,500 of freedom comes to be sort of two equations involving not 699 00:42:24,520 --> 00:42:27,990 only the acceleration of the joint but the acceleration of 700 00:42:28,010 --> 00:42:31,980 the second joint, the velocities, centrifugal, Coriolis 701 00:42:32,000 --> 00:42:33,660 forces and gravity forces. 702 00:42:33,680 --> 00:42:39,009 And through this, all of these will have an effect, dynamic 703 00:42:39,030 --> 00:42:41,370 effect, and disturbances on the behavior. 704 00:42:41,390 --> 00:42:45,029 But we will analyze a structure that would allow us to 705 00:42:45,050 --> 00:42:47,800 design torque one and torque two, the torques applied to the 706 00:42:47,230 --> 00:42:52,990 motor, to create the behavior that is going to allow us to 707 00:42:53,010 --> 00:42:55,780 compensate for those effects. 708 00:42:55,800 --> 00:43:03,020 So all of these are descriptions in joint space--that is, 709 00:43:03,040 --> 00:43:07,830 descriptions of what torque and what motion at the joint. 710 00:43:07,850 --> 00:43:13,170 [sic] And what we will see is that in controlling robots, we 711 00:43:13,190 --> 00:43:18,970 can really simplify much further the problem by considering 712 00:43:18,990 --> 00:43:23,629 the behavior of the robot in term 713 00:43:23,650 --> 00:43:27,480 [sic] of its motion when it's performing a task--that is, we 714 00:43:27,500 --> 00:43:32,140 can go to the task itself, the task, in the case of the 715 00:43:32,160 --> 00:43:35,359 example I described, is how to move the hand to this 716 00:43:35,380 --> 00:43:40,030 location, without really focusing on how each of the joint 717 00:43:40,050 --> 00:43:41,450 is going to move. 718 00:43:41,470 --> 00:43:47,459 And this concept can be captured by simply thinking about 719 00:43:47,480 --> 00:43:52,500 this robot, this total robot, as if the robot was attracted 720 00:43:52,520 --> 00:43:54,020 to move to the goal position. 721 00:43:53,750 --> 00:43:56,590 This is similar to the way a human operate. 722 00:43:56,610 --> 00:43:59,610 [sic] When you are controlling your hand to move to a goal 723 00:43:59,160 --> 00:44:02,600 position, essentially you are visually surveying your hand 724 00:44:02,620 --> 00:44:03,620 to the goal. 725 00:44:03,620 --> 00:44:06,670 You are not thinking about how the joints are moving. 726 00:44:06,690 --> 00:44:11,340 You are just moving the hand by applying these forces to 727 00:44:11,360 --> 00:44:13,260 move the hand to the goal position. 728 00:44:13,280 --> 00:44:18,430 So it's like holding the hand and pulling it down to the 729 00:44:18,450 --> 00:44:19,450 goal. 730 00:44:19,450 --> 00:44:25,180 And at the initial configuration, you have no commitment 731 00:44:25,200 --> 00:44:28,169 about the final configuration of the arm. 732 00:44:28,190 --> 00:44:31,680 You are just applying the force towards the goal, and you 733 00:44:31,700 --> 00:44:33,450 are moving towards the goal. 734 00:44:33,470 --> 00:44:37,740 So simply by creating a gradient of a potential energy, you 735 00:44:37,760 --> 00:44:40,450 will be able to move to that configuration. 736 00:44:40,470 --> 00:44:44,290 And this is precisely what we saw in this example, in the 737 00:44:44,310 --> 00:44:49,560 example of this robot here. 738 00:44:49,580 --> 00:44:53,730 So this motion that we are creating-- 739 00:44:53,750 --> 00:44:58,970 So if we are going to move the hand to this location, we are 740 00:44:58,990 --> 00:45:02,870 going to generate a force that pulls like a magnet. 741 00:45:02,890 --> 00:45:06,230 It will pull the hand to this configuration. 742 00:45:06,250 --> 00:45:08,410 But at the same time, you have-- 743 00:45:08,430 --> 00:45:12,690 In this complex case, you have a robot that is standing, and 744 00:45:12,710 --> 00:45:13,840 it has to balance. 745 00:45:13,860 --> 00:45:15,810 So there are other things that needs 746 00:45:15,830 --> 00:45:17,480 [sic] to be taken into account. 747 00:45:17,500 --> 00:45:21,260 And what we are doing is we are also applying other 748 00:45:21,280 --> 00:45:24,640 potential energies to the rest of the body to balance. 749 00:45:24,660 --> 00:45:30,629 So when we apply this force, you see it's just following. 750 00:45:30,650 --> 00:45:32,050 It's like a magnet. 751 00:45:32,070 --> 00:45:33,690 It's following this configuration. 752 00:45:33,710 --> 00:45:37,010 There is no computation of the joint positions. 753 00:45:37,030 --> 00:45:42,230 Simply we are applying these attractive forces to the goal. 754 00:45:42,250 --> 00:45:47,040 We can apply it here, apply it there, or apply it to both. 755 00:45:47,060 --> 00:45:58,390 Now obviously, if you cut the motors, it's going to fall. 756 00:45:58,410 --> 00:46:04,799 And it behaves a little bit like a human, actually. 757 00:46:04,820 --> 00:46:11,670 When you cut the muscle (laughter) In fact, this 758 00:46:11,690 --> 00:46:12,690 environment, we developed-- 759 00:46:12,690 --> 00:46:14,180 It's quite interesting. 760 00:46:14,200 --> 00:46:19,799 You can not only interact with it by moving the goal, but 761 00:46:19,820 --> 00:46:23,320 you can go and pull the hair. (laughter) Ouch. 762 00:46:23,340 --> 00:46:25,760 You can pull anywhere. 763 00:46:25,780 --> 00:46:31,850 When I click here, I'm computing the forward kinematics and 764 00:46:31,870 --> 00:46:33,040 the Jacobian. 765 00:46:33,060 --> 00:46:38,720 And I'm applying a force that is immediately going to 766 00:46:38,740 --> 00:46:43,049 produce that force computed by the Jacobian on the motors, 767 00:46:43,070 --> 00:46:46,370 and everything will react in that way. 768 00:46:46,390 --> 00:46:49,799 So we are able to create those interaction 769 00:46:49,820 --> 00:46:54,880 [sic] between the graphics, the kinematics and apply it to 770 00:46:54,900 --> 00:46:55,900 the dynamic system. 771 00:46:55,900 --> 00:46:58,880 And everything actually is simulated on the laptop here. 772 00:46:58,900 --> 00:47:00,900 So this is an environment that allow us 773 00:47:00,660 --> 00:47:04,730 [sic] to do a lot of interesting simulations of humanlike 774 00:47:04,750 --> 00:47:09,150 structures. 775 00:47:09,170 --> 00:47:11,680 So you apply the force and you transform it. 776 00:47:11,700 --> 00:47:15,629 As I said, the relationship between forces and torques is 777 00:47:15,650 --> 00:47:18,150 also the Jacobian, so the Jacobian plays a very important 778 00:47:17,250 --> 00:47:18,250 role. 779 00:47:18,250 --> 00:47:23,750 And then the computer dynamics--all that we need to do is to 780 00:47:23,770 --> 00:47:27,830 understand the relationship between forces applied at the 781 00:47:27,850 --> 00:47:31,049 end of factor and the resulting acceleration. 782 00:47:31,070 --> 00:47:35,080 Now when we talked earlier about Newton law, we said force-- 783 00:47:35,100 --> 00:47:39,370 mass, acceleration equal force. 784 00:47:39,390 --> 00:47:41,680 And the mass was scalar. 785 00:47:41,700 --> 00:47:44,339 But this is a multi-value system. 786 00:47:44,360 --> 00:47:47,400 And the mass is going to be a big M, mass metrics. 787 00:47:47,420 --> 00:47:55,190 So the relationship between forces and acceleration is not 788 00:47:55,210 --> 00:47:59,150 linear--that is, forces and acceleration are not aligned 789 00:47:59,170 --> 00:48:01,920 because of the fact that you have a metrics. 790 00:48:01,940 --> 00:48:04,980 And because of that, you need to establish the relationship 791 00:48:05,000 --> 00:48:06,230 between the two. 792 00:48:06,250 --> 00:48:09,640 And once you have this model, you can account for the 793 00:48:09,660 --> 00:48:14,290 dynamics in your forces, and then you can align the forces 794 00:48:14,310 --> 00:48:19,240 to move, to be in the direction that produces the right 795 00:48:19,260 --> 00:48:20,260 acceleration. 796 00:48:20,260 --> 00:48:27,360 Finally, we need to deal with the problem of controlling 797 00:48:27,380 --> 00:48:28,380 contact. 798 00:48:28,380 --> 00:48:34,290 So when you are moving in space, it's one thing, but when we 799 00:48:34,310 --> 00:48:39,150 are going to move in contact space, it's a different thing. 800 00:48:39,170 --> 00:48:41,790 Applying this force put 801 00:48:41,810 --> 00:48:45,740 [sic] the whole structure under a constraint, and you have 802 00:48:45,760 --> 00:48:49,950 to account for these constraints and compute the normals to 803 00:48:49,970 --> 00:48:54,490 find reaction forces in order to control the forces being 804 00:48:54,510 --> 00:48:55,660 applied to the environment. 805 00:48:55,680 --> 00:49:01,279 So we need to deal with force control, and we need to 806 00:49:01,300 --> 00:49:06,160 stabilize the transition from free space to contact space-- 807 00:49:06,180 --> 00:49:09,180 so that is, we need to be able to control these contact 808 00:49:09,060 --> 00:49:10,670 forces while moving. 809 00:49:10,690 --> 00:49:12,300 And what is nice-- 810 00:49:12,320 --> 00:49:16,000 If you do this in the Cartesian space or in the task space, 811 00:49:16,020 --> 00:49:21,880 you will be able to just merge the two forces together to 812 00:49:21,900 --> 00:49:27,700 control the robot directly to produce motion and contact. 813 00:49:27,720 --> 00:49:31,859 I mentioned that we will discuss some other topics. 814 00:49:31,880 --> 00:49:36,290 There will be a guest lecturer that will talk about vision 815 00:49:36,310 --> 00:49:41,870 in robotics, and we will also discuss issues about design. 816 00:49:41,890 --> 00:49:44,890 I would like to discuss a little bit some issues related to 817 00:49:44,910 --> 00:49:51,490 safety and the issues related to making robots lighter with 818 00:49:51,510 --> 00:50:01,960 structures that become safer and flexible to work in a human 819 00:50:01,980 --> 00:50:02,980 environment. 820 00:50:02,980 --> 00:50:08,380 Also, we need to discuss a little bit about motion planning, 821 00:50:08,400 --> 00:50:11,450 and especially if we are going to insert those robots in the 822 00:50:11,470 --> 00:50:14,140 human environment, we need reactive planning. 823 00:50:14,160 --> 00:50:17,730 And there is-- 824 00:50:17,750 --> 00:50:22,770 In this video, you can see how a complex robotic system is 825 00:50:22,790 --> 00:50:27,810 reacting here to obstacles that are coming at it. 826 00:50:27,830 --> 00:50:30,140 It's moving away from those obstacles. 827 00:50:30,160 --> 00:50:35,560 And this is simply done by using the same type of concept 828 00:50:35,580 --> 00:50:38,980 that I described for moving to a goal position. 829 00:50:39,000 --> 00:50:42,980 I said we can create an attractive potential energy. 830 00:50:43,000 --> 00:50:46,900 In here, to create this motion, we are creating a repulsive 831 00:50:46,920 --> 00:50:48,480 potential energy. 832 00:50:48,500 --> 00:50:53,410 So if you put two magnets north-north, they will repel, and 833 00:50:53,430 --> 00:50:54,960 this is exactly what is happening. 834 00:50:54,980 --> 00:50:59,030 We are creating artificially those forces and making the 835 00:50:59,050 --> 00:51:00,800 robot move away. 836 00:51:00,820 --> 00:51:07,010 But if you have a global plan, you need to deal with the 837 00:51:07,030 --> 00:51:10,500 full plan so that you will not reach a local minima, and we 838 00:51:10,520 --> 00:51:14,460 then apply this technique to modify all the intermediate 839 00:51:14,480 --> 00:51:18,740 configurations so that a robot like this would be moving to 840 00:51:18,760 --> 00:51:22,470 a goal position through this plan. 841 00:51:22,490 --> 00:51:25,950 And when an obstacle or when the world is changed, the 842 00:51:25,970 --> 00:51:29,689 trajectory is moving, the hand is moving, and all of this is 843 00:51:29,710 --> 00:51:36,810 happening in real time, which is amazing for a robot with 844 00:51:36,830 --> 00:51:39,140 this number of degrees of freedom. 845 00:51:39,160 --> 00:51:40,730 The reason is-- 846 00:51:40,750 --> 00:51:43,940 I'm not sure if you're familiar with the problem. 847 00:51:43,960 --> 00:51:45,490 Oh, sorry, let me just-- 848 00:51:45,510 --> 00:51:50,510 The problem of motion planning in robotics is exponential in 849 00:51:50,530 --> 00:51:52,250 the number of degrees of freedom. 850 00:51:52,270 --> 00:51:57,730 So usually, if you want to replan a motion when one obstacle 851 00:51:57,750 --> 00:52:02,500 has moved, it would take hours to do for a large number of 852 00:52:02,520 --> 00:52:03,520 degrees of freedom. 853 00:52:03,530 --> 00:52:08,260 And here we are able to do this quite quickly because we are 854 00:52:08,280 --> 00:52:12,890 using the structure and we are using this concept of 855 00:52:12,910 --> 00:52:18,230 repulsive forces that modifies future configurations and 856 00:52:18,250 --> 00:52:19,440 integrate-- 857 00:52:19,460 --> 00:52:24,970 So this is an example showing Indiana Jones going through 858 00:52:24,990 --> 00:52:29,939 the obstacles modified by--in real time, actually, modified 859 00:52:29,960 --> 00:52:40,070 all these configurations. 860 00:52:40,090 --> 00:52:47,950 And all these computations are taking place in real time 861 00:52:47,970 --> 00:52:50,500 because we are using this initial structure and 862 00:52:50,520 --> 00:52:54,940 incrementally modifying all the configurations. 863 00:52:54,960 --> 00:53:01,380 Another topic that I mentioned slightly earlier is the 864 00:53:01,400 --> 00:53:05,080 implication on digital modeling of human. 865 00:53:05,100 --> 00:53:06,980 [sic] And learning from the human 866 00:53:07,000 --> 00:53:12,050 [sic] is very interesting and very attractive to create good 867 00:53:12,070 --> 00:53:14,930 controls for robots, and also understanding the human 868 00:53:14,950 --> 00:53:15,950 motion. 869 00:53:15,950 --> 00:53:20,490 In fact, currently, we are modeling Tai Chi motion and 870 00:53:20,510 --> 00:53:24,610 trying to analyze and learn from those motions. 871 00:53:24,630 --> 00:53:28,830 So you can go from motion capture to copying that motion to 872 00:53:28,850 --> 00:53:30,080 the robot. 873 00:53:30,100 --> 00:53:33,279 But in fact, you will end up with just one example of 874 00:53:33,300 --> 00:53:34,910 motion. 875 00:53:34,930 --> 00:53:39,740 The question really is how you can generalize, not just one 876 00:53:39,760 --> 00:53:40,950 specific motion. 877 00:53:40,970 --> 00:53:44,220 And to do that, if you want to generalize, you need to take 878 00:53:44,220 --> 00:53:47,899 the motion of the human from motion capture and map it not 879 00:53:47,920 --> 00:53:51,030 to the robot but to a model of the human. 880 00:53:51,050 --> 00:53:54,910 So you need to model the human, and modeling the human 881 00:53:54,930 --> 00:53:57,680 involves modeling the skeletal system. 882 00:53:57,700 --> 00:54:01,160 So we worked on this problem, so now you have-- 883 00:54:01,180 --> 00:54:04,359 This is a new kind of robot system with many degrees of 884 00:54:04,380 --> 00:54:08,380 freedom, about 79 degrees of freedom. 885 00:54:08,400 --> 00:54:11,150 And all of this is modeled through the same model of 886 00:54:10,910 --> 00:54:12,660 kinematics, dynamics. 887 00:54:12,680 --> 00:54:17,620 And then you can model the actuation, which is muscles now, 888 00:54:17,640 --> 00:54:20,660 and from this, you can learn a lot of things about the 889 00:54:20,680 --> 00:54:21,680 model. 890 00:54:21,680 --> 00:54:23,480 And then now you can control it. 891 00:54:23,500 --> 00:54:24,920 You can control-- 892 00:54:24,940 --> 00:54:26,410 This is synthesized motion. 893 00:54:26,430 --> 00:54:28,180 And you understand how this is working. 894 00:54:27,980 --> 00:54:31,590 You just guide the task, and then you have the balance 895 00:54:31,610 --> 00:54:38,600 taking place through other minimization of the reminder of 896 00:54:38,620 --> 00:54:42,529 the degrees of freedom. 897 00:54:42,550 --> 00:54:45,320 And then you can take those characteristics and map them to 898 00:54:45,340 --> 00:54:49,190 the robot, scale them to the robot--not copying trajectories 899 00:54:49,210 --> 00:54:50,990 but copying the characteristics of the motion. 900 00:54:51,010 --> 00:54:54,380 It's quite interesting. 901 00:54:54,400 --> 00:54:58,540 We'll discuss also a little bit about haptics. 902 00:54:58,560 --> 00:55:02,150 This will be more developed in Advanced Robotics later in 903 00:55:02,170 --> 00:55:08,290 the spring, but haptics is very important, especially in the 904 00:55:08,310 --> 00:55:10,120 interaction with the environment, the real physical 905 00:55:10,140 --> 00:55:11,140 environment. 906 00:55:11,140 --> 00:55:12,879 So you go and touch-- 907 00:55:12,900 --> 00:55:15,400 And now you have information that allows you to reconstruct 908 00:55:15,350 --> 00:55:23,600 the surface and move over now more descriptions of what you 909 00:55:23,620 --> 00:55:30,630 are touching and what normals you have. 910 00:55:30,650 --> 00:55:38,510 Well, contact. (laughter) Quite amazing. 911 00:55:38,530 --> 00:55:42,330 What is amazing about this is this is done in real time. 912 00:55:42,350 --> 00:55:47,319 So someone from the automotive industry was visiting us and 913 00:55:47,340 --> 00:55:51,970 said, ?Now you have model of skeletal systems and good 914 00:55:51,990 --> 00:55:53,839 models for resolving contact. 915 00:55:53,860 --> 00:55:58,300 Why don't you use them for crashes instead of using dummies, 916 00:55:58,320 --> 00:55:59,490 right? 917 00:55:59,510 --> 00:56:00,510 So-- 918 00:55:59,600 --> 00:56:04,430 Ouch. 919 00:56:04,450 --> 00:56:07,390 But it's only in the model. 920 00:56:07,410 --> 00:56:14,000 Well, there is a lot that will come later, but I will 921 00:56:14,020 --> 00:56:16,530 mention a few things about the interactivity also with 922 00:56:16,550 --> 00:56:20,500 obstacles and how we can deal with those issues and then 923 00:56:20,520 --> 00:56:27,140 combining locomotion--walking with manipulation and dynamic 924 00:56:27,160 --> 00:56:32,810 skills like jumping, landing and all these different things. 925 00:56:32,830 --> 00:56:37,130 Okay, so what is happening here? 926 00:56:37,150 --> 00:56:41,240 Okay, this is a different planet. 927 00:56:41,260 --> 00:56:42,510 I'm going to just-- 928 00:56:42,130 --> 00:56:48,050 Okay, and that will take us to the final, which will be on 929 00:56:48,070 --> 00:56:52,150 Friday, the 21st of March. 930 00:56:52,170 --> 00:56:54,310 And the time is different. 931 00:56:54,330 --> 00:56:55,830 It will be at 12:15. 932 00:56:55,630 --> 00:57:02,010 We will announce it, and hopefully we will have again a 933 00:57:02,030 --> 00:57:04,290 review session before that. 934 00:57:04,310 --> 00:57:06,240 It is on the schedule. 935 00:57:06,260 --> 00:57:10,300 In that review session, we'll review previous finals, and 936 00:57:10,320 --> 00:57:16,630 here you will have enough time to solve some good problems. 937 00:57:16,650 --> 00:57:20,330 So, by the way, not everything that you see in simulation is 938 00:57:20,350 --> 00:57:22,730 valid for the real world. 939 00:57:22,750 --> 00:57:27,070 And let's see How many skiers do we have here? 940 00:57:27,090 --> 00:57:29,380 Skiers. 941 00:57:29,400 --> 00:57:31,640 That's all? 942 00:57:31,660 --> 00:57:32,660 I would have thought-- 943 00:57:32,260 --> 00:57:33,260 Okay. 944 00:57:32,350 --> 00:57:33,350 Okay. 945 00:57:32,440 --> 00:57:39,440 Does it ski? 946 00:57:39,460 --> 00:57:45,560 Let's see the ski. 947 00:57:45,580 --> 00:57:47,330 Don't do that. (laughter) All right. 948 00:57:46,120 --> 00:57:48,370 I will see some of you on Monday. Okay.