WEBVTT

1
00:00:00.080 --> 00:00:02.000
<v Speaker 1>You know when you look at an old school wind

2
00:00:02.080 --> 00:00:06.360
<v Speaker 1>up toy, like one of those little tin cars, there's

3
00:00:06.400 --> 00:00:09.560
<v Speaker 1>this illusion of intelligence. You wind the key, you set

4
00:00:09.599 --> 00:00:12.160
<v Speaker 1>it down on the floor, and it just zips across

5
00:00:12.160 --> 00:00:14.880
<v Speaker 1>the room. It looks, I don't know, purposeful, right.

6
00:00:14.960 --> 00:00:18.199
<v Speaker 2>It has a trajectory. It's interacting with the physical world

7
00:00:18.239 --> 00:00:20.839
<v Speaker 2>in a very literal sense, just moving its mass from

8
00:00:20.879 --> 00:00:21.760
<v Speaker 2>point A to point B.

9
00:00:21.920 --> 00:00:26.359
<v Speaker 1>But it's completely blind. Oh, it's just releasing potential energy

10
00:00:26.440 --> 00:00:29.600
<v Speaker 1>from a spring on a fixed mechanical path. Yeah, I mean,

11
00:00:29.640 --> 00:00:31.399
<v Speaker 1>somebody drops a shoe in front of it. It just

12
00:00:31.480 --> 00:00:35.119
<v Speaker 1>crashes into the leather and spins its little wheels until

13
00:00:35.159 --> 00:00:35.840
<v Speaker 1>the spring dies.

14
00:00:35.960 --> 00:00:38.200
<v Speaker 2>Yeah, it has absolutely no idea the shoe is there.

15
00:00:38.280 --> 00:00:42.079
<v Speaker 2>It's not making choices exactly. Well, it's more than just blind, really,

16
00:00:42.119 --> 00:00:46.200
<v Speaker 2>it's completely agnostic to reality. It's a machine, sure, but

17
00:00:46.280 --> 00:00:50.000
<v Speaker 2>it lacks any mechanism to perceive its environment or alter

18
00:00:50.079 --> 00:00:52.039
<v Speaker 2>its behavior based on what it finds.

19
00:00:52.119 --> 00:00:55.479
<v Speaker 1>And crossing that massive evolutionary gap from a blind wind

20
00:00:55.560 --> 00:00:59.719
<v Speaker 1>up toy to a machine that can actually perceive that shoe, stop,

21
00:01:00.000 --> 00:01:02.880
<v Speaker 1>think and navigate around it. That takes an incredible amount

22
00:01:02.880 --> 00:01:03.840
<v Speaker 1>of engineering.

23
00:01:03.439 --> 00:01:04.799
<v Speaker 2>An unbelievable amount yeah.

24
00:01:04.840 --> 00:01:08.319
<v Speaker 1>Yeah, today we are exploring exactly how to make that leap.

25
00:01:09.040 --> 00:01:11.719
<v Speaker 1>Welcome to the deep dive where we are going under

26
00:01:11.760 --> 00:01:16.599
<v Speaker 1>the hood of Lent and Joseph's manual Learning Robotics using Python.

27
00:01:16.719 --> 00:01:18.519
<v Speaker 2>It's such a great source to dive into.

28
00:01:18.799 --> 00:01:21.000
<v Speaker 1>We're going to see what it actually takes to build

29
00:01:21.120 --> 00:01:25.959
<v Speaker 1>a differential drive service robot, specifically a robotic waiter.

30
00:01:26.200 --> 00:01:28.560
<v Speaker 2>And it's a brilliant journey for you to follow along

31
00:01:28.560 --> 00:01:31.920
<v Speaker 2>with because it forces you to synthesize disciplines. You can't

32
00:01:31.959 --> 00:01:34.079
<v Speaker 2>just be a programmer, and you can't just be a mechanic.

33
00:01:34.239 --> 00:01:37.640
<v Speaker 2>You have to bridge the physical world and the digital world.

34
00:01:37.799 --> 00:01:40.599
<v Speaker 1>Okay, let's unpack this because before we can even think

35
00:01:40.599 --> 00:01:44.000
<v Speaker 1>about building our robotic waiter, we really need to define

36
00:01:44.319 --> 00:01:48.000
<v Speaker 1>what separates a tree robot from just, you know, a

37
00:01:48.040 --> 00:01:51.159
<v Speaker 1>complex machine. You really do, and honestly, we have to

38
00:01:51.239 --> 00:01:53.480
<v Speaker 1>fight through a century of science fiction myths to get

39
00:01:53.480 --> 00:01:54.560
<v Speaker 1>to a working definition.

40
00:01:54.640 --> 00:01:58.239
<v Speaker 2>Oh absolutely. Even the origin of the word itself sets

41
00:01:58.319 --> 00:02:01.319
<v Speaker 2>up this expectation that engineers have been wrestling with ever since.

42
00:02:01.359 --> 00:02:04.760
<v Speaker 2>I mean, the term robot didn't originate in an MIT laboratory.

43
00:02:05.400 --> 00:02:08.280
<v Speaker 2>It was coined in a theater in nineteen twenty a

44
00:02:08.400 --> 00:02:11.919
<v Speaker 2>check writer named Carol Kappek wrote a play called ru Are.

45
00:02:12.159 --> 00:02:15.240
<v Speaker 1>Which stands for Rossum's Universal Robots right exactly.

46
00:02:15.520 --> 00:02:17.039
<v Speaker 2>He was trying to come up with a term for

47
00:02:17.240 --> 00:02:21.680
<v Speaker 2>artificial human workers, and his brother Joseph actually suggested robode,

48
00:02:21.800 --> 00:02:22.560
<v Speaker 2>which carries a.

49
00:02:22.560 --> 00:02:25.319
<v Speaker 1>Very specific cultural weight, doesn't it very much?

50
00:02:25.360 --> 00:02:28.879
<v Speaker 2>So it stems from the word robota in Czech and Slovak,

51
00:02:29.319 --> 00:02:33.919
<v Speaker 2>which translates to work or more accurately surf labor or

52
00:02:34.080 --> 00:02:35.159
<v Speaker 2>hard drudgery.

53
00:02:35.319 --> 00:02:35.639
<v Speaker 1>Wow.

54
00:02:36.039 --> 00:02:39.280
<v Speaker 2>So right from its birth, the concept implies a machine

55
00:02:39.319 --> 00:02:43.159
<v Speaker 2>designed to take on the heavy, undesirable lifting for humanity.

56
00:02:43.319 --> 00:02:46.280
<v Speaker 1>Though I mean spoiler alert for a play from the

57
00:02:46.319 --> 00:02:51.120
<v Speaker 1>nineteen twenties, those robotic serfs eventually revolt and wipe out humanity.

58
00:02:50.759 --> 00:02:54.000
<v Speaker 2>A narrative trope that has completely dominated our perception of

59
00:02:54.080 --> 00:02:57.240
<v Speaker 2>robotics ever since. But you know, if we strip away

60
00:02:57.240 --> 00:03:00.439
<v Speaker 2>the Hollywood dramatization and look for a functional, modern defy definition,

61
00:03:00.680 --> 00:03:04.080
<v Speaker 2>roboticists like Maji Jamataric offer a much clearer lens.

62
00:03:04.159 --> 00:03:04.960
<v Speaker 1>Okay, what's her tick?

63
00:03:05.120 --> 00:03:07.840
<v Speaker 2>She defines a robot as an autonomous system existing in

64
00:03:07.879 --> 00:03:10.840
<v Speaker 2>the physical world, able to sense its environment and act

65
00:03:10.879 --> 00:03:11.319
<v Speaker 2>on it to.

66
00:03:11.319 --> 00:03:14.639
<v Speaker 1>Achieve goals, which fundamentally disqualifies my washing machine.

67
00:03:14.759 --> 00:03:15.360
<v Speaker 2>Yes it does.

68
00:03:15.520 --> 00:03:17.800
<v Speaker 1>My washing machine doesn't sense anything. It just runs a

69
00:03:17.800 --> 00:03:21.080
<v Speaker 1>pre programmed timer, much like the tin wind up toy. Yeah,

70
00:03:21.120 --> 00:03:24.599
<v Speaker 1>but I was thinking about this definition, and it also

71
00:03:24.680 --> 00:03:28.960
<v Speaker 1>seems to disqualify something incredibly smart, like my email spam filter.

72
00:03:29.159 --> 00:03:30.919
<v Speaker 2>Ah, that's an interesting point.

73
00:03:30.800 --> 00:03:34.919
<v Speaker 1>Right, because a spam filter learns, it adapts, it acts

74
00:03:35.000 --> 00:03:38.159
<v Speaker 1>autonomously to keep junk out of my inbox. Yeah, but

75
00:03:38.240 --> 00:03:40.719
<v Speaker 1>it doesn't live in the physical world. The data is

76
00:03:40.759 --> 00:03:43.840
<v Speaker 1>just perfectly spoon fed to it in a stable digital environment. Right.

77
00:03:44.560 --> 00:03:47.960
<v Speaker 1>Is the sheer chaos of a messy physical bedroom what

78
00:03:48.159 --> 00:03:51.120
<v Speaker 1>makes building a true robot so uniquely difficult.

79
00:03:51.280 --> 00:03:53.919
<v Speaker 2>That is the absolute core of the challenge. A spam

80
00:03:53.960 --> 00:03:56.719
<v Speaker 2>filter never has to worry about a sudden gust of wind,

81
00:03:57.080 --> 00:03:59.680
<v Speaker 2>or the floor being slippery, or a dog running by

82
00:04:00.000 --> 00:04:02.400
<v Speaker 2>exactly or the lighting in the room changing and blinding

83
00:04:02.400 --> 00:04:06.159
<v Speaker 2>its camera. The physical world is wildly unpredictable. The friction

84
00:04:06.360 --> 00:04:09.039
<v Speaker 2>on a carpet is different from the friction on hardwood.

85
00:04:09.639 --> 00:04:13.000
<v Speaker 2>Sensing that unpredictable chaos, making sense of it, and then

86
00:04:13.039 --> 00:04:16.360
<v Speaker 2>physically exerting force upon it, that continuous loop is what

87
00:04:16.519 --> 00:04:19.959
<v Speaker 2>separates true robotics from pure software engineering.

88
00:04:20.199 --> 00:04:23.800
<v Speaker 1>So if a true robot must sense an act in

89
00:04:23.879 --> 00:04:27.160
<v Speaker 1>this chaotic physical space, how do we build a brain

90
00:04:27.240 --> 00:04:31.199
<v Speaker 1>that can process all that messy sensory information and decide

91
00:04:31.199 --> 00:04:31.920
<v Speaker 1>what to do well.

92
00:04:31.920 --> 00:04:34.360
<v Speaker 2>This brings us to the fundamental anatomy of a robot.

93
00:04:34.759 --> 00:04:37.560
<v Speaker 2>You have the physical body. You have sensors which measure

94
00:04:37.560 --> 00:04:39.920
<v Speaker 2>the environment to create what we call a digital state.

95
00:04:40.519 --> 00:04:42.879
<v Speaker 2>You have effectors or the motors and arms that do

96
00:04:42.920 --> 00:04:47.160
<v Speaker 2>the actual moving and sitting between the sensors and the effectors,

97
00:04:47.160 --> 00:04:48.439
<v Speaker 2>you have the controllers.

98
00:04:48.639 --> 00:04:50.360
<v Speaker 1>The brain, precisely the brain.

99
00:04:50.720 --> 00:04:53.839
<v Speaker 2>And giving a machine a brain that could handle physical

100
00:04:53.879 --> 00:04:57.600
<v Speaker 2>chaos really started around nineteen sixty six with a robot

101
00:04:57.680 --> 00:05:02.480
<v Speaker 2>developed at the Stanford Research Institute famously named Shaky. Shaky, Yeah, Shaky.

102
00:05:02.680 --> 00:05:05.279
<v Speaker 2>It was a milestone because it didn't just execute a

103
00:05:05.360 --> 00:05:08.199
<v Speaker 2>list of hard coded commands. It could actually reason. How So,

104
00:05:08.399 --> 00:05:11.040
<v Speaker 2>if you gave Shakey a high level command, it could

105
00:05:11.120 --> 00:05:15.439
<v Speaker 2>break that complex goal down into smaller, solvable intermediate steps.

106
00:05:15.800 --> 00:05:18.199
<v Speaker 2>I mean, trying to get Shaky to navigate around literal

107
00:05:18.199 --> 00:05:21.000
<v Speaker 2>blocks in a room actually led researchers to invent the

108
00:05:21.040 --> 00:05:22.199
<v Speaker 2>a star search algorithm.

109
00:05:22.240 --> 00:05:25.879
<v Speaker 1>Wait, really, the same pathfinding tool used in computer science today,

110
00:05:26.040 --> 00:05:26.680
<v Speaker 1>the very same.

111
00:05:26.759 --> 00:05:30.720
<v Speaker 2>It's foundational. But Shaky got its name for a reason.

112
00:05:31.199 --> 00:05:33.920
<v Speaker 2>It was incredibly slow and jerky.

113
00:05:34.000 --> 00:05:35.560
<v Speaker 1>Oh, because it had to think so much.

114
00:05:35.800 --> 00:05:39.800
<v Speaker 2>Yes, it would move a tiny bit, stop, think for

115
00:05:39.839 --> 00:05:42.040
<v Speaker 2>a very long time, and then move a tiny bit more.

116
00:05:42.600 --> 00:05:46.439
<v Speaker 2>Trying to plan every single movement perfectly just isn't practical.

117
00:05:46.560 --> 00:05:49.360
<v Speaker 1>No, especially in a dynamic environment with people walking.

118
00:05:49.120 --> 00:05:53.720
<v Speaker 2>Around exactly, And that tension led to the development of

119
00:05:53.800 --> 00:05:57.839
<v Speaker 2>different control paradigms. You have the hierarchical or deliberative paradigm,

120
00:05:57.839 --> 00:05:58.800
<v Speaker 2>which is what Shakey used.

121
00:05:58.839 --> 00:05:59.839
<v Speaker 1>Okay, what does that look like.

122
00:06:00.120 --> 00:06:03.360
<v Speaker 2>The sequence is sense the world, plan a route, then act.

123
00:06:03.519 --> 00:06:07.120
<v Speaker 2>It's very intelligent, but computing that plan takes critical time.

124
00:06:07.759 --> 00:06:10.519
<v Speaker 2>On the opposite end, you have the reactive paradigm. This

125
00:06:10.600 --> 00:06:13.839
<v Speaker 2>is simply sense then act. There is no planning, just

126
00:06:13.920 --> 00:06:14.879
<v Speaker 2>immediate response.

127
00:06:15.199 --> 00:06:16.759
<v Speaker 1>Let me see if I have this right, because I

128
00:06:16.759 --> 00:06:19.480
<v Speaker 1>was trying to map this onto human biology all reading. Sure,

129
00:06:19.560 --> 00:06:22.120
<v Speaker 1>if I accidentally brush my hand against a hont stove,

130
00:06:22.720 --> 00:06:26.959
<v Speaker 1>I don't stop sense the temperature, formulate a spatial plan

131
00:06:27.000 --> 00:06:29.720
<v Speaker 1>to move my arm, and then execute the movement.

132
00:06:29.879 --> 00:06:31.079
<v Speaker 2>No, you'd burn your hand.

133
00:06:31.079 --> 00:06:35.399
<v Speaker 1>Right, My spinal cord just bypasses my brain entirely and

134
00:06:35.480 --> 00:06:37.639
<v Speaker 1>yanks my hand back in a fraction of a second.

135
00:06:38.240 --> 00:06:40.800
<v Speaker 1>Is reactive control. Basically a digital reflex.

136
00:06:41.040 --> 00:06:44.160
<v Speaker 2>A spinal reflex is a phenomenal way to picture it, actually,

137
00:06:44.519 --> 00:06:49.720
<v Speaker 2>but with one major caveat A robot's reflex is completely programmable.

138
00:06:50.000 --> 00:06:52.360
<v Speaker 2>And if we connect this to the bigger picture of

139
00:06:52.439 --> 00:06:54.560
<v Speaker 2>the robotic waiter we are trying to build from the

140
00:06:54.560 --> 00:06:58.519
<v Speaker 2>source material, you quickly realize you can't rely purely on

141
00:06:58.519 --> 00:06:59.279
<v Speaker 2>one paradigm.

142
00:06:59.279 --> 00:06:59.959
<v Speaker 1>You need accommodate.

143
00:07:00.240 --> 00:07:01.199
<v Speaker 2>You need a hybrid model.

144
00:07:01.279 --> 00:07:03.120
<v Speaker 1>Yes, because it has to be smart enough to find

145
00:07:03.160 --> 00:07:06.000
<v Speaker 1>the table, but fast enough not to run over a customer.

146
00:07:06.120 --> 00:07:11.240
<v Speaker 2>Exactly that. The robot needs a hierarchical deliberative plan to

147
00:07:11.319 --> 00:07:13.959
<v Speaker 2>note that payble four is across the dining room, to

148
00:07:14.000 --> 00:07:16.639
<v Speaker 2>map an efficient path around the stationary booths, and to

149
00:07:16.720 --> 00:07:20.360
<v Speaker 2>calculate an arrival time. But if a patron suddenly steps

150
00:07:20.360 --> 00:07:22.639
<v Speaker 2>backward out of their chair holding a tray of drinks,

151
00:07:23.040 --> 00:07:25.399
<v Speaker 2>the robot does not have three seconds to sit there

152
00:07:25.439 --> 00:07:27.199
<v Speaker 2>and recalculate a new global map.

153
00:07:27.240 --> 00:07:27.920
<v Speaker 1>It would crash.

154
00:07:28.160 --> 00:07:30.720
<v Speaker 2>It needs that reactive reflex to slam on the brakes

155
00:07:30.720 --> 00:07:33.839
<v Speaker 2>of the millisecond it's light ar detects a sudden obstacle.

156
00:07:34.639 --> 00:07:38.360
<v Speaker 2>The hybrid model layers these systems, a slow smart planner

157
00:07:38.480 --> 00:07:41.560
<v Speaker 2>running in the background and a fast reactive safety system

158
00:07:41.639 --> 00:07:42.600
<v Speaker 2>running in the foreground.

159
00:07:42.600 --> 00:07:45.360
<v Speaker 1>All right, so we understand this hybrid brain. But a

160
00:07:45.399 --> 00:07:49.680
<v Speaker 1>brain needs a physical vessel to carry the soup. If

161
00:07:49.680 --> 00:07:52.839
<v Speaker 1>we are actually engineering this robotic waiter, how do we

162
00:07:52.920 --> 00:07:54.839
<v Speaker 1>design the physical machine from scratch?

163
00:07:55.079 --> 00:07:58.920
<v Speaker 2>Well, you start by defining your hard constraints. Engineering is

164
00:07:58.959 --> 00:08:02.839
<v Speaker 2>all about solving specific problems. For this project, the robot

165
00:08:02.879 --> 00:08:05.639
<v Speaker 2>needs to carry food, so the text specifies a payload

166
00:08:05.680 --> 00:08:07.839
<v Speaker 2>capacity of up to five kilograms.

167
00:08:07.920 --> 00:08:08.240
<v Speaker 1>Okay.

168
00:08:08.360 --> 00:08:10.759
<v Speaker 2>It needs to travel at roughly a human walking base

169
00:08:10.839 --> 00:08:13.839
<v Speaker 2>to not be disruptive, which means a target speed between

170
00:08:13.879 --> 00:08:15.680
<v Speaker 2>er point twenty five and one meter per second.

171
00:08:15.759 --> 00:08:16.399
<v Speaker 1>That makes sense.

172
00:08:16.519 --> 00:08:19.279
<v Speaker 2>It also needs more than three centimeters of ground clearance

173
00:08:19.319 --> 00:08:23.000
<v Speaker 2>to get over doorway thresholds without getting stuck. And crucially,

174
00:08:23.120 --> 00:08:25.040
<v Speaker 2>it needs to be relatively low cost.

175
00:08:25.279 --> 00:08:27.639
<v Speaker 1>And the mechanical solution the book walks us through is

176
00:08:28.040 --> 00:08:31.959
<v Speaker 1>a differential drive system. Yes, it's modeled after the turtlebot architecture.

177
00:08:32.440 --> 00:08:34.200
<v Speaker 1>If you picture it, it looks kind of like a

178
00:08:34.240 --> 00:08:38.000
<v Speaker 1>three tiered wedding cake made of metal plates, a base plate,

179
00:08:38.320 --> 00:08:40.919
<v Speaker 1>a middle plate, and a top plate. That's a good visual,

180
00:08:41.399 --> 00:08:44.080
<v Speaker 1>But the drive system is what caught my eye. It

181
00:08:44.120 --> 00:08:47.120
<v Speaker 1>only has two powered wheels on the left and right sides,

182
00:08:47.720 --> 00:08:51.080
<v Speaker 1>and then these unpowered castor wheels like you'd find on

183
00:08:51.159 --> 00:08:53.200
<v Speaker 1>the bottom of an office chair on the front and back,

184
00:08:53.559 --> 00:08:54.840
<v Speaker 1>just to keep it from tipping over.

185
00:08:55.200 --> 00:08:59.440
<v Speaker 2>Differential drive is brilliant in its simplicity. By independently controlling

186
00:08:59.559 --> 00:09:02.080
<v Speaker 2>just the yeat and direction of those two side wheels,

187
00:09:02.240 --> 00:09:03.840
<v Speaker 2>you can steer the robot.

188
00:09:03.480 --> 00:09:06.879
<v Speaker 1>Effortlessly without needing a heavy, complex steering rack like a

189
00:09:06.960 --> 00:09:07.600
<v Speaker 1>car uses.

190
00:09:07.799 --> 00:09:10.559
<v Speaker 2>Exactly, well, you can't just slap any motors onto those

191
00:09:10.559 --> 00:09:12.519
<v Speaker 2>wheels and call it a day. You have to calculate

192
00:09:12.559 --> 00:09:13.759
<v Speaker 2>the physics.

193
00:09:13.279 --> 00:09:16.519
<v Speaker 1>Right, because if you guess wrong, the robot either moves

194
00:09:16.559 --> 00:09:19.399
<v Speaker 1>at its nail's pace or it completely stalls out when

195
00:09:19.440 --> 00:09:20.559
<v Speaker 1>you put a bowl of soup on it.

196
00:09:20.679 --> 00:09:24.159
<v Speaker 2>Exactly, you are managing the tension between speed and torque.

197
00:09:24.240 --> 00:09:26.960
<v Speaker 2>The text walks through the calculations. If you want this

198
00:09:27.080 --> 00:09:29.200
<v Speaker 2>robot to travel at a modest point three to five

199
00:09:29.320 --> 00:09:31.879
<v Speaker 2>meters per second, and you are using wheels with a

200
00:09:31.960 --> 00:09:34.919
<v Speaker 2>nine centimeter diameter, to maintain that ground clearance.

201
00:09:35.159 --> 00:09:35.639
<v Speaker 1>Okay, right.

202
00:09:35.639 --> 00:09:38.279
<v Speaker 2>In the math, the geometry dictates the wheels must spin

203
00:09:38.320 --> 00:09:42.279
<v Speaker 2>at roughly seventy four revelations per minute. The author standardizes

204
00:09:42.320 --> 00:09:45.519
<v Speaker 2>this by selecting an off the shelf eighty rpm motor.

205
00:09:45.639 --> 00:09:49.000
<v Speaker 1>But speed is only half the battle. Torque is the muscle,

206
00:09:49.240 --> 00:09:50.000
<v Speaker 1>right right.

207
00:09:50.320 --> 00:09:54.279
<v Speaker 2>Torque is the twisting force required to overcome inertia and friction.

208
00:09:54.960 --> 00:09:57.720
<v Speaker 2>Think about pushing a heavy box across a room. The

209
00:09:57.799 --> 00:10:00.600
<v Speaker 2>hardest part is always that initial show to get it

210
00:10:00.600 --> 00:10:01.759
<v Speaker 2>to budge from a dead stop.

211
00:10:01.840 --> 00:10:03.440
<v Speaker 1>Yeah, once it's sliding, it's easier.

212
00:10:03.799 --> 00:10:07.320
<v Speaker 2>Our robotic waiter. The chassis plus that five kilogram payload

213
00:10:07.360 --> 00:10:10.960
<v Speaker 2>weighs about fifteen kilograms total. That weight is pressing down on.

214
00:10:10.919 --> 00:10:13.759
<v Speaker 1>The floor, and the floor has friction, a lot of it.

215
00:10:14.039 --> 00:10:16.080
<v Speaker 2>If you factor in a friction coefficient of zero point

216
00:10:16.159 --> 00:10:19.039
<v Speaker 2>six for a standard indoor surface, the math reveals that

217
00:10:19.080 --> 00:10:21.480
<v Speaker 2>the motors need to generate ten point three to two

218
00:10:21.600 --> 00:10:25.399
<v Speaker 2>kilogram centimeters of torque just to break that static friction

219
00:10:25.519 --> 00:10:26.639
<v Speaker 2>and get the robot moving.

220
00:10:26.759 --> 00:10:27.039
<v Speaker 1>Wow.

221
00:10:27.480 --> 00:10:30.120
<v Speaker 2>If you buy a motor with only five kilogram centimeters

222
00:10:30.120 --> 00:10:32.159
<v Speaker 2>of tork, it won't matter how fast it can spin.

223
00:10:32.519 --> 00:10:35.279
<v Speaker 2>The wheels will just hum, heat up, and stall.

224
00:10:35.559 --> 00:10:39.559
<v Speaker 1>That transition from abstract code to high school physics is wild.

225
00:10:40.039 --> 00:10:42.679
<v Speaker 1>You have to literally calculate the friction of the floor,

226
00:10:43.000 --> 00:10:45.360
<v Speaker 1>and once that math is locked in, you have to

227
00:10:45.399 --> 00:10:46.279
<v Speaker 1>design the parts.

228
00:10:46.440 --> 00:10:47.639
<v Speaker 2>Yes, the actual model.

229
00:10:47.679 --> 00:10:51.200
<v Speaker 1>He also uses libricad for the two D bluefrints and

230
00:10:51.360 --> 00:10:54.600
<v Speaker 1>Blender for the three D models. But here's where I

231
00:10:54.639 --> 00:10:58.080
<v Speaker 1>got really confused reading the source. Oh, when it's time

232
00:10:58.080 --> 00:11:00.679
<v Speaker 1>to build the three D model in Blender, the author

233
00:11:00.720 --> 00:11:03.679
<v Speaker 1>doesn't use the mouse. They don't drag and drop shapes.

234
00:11:04.000 --> 00:11:07.960
<v Speaker 1>They open Blenders, Python API, the boopy module and write

235
00:11:08.039 --> 00:11:11.559
<v Speaker 1>lines of Python code just to generate a three D cylinder.

236
00:11:11.679 --> 00:11:12.320
<v Speaker 2>Ah.

237
00:11:12.399 --> 00:11:15.000
<v Speaker 1>Yes, Why would someone write a script to draw a

238
00:11:15.080 --> 00:11:17.840
<v Speaker 1>shape when they could literally just click and drag the

239
00:11:17.879 --> 00:11:19.240
<v Speaker 1>mounts and be done in three seconds.

240
00:11:19.320 --> 00:11:22.080
<v Speaker 2>I know it feels entirely counterintuitive until you consider the

241
00:11:22.120 --> 00:11:25.399
<v Speaker 2>reality of iterative engineering. When you drag a mouse to

242
00:11:25.480 --> 00:11:28.919
<v Speaker 2>draw a cylinder, you are introducing human imperfection. You might

243
00:11:28.960 --> 00:11:31.320
<v Speaker 2>be off by a fraction of a millimeter, right, But

244
00:11:31.440 --> 00:11:35.360
<v Speaker 2>more importantly, a hand drawn shape is static. Programmatic modeling

245
00:11:35.399 --> 00:11:38.600
<v Speaker 2>allows you to completely parameterize your dimensions.

246
00:11:38.159 --> 00:11:39.759
<v Speaker 1>Meaning you link the shape to the.

247
00:11:39.720 --> 00:11:43.159
<v Speaker 2>Math exactly Imagine you build the robot and you realize

248
00:11:43.159 --> 00:11:45.960
<v Speaker 2>your waiter actually needs to carry ten kilograms of food

249
00:11:46.000 --> 00:11:48.159
<v Speaker 2>instead of five. The physics change.

250
00:11:48.200 --> 00:11:49.840
<v Speaker 1>You need bigger motors.

251
00:11:49.639 --> 00:11:52.159
<v Speaker 2>Which require bigger mounts, which means the base plate needs

252
00:11:52.200 --> 00:11:54.840
<v Speaker 2>to be wider. If you drew it by hand, you

253
00:11:54.919 --> 00:11:58.519
<v Speaker 2>have to manually resize the chassis, reposition the wheel axes,

254
00:11:58.799 --> 00:12:00.320
<v Speaker 2>and check every clearance by I.

255
00:12:01.080 --> 00:12:02.240
<v Speaker 1>That sounds like a nightmare.

256
00:12:02.320 --> 00:12:05.080
<v Speaker 2>It is, But if you used Python, you simply open

257
00:12:05.080 --> 00:12:07.480
<v Speaker 2>your script, change the variable payload weight to.

258
00:12:07.480 --> 00:12:10.000
<v Speaker 1>Ten, and run the code and it does it all

259
00:12:10.039 --> 00:12:10.320
<v Speaker 1>for you.

260
00:12:10.600 --> 00:12:15.399
<v Speaker 2>The math automatically recalculates, resizes the cylinder, shifts the wheel mounts,

261
00:12:15.440 --> 00:12:19.039
<v Speaker 2>and spits out a flawless, updated three D model. Plus

262
00:12:19.159 --> 00:12:22.840
<v Speaker 2>the script can automatically export the STL files needed for

263
00:12:22.919 --> 00:12:27.200
<v Speaker 2>simulation without any graphical artifacts. You aren't drawing a picture,

264
00:12:27.279 --> 00:12:29.399
<v Speaker 2>you are engineering a responsive system.

265
00:12:29.480 --> 00:12:32.120
<v Speaker 1>Okay. I love that the code itself becomes the ultimate

266
00:12:32.159 --> 00:12:34.559
<v Speaker 1>precision tool. So now we have our three D model,

267
00:12:34.759 --> 00:12:38.440
<v Speaker 1>perfectly generated by Python, sitting on as differential drive wheels, right.

268
00:12:38.600 --> 00:12:41.120
<v Speaker 1>But to make it actually navigate a virtual restaurant, we

269
00:12:41.240 --> 00:12:44.440
<v Speaker 1>run into the physics of driving, and this introduces kinematics.

270
00:12:44.799 --> 00:12:49.600
<v Speaker 2>Yes. Kinematics is the study of motion, the mathematics of

271
00:12:49.600 --> 00:12:53.200
<v Speaker 2>how things move without worrying about the underlying forces like

272
00:12:53.320 --> 00:12:54.559
<v Speaker 2>mass or friction that we.

273
00:12:54.639 --> 00:12:56.720
<v Speaker 1>Just discussed, so just the geometry of it.

274
00:12:56.799 --> 00:12:59.440
<v Speaker 2>Basically, for our robot, we have to look at its

275
00:12:59.480 --> 00:13:03.440
<v Speaker 2>degrees of freedom or its pose on a flat restaurant floor.

276
00:13:03.639 --> 00:13:06.600
<v Speaker 2>The robot operates in a standard X and y coordinate

277
00:13:06.639 --> 00:13:10.240
<v Speaker 2>system like a graph, but it also has a heading

278
00:13:10.279 --> 00:13:13.240
<v Speaker 2>the direction it's facing, which is represented by the Greek

279
00:13:13.279 --> 00:13:16.759
<v Speaker 2>letter theta, So its pose is always defined by x,

280
00:13:16.919 --> 00:13:17.799
<v Speaker 2>y and theta.

281
00:13:18.200 --> 00:13:21.720
<v Speaker 1>But because it uses that two wheel differential drive, it

282
00:13:21.759 --> 00:13:24.960
<v Speaker 1>has a major movement limitation. The source calls it a

283
00:13:25.000 --> 00:13:28.639
<v Speaker 1>non holonomic constraint, a very intimidating term which sounds like

284
00:13:28.679 --> 00:13:31.120
<v Speaker 1>a terrifying math term, but it just basically just what

285
00:13:31.240 --> 00:13:33.360
<v Speaker 1>I deal with when I try to parallel park my car.

286
00:13:33.480 --> 00:13:35.039
<v Speaker 2>Actually, yes, because my.

287
00:13:35.000 --> 00:13:37.639
<v Speaker 1>Car can't just slide sideways into a spot. I have

288
00:13:37.720 --> 00:13:40.480
<v Speaker 1>to roll forward or backward based on where the wheels

289
00:13:40.480 --> 00:13:42.879
<v Speaker 1>are pointing. I have to do this whole geometric dance

290
00:13:42.919 --> 00:13:46.679
<v Speaker 1>of turning, reversing, and straightening out just to move a

291
00:13:46.720 --> 00:13:49.080
<v Speaker 1>few feet to the left. Face does our robotic waiter

292
00:13:49.120 --> 00:13:51.600
<v Speaker 1>have the same problem, like, if table four is directly

293
00:13:51.639 --> 00:13:54.080
<v Speaker 1>to its left, can it just strafe sideways?

294
00:13:54.200 --> 00:13:57.879
<v Speaker 2>It absolutely cannot, and your parallel parking frustration is the

295
00:13:58.039 --> 00:14:02.159
<v Speaker 2>exact manifestation of a non Holow constraint. The robot cannot

296
00:14:02.240 --> 00:14:04.759
<v Speaker 2>change its position on the x or y axis without

297
00:14:04.759 --> 00:14:07.639
<v Speaker 2>first changing its data it's heading wow. To reach of

298
00:14:07.679 --> 00:14:10.360
<v Speaker 2>that table to its left, it must execute a specific

299
00:14:10.440 --> 00:14:16.200
<v Speaker 2>foundational algorithm for inverse kinematics vrot vahead v rot.

300
00:14:16.240 --> 00:14:18.279
<v Speaker 1>Rotate, drive ahead, rotate again correct.

301
00:14:18.360 --> 00:14:21.200
<v Speaker 2>It rotates in place to face the target coordinates. It

302
00:14:21.279 --> 00:14:23.679
<v Speaker 2>drives ahead in a straight line to reach them, and

303
00:14:23.720 --> 00:14:26.039
<v Speaker 2>then it rotates a second time to face the final

304
00:14:26.120 --> 00:14:29.879
<v Speaker 2>desired orientation, say, facing the customer to deliver the plate.

305
00:14:30.000 --> 00:14:30.320
<v Speaker 1>Got it.

306
00:14:30.679 --> 00:14:33.440
<v Speaker 2>What's fascinating here is the geometry of how it turns.

307
00:14:34.120 --> 00:14:37.159
<v Speaker 2>Because the two wheels are fixed on a single horizontal axis,

308
00:14:37.360 --> 00:14:40.159
<v Speaker 2>anytime the left wheel and right wheels spin at different speeds,

309
00:14:40.360 --> 00:14:42.279
<v Speaker 2>the robot naturally sweeps through an arc.

310
00:14:42.399 --> 00:14:43.559
<v Speaker 1>Okay, I can picture that it.

311
00:14:43.639 --> 00:14:47.200
<v Speaker 2>Rotates around a specific invisible pivot point located somewhere along

312
00:14:47.279 --> 00:14:50.639
<v Speaker 2>that extended axis line. This is called the instantaneous center

313
00:14:50.679 --> 00:14:52.159
<v Speaker 2>of curvature, or ICC.

314
00:14:52.240 --> 00:14:55.080
<v Speaker 1>And the math is constantly crunching the wheel speeds to

315
00:14:55.080 --> 00:14:57.120
<v Speaker 1>figure out where that invisible pivot.

316
00:14:56.799 --> 00:15:01.399
<v Speaker 2>Point is continually forward. Kinematics is the mes asking, given

317
00:15:01.440 --> 00:15:03.720
<v Speaker 2>the current speed of my left wheel and right wheel,

318
00:15:04.080 --> 00:15:07.320
<v Speaker 2>where will my X y and theta be in five seconds?

319
00:15:08.399 --> 00:15:12.360
<v Speaker 2>In Verse, kinematics asks the much harder question, I need

320
00:15:12.399 --> 00:15:16.559
<v Speaker 2>to be at this specific X y and theta Exactly

321
00:15:16.600 --> 00:15:18.879
<v Speaker 2>how fast should I spin my left wheel versus my

322
00:15:18.960 --> 00:15:21.799
<v Speaker 2>right wheel to make my ICC carve the perfect arc

323
00:15:21.879 --> 00:15:22.360
<v Speaker 2>to get there?

324
00:15:22.440 --> 00:15:25.440
<v Speaker 1>But wait to calculate any of that, the robot needs

325
00:15:25.480 --> 00:15:28.000
<v Speaker 1>to know exactly how far its wheels have actually turned

326
00:15:28.000 --> 00:15:30.480
<v Speaker 1>in the real world. It doesn't have GPS indoors, how

327
00:15:30.480 --> 00:15:33.240
<v Speaker 1>does it know it drove two meters and not one ah.

328
00:15:33.360 --> 00:15:36.600
<v Speaker 2>It relies on wheel adometry. Attached to the motors are

329
00:15:36.639 --> 00:15:40.000
<v Speaker 2>sensors called wheel encoders encoders Okay. The text explains that

330
00:15:40.039 --> 00:15:44.320
<v Speaker 2>these encoders output binary signals microscopic digital clicks or steps

331
00:15:44.360 --> 00:15:47.519
<v Speaker 2>as the physical wheel rotates. If you know exactly how

332
00:15:47.559 --> 00:15:49.960
<v Speaker 2>far the wheel travels in one tiny step, you just

333
00:15:50.000 --> 00:15:50.919
<v Speaker 2>count the steps.

334
00:15:50.600 --> 00:15:53.200
<v Speaker 1>And multiply, so it's basically counting its own footsteps in

335
00:15:53.240 --> 00:15:53.600
<v Speaker 1>the dark.

336
00:15:53.919 --> 00:15:56.600
<v Speaker 2>Yes, if you think of the cameras and light oars

337
00:15:56.679 --> 00:16:00.240
<v Speaker 2>as the robot's eyes. The wheel encoders are its inner ear.

338
00:16:00.720 --> 00:16:05.919
<v Speaker 2>They provide proprioception. They give the robot a constant mathematical

339
00:16:05.919 --> 00:16:09.399
<v Speaker 2>awareness of its own body moving through space, feeding real

340
00:16:09.480 --> 00:16:11.759
<v Speaker 2>numbers back into those kinematics equations.

341
00:16:11.840 --> 00:16:13.879
<v Speaker 1>Oh yeah, so we've got the Python three D model.

342
00:16:13.919 --> 00:16:16.200
<v Speaker 1>We have the torque calculations that we have the complex

343
00:16:16.279 --> 00:16:18.200
<v Speaker 1>kinematics and encoders all.

344
00:16:18.039 --> 00:16:19.559
<v Speaker 2>Figured out everything we need.

345
00:16:19.679 --> 00:16:22.600
<v Speaker 1>But before we spend a single dollar ordering real motors

346
00:16:22.679 --> 00:16:26.279
<v Speaker 1>or cutting metal plates, the book has us take all

347
00:16:26.279 --> 00:16:30.600
<v Speaker 1>this logic and plug it into the matrix the simulation.

348
00:16:30.279 --> 00:16:33.519
<v Speaker 2>Which is the most crucial step in modern robotics. Simulation

349
00:16:33.639 --> 00:16:36.480
<v Speaker 2>gives you a sandbox to test your real production ready

350
00:16:36.519 --> 00:16:40.080
<v Speaker 2>coming on virtual hardware. It's low cost and more importantly,

351
00:16:40.240 --> 00:16:41.399
<v Speaker 2>zero physical.

352
00:16:41.039 --> 00:16:42.279
<v Speaker 1>Risk, no broken parts.

353
00:16:42.360 --> 00:16:45.759
<v Speaker 2>Exactly. If your inverse kinematics math is inverted and your

354
00:16:46.000 --> 00:16:48.960
<v Speaker 2>virtual robot accelerates to maximum speed and drive straight into

355
00:16:48.960 --> 00:16:51.320
<v Speaker 2>a virtual wall, you don't have a pile of broken

356
00:16:51.320 --> 00:16:53.559
<v Speaker 2>metal and a fired engineer. You just hit reset on

357
00:16:53.600 --> 00:16:54.120
<v Speaker 2>the simulation.

358
00:16:54.480 --> 00:16:57.480
<v Speaker 1>Here's where it gets really interesting for me. The tools

359
00:16:57.600 --> 00:17:01.399
<v Speaker 1>used for this are gazebo and ros because zebo makes sense.

360
00:17:01.399 --> 00:17:04.119
<v Speaker 1>It's the three D physics simulator. It renders the restaurant,

361
00:17:04.160 --> 00:17:07.559
<v Speaker 1>the tables, and calculates the virtual gravity. But ROS, the

362
00:17:07.640 --> 00:17:11.079
<v Speaker 1>robot operating system, is what actually runs the brain, although

363
00:17:11.319 --> 00:17:13.720
<v Speaker 1>the text makes a point to say it isn't actually

364
00:17:13.759 --> 00:17:17.799
<v Speaker 1>an operating system like Windows or Linux. It's a meta

365
00:17:17.880 --> 00:17:20.079
<v Speaker 1>operating system and a distributed framework.

366
00:17:20.160 --> 00:17:22.960
<v Speaker 2>That's a vital distinction ROS. It's on top of a

367
00:17:22.960 --> 00:17:27.920
<v Speaker 2>traditional operating system. At its core, ROS is a communication framework.

368
00:17:28.640 --> 00:17:32.960
<v Speaker 2>A modern robot runs dozens of separate executable programs simultaneously,

369
00:17:33.000 --> 00:17:36.359
<v Speaker 2>one for vision, one for driving, one for mapping. ROS

370
00:17:36.440 --> 00:17:40.359
<v Speaker 2>calls these individual programs nodes nodes. Yes, you have a

371
00:17:40.359 --> 00:17:43.119
<v Speaker 2>central directory called the ROS master that keeps track of

372
00:17:43.119 --> 00:17:45.960
<v Speaker 2>what nodes are running. But the actual data sharing happens

373
00:17:45.960 --> 00:17:49.079
<v Speaker 2>through a brilliant published and subscribe model using data streams

374
00:17:49.079 --> 00:17:49.880
<v Speaker 2>called topics.

375
00:17:50.079 --> 00:17:52.200
<v Speaker 1>So this publish and subscribe thing, I'm trying to wrap

376
00:17:52.200 --> 00:17:54.480
<v Speaker 1>my head around it. If a wheel encoder has new

377
00:17:54.519 --> 00:17:57.519
<v Speaker 1>odometry data, does it just shout it out? Is it

378
00:17:57.559 --> 00:17:59.839
<v Speaker 1>sort of like a social media feed where a node

379
00:18:00.440 --> 00:18:03.400
<v Speaker 1>tweets its speed to a topic and hope someone else

380
00:18:03.440 --> 00:18:03.960
<v Speaker 1>is reading it.

381
00:18:04.039 --> 00:18:07.720
<v Speaker 2>That is an incredibly useful way to conceptualize it. The

382
00:18:07.720 --> 00:18:11.759
<v Speaker 2>wheel encoder node publishes its data to a topic named,

383
00:18:12.000 --> 00:18:16.079
<v Speaker 2>for example, slash odometry. It has absolutely no idea who

384
00:18:16.160 --> 00:18:17.960
<v Speaker 2>is reading it, or if anyone who is reading it

385
00:18:18.000 --> 00:18:18.279
<v Speaker 2>at all.

386
00:18:18.400 --> 00:18:18.880
<v Speaker 1>Oh wow.

387
00:18:19.079 --> 00:18:22.839
<v Speaker 2>Conversely, your motor control node needs to know how fast

388
00:18:22.839 --> 00:18:26.000
<v Speaker 2>the robot is moving, so it subscribes to the slash

389
00:18:26.000 --> 00:18:28.440
<v Speaker 2>o doomitory topic. It essentially follows.

390
00:18:28.039 --> 00:18:29.880
<v Speaker 1>That feed, just waiting for updates. Yeah.

391
00:18:30.240 --> 00:18:32.880
<v Speaker 2>Whenever new data appears on the topic, the motor node

392
00:18:32.880 --> 00:18:36.000
<v Speaker 2>reads it and adjusts the power. The two nodes never

393
00:18:36.079 --> 00:18:38.400
<v Speaker 2>speak directly to each other. They just interact with the feed.

394
00:18:38.480 --> 00:18:40.799
<v Speaker 1>They don't even need to know the other one exists exactly.

395
00:18:40.920 --> 00:18:44.519
<v Speaker 2>And this decoupled architecture is what makes ros so powerful.

396
00:18:44.839 --> 00:18:47.640
<v Speaker 2>Because the nodes are completely independent, they don't even need

397
00:18:47.680 --> 00:18:51.440
<v Speaker 2>to be written in the same programming language. Wait really, Yeah,

398
00:18:51.839 --> 00:18:54.640
<v Speaker 2>your wheel encoder node could be a simple Python script

399
00:18:54.720 --> 00:18:58.960
<v Speaker 2>running on a tiny Raspberry Pie strapped to the robot's base. Meanwhile,

400
00:18:59.000 --> 00:19:02.200
<v Speaker 2>your complex path planning node could be a heavy performance

401
00:19:02.200 --> 00:19:05.880
<v Speaker 2>intensive C plus plus program running on a massive server

402
00:19:05.960 --> 00:19:09.599
<v Speaker 2>in the restaurant's back office, communicating over Wi Fi. It's

403
00:19:09.640 --> 00:19:11.599
<v Speaker 2>a decentralized peer to peer.

404
00:19:11.440 --> 00:19:14.240
<v Speaker 1>Network, which means you can easily borrow code from other people.

405
00:19:14.319 --> 00:19:18.480
<v Speaker 2>Right, that's the real magic code reuse. A university team

406
00:19:18.559 --> 00:19:21.960
<v Speaker 2>in Tokyo might write a brilliant, highly optimized node for

407
00:19:22.000 --> 00:19:26.200
<v Speaker 2>avoiding dynamic obstacles. Because their node just subscribes to standard

408
00:19:26.279 --> 00:19:30.240
<v Speaker 2>laser scan topics and publishes to standard velocity topics. You

409
00:19:30.279 --> 00:19:33.119
<v Speaker 2>can download their open source code and drop it straight into.

410
00:19:33.000 --> 00:19:34.720
<v Speaker 1>Your waiter robot and it just works.

411
00:19:34.880 --> 00:19:37.359
<v Speaker 2>As long as the topic names match, it works instantly.

412
00:19:37.519 --> 00:19:41.559
<v Speaker 1>It's an entire collaborative ecosystem operating under the hood. So

413
00:19:41.599 --> 00:19:43.680
<v Speaker 1>what does this all mean for you listening? Let's recap

414
00:19:43.720 --> 00:19:44.240
<v Speaker 1>the journey.

415
00:19:44.319 --> 00:19:44.839
<v Speaker 2>Let's do it.

416
00:19:45.079 --> 00:19:48.359
<v Speaker 1>We started with a nineteen twenties play about artificial surf labor.

417
00:19:49.079 --> 00:19:52.680
<v Speaker 1>We defined what a robot actually is, a machine that

418
00:19:52.759 --> 00:19:55.759
<v Speaker 1>must sense an act in the physical world. We gave

419
00:19:55.799 --> 00:19:58.960
<v Speaker 1>it a hybrid control system that can deliberatively plan a

420
00:19:59.079 --> 00:20:02.119
<v Speaker 1>route while reflexively hitting the brakes.

421
00:20:02.079 --> 00:20:03.519
<v Speaker 2>A digital spinal cord.

422
00:20:03.640 --> 00:20:06.720
<v Speaker 1>Yes, we calculated the physical torque needed to move a

423
00:20:06.759 --> 00:20:10.720
<v Speaker 1>tray of food, parameterized a three D model using Python scripts,

424
00:20:10.960 --> 00:20:14.880
<v Speaker 1>and solve the parallel parking geometry of non holonomic kinematics,

425
00:20:15.279 --> 00:20:18.079
<v Speaker 1>and Finally, we plug all those independent nodes into the

426
00:20:18.240 --> 00:20:21.880
<v Speaker 1>ros published and subscribe matrix to simulate a working waiter.

427
00:20:22.079 --> 00:20:25.559
<v Speaker 2>It is a remarkable synthesis. You are stacking mechanical physics,

428
00:20:25.599 --> 00:20:29.319
<v Speaker 2>computer science, and geometry to create something that ultimately feels

429
00:20:29.400 --> 00:20:30.119
<v Speaker 2>almost alive.

430
00:20:30.240 --> 00:20:32.359
<v Speaker 1>And the practical takeaway here is that the next time

431
00:20:32.359 --> 00:20:35.000
<v Speaker 1>you see a food delivery robot rolling down the sidewalk,

432
00:20:35.079 --> 00:20:37.759
<v Speaker 1>or even just watch your roombow vacuuming your hallway, you

433
00:20:37.759 --> 00:20:39.640
<v Speaker 1>won't just see a plastic shell roaming around.

434
00:20:39.680 --> 00:20:40.799
<v Speaker 2>Now you'll see the matrix.

435
00:20:41.119 --> 00:20:44.400
<v Speaker 1>You will be able to visualize the hidden architecture, the

436
00:20:44.519 --> 00:20:49.720
<v Speaker 1>kinematics constantly calculating instantaneous pivot points, the invisible nodes tweeting

437
00:20:49.799 --> 00:20:52.480
<v Speaker 1>data back and forth, and the hybrid brain fighting to

438
00:20:52.519 --> 00:20:54.279
<v Speaker 1>survive the chaos of the physical world.

439
00:20:54.480 --> 00:20:57.359
<v Speaker 2>It profoundly changes how you view the machines around you.

440
00:20:58.079 --> 00:21:00.640
<v Speaker 2>But to leave you with a final thought to mull over.

441
00:21:01.200 --> 00:21:03.599
<v Speaker 2>Earlier we touched on the history of robotics, which the

442
00:21:03.640 --> 00:21:06.880
<v Speaker 2>source text outlines, and you can't discuss that history without

443
00:21:06.920 --> 00:21:11.200
<v Speaker 2>mentioning Isaac Asimov's famous three laws of robotics. Asimov's first

444
00:21:11.279 --> 00:21:14.000
<v Speaker 2>law states that a robot may not injure a human being.

445
00:21:14.519 --> 00:21:18.079
<v Speaker 2>It's an ethical philosophical mandate designed to keep us safe.

446
00:21:18.200 --> 00:21:21.279
<v Speaker 1>Right. But from everything we've just discussed, there is no

447
00:21:21.440 --> 00:21:24.440
<v Speaker 1>philosophy module in Python precisely.

448
00:21:24.200 --> 00:21:26.880
<v Speaker 2>And this raises an important question for the future of engineering.

449
00:21:27.359 --> 00:21:30.799
<v Speaker 2>In the reality of ros, everything is just nodes, topics,

450
00:21:30.880 --> 00:21:34.279
<v Speaker 2>wheel encoders, and coordinate geometry. How do you map a

451
00:21:34.400 --> 00:21:38.039
<v Speaker 2>human value onto a publish and subscribe network When our

452
00:21:38.079 --> 00:21:42.000
<v Speaker 2>simulated waiter is calculating its instantaneous center of curvature to

453
00:21:42.079 --> 00:21:45.480
<v Speaker 2>avoid a table, At what point does a mathematical threshold

454
00:21:45.640 --> 00:21:48.440
<v Speaker 2>cross over into a moral decision. We know how to

455
00:21:48.480 --> 00:21:51.440
<v Speaker 2>program a machine to understand rpm and torque, but how

456
00:21:51.440 --> 00:21:53.640
<v Speaker 2>do we eventually program it to understand us.

457
00:21:53.759 --> 00:21:57.160
<v Speaker 1>Math crossing into morality a massive question to leave off on.

458
00:21:57.200 --> 00:22:00.279
<v Speaker 1>From blind wind up toys crashing into shoes to ysical

459
00:22:00.359 --> 00:22:03.279
<v Speaker 1>machines calculating the geometry of human safety, we'll leave you

460
00:22:03.359 --> 00:22:05.039
<v Speaker 1>upon to that one. Thanks for joining us on this

461
00:22:05.079 --> 00:22:05.559
<v Speaker 1>deep dive.
