WEBVTT
Kind: captions
Language: en

1
00:00:04.330 --> 00:00:07.040
This is a teach pendant, and traditionally,

2
00:00:07.040 --> 00:00:09.730
it’s how you teach a robot arm to do something.

3
00:00:09.730 --> 00:00:11.110
It’s awkward.

4
00:00:11.110 --> 00:00:13.969
Two of the problems with programming robots
the traditional way

5
00:00:13.969 --> 00:00:17.600
are that you need to tell it exactly what
you want it to do,

6
00:00:17.600 --> 00:00:18.720
point to point.

7
00:00:18.720 --> 00:00:22.460
The other is that the robot assumes that nothing
changes.

8
00:00:22.460 --> 00:00:24.950
You just manually drive the tip of the robot

9
00:00:24.950 --> 00:00:27.220
to where you know you need it to go

10
00:00:27.220 --> 00:00:29.220
and then hit ‘record,’ and remember that
point,

11
00:00:29.220 --> 00:00:31.980
then you drive it over to the other place
and hit ‘record,’

12
00:00:31.980 --> 00:00:33.860
and remember that point, and then, when you
play,

13
00:00:33.860 --> 00:00:35.100
it goes from one point to the next.

14
00:00:35.100 --> 00:00:36.970
And it can do that over, and over, and over again.

15
00:00:36.970 --> 00:00:39.270
In the event that there is some error or something
moves,

16
00:00:39.270 --> 00:00:41.110
the robot has no way of knowing that.

17
00:00:41.110 --> 00:00:44.450
The robot will still go exactly where you
told it to go the first time,

18
00:00:44.450 --> 00:00:46.830
and that can result in a crash, or breaking
something,

19
00:00:46.830 --> 00:00:49.020
or injuring a person. It’s just like any
computer.

20
00:00:49.020 --> 00:00:50.989
It will do exactly what you ask it to do,

21
00:00:50.989 --> 00:00:52.900
even if that's not what you meant!

22
00:00:52.900 --> 00:00:54.440
In the early days of computers,

23
00:00:54.440 --> 00:00:57.970
writing code generally meant using what’s
called 'assembly language'.

24
00:00:57.970 --> 00:00:59.860
You would have to literally tell the processor

25
00:00:59.860 --> 00:01:02.510
to move things from one memory address to
another,

26
00:01:02.510 --> 00:01:03.510
or to tweak some values,

27
00:01:03.510 --> 00:01:06.290
or to change specific pixels on the screen.

28
00:01:06.290 --> 00:01:08.100
Like giving instructions to this arm,

29
00:01:08.100 --> 00:01:12.370
you would be telling the chip every single
thing that it had to do.

30
00:01:12.370 --> 00:01:16.150
As time moved on, programmers got higher level
languages.

31
00:01:16.150 --> 00:01:18.050
Write some words and some brackets,

32
00:01:18.050 --> 00:01:21.560
the system works out the boring details for
you.

33
00:01:21.560 --> 00:01:25.030
If you’ve ever worked with a spreadsheet,
then that counts.

34
00:01:25.030 --> 00:01:28.170
Writing a formula in Excel, that's enough.

35
00:01:28.170 --> 00:01:31.530
In the end, sure, it all gets converted to
assembly language.

36
00:01:31.530 --> 00:01:34.840
For most programmers, they never even have
to think about it.

37
00:01:34.840 --> 00:01:39.050
The team here at Autodesk's Pier 9 in San
Francisco are

38
00:01:39.050 --> 00:01:41.600
working on more or less the same thing,

39
00:01:41.600 --> 00:01:45.340
just for making physical things.

40
00:01:45.340 --> 00:01:48.570
Basically, the biggest robot that we have
in the lab,

41
00:01:48.570 --> 00:01:51.560
which we call ‘Ash,’ is essentially a
big,

42
00:01:51.560 --> 00:01:54.850
robotic 3D printer that's printing in stainless
steel.

43
00:01:54.850 --> 00:02:00.110
We have a MIG welder that is depositing stainless
steel onto a metal plate.

44
00:02:00.110 --> 00:02:04.950
By activating the MIG welder while moving
the robot, we’re building a weld bead,

45
00:02:04.950 --> 00:02:07.260
and then we’re building beads on top of
each other.

46
00:02:07.260 --> 00:02:10.310
You would typically use welding to stitch
two pieces of metal together.

47
00:02:10.310 --> 00:02:13.230
What we’re doing is using the same technology,

48
00:02:13.230 --> 00:02:15.470
but stacking the metal on top

49
00:02:15.470 --> 00:02:18.350
in order to produce a separate piece of finished
material.

50
00:02:18.350 --> 00:02:20.630
Now, ultimately, the result is the same.

51
00:02:20.630 --> 00:02:23.510
The motors in the robot arm are told, “move
this way.”

52
00:02:23.510 --> 00:02:26.930
It’s just that human’s original instructions
are a bit more abstract,

53
00:02:26.930 --> 00:02:29.470
and they're filtered through another couple
of layers.

54
00:02:29.470 --> 00:02:34.200
Using a teach pendant would be pretty impractical
for these complex curves.

55
00:02:34.200 --> 00:02:37.450
Normal 3D printers do basically 2½D.

56
00:02:37.450 --> 00:02:40.000
They go to an X and a Y, and then up and down.

57
00:02:40.000 --> 00:02:42.220
This robot can point in various directions.

58
00:02:42.220 --> 00:02:44.450
The robot needs to know not only where it
is,

59
00:02:44.450 --> 00:02:47.300
but how it should point when it gets there.

60
00:02:47.300 --> 00:02:48.530
We give it a piece of geometry,

61
00:02:48.530 --> 00:02:51.930
and the software figures out the instructions
set for the robot

62
00:02:51.930 --> 00:02:54.780
that will result in a print, that is what
we want.

63
00:02:54.780 --> 00:02:58.520
One of the things we’re developing is a
closed loop feedback system,

64
00:02:58.520 --> 00:03:01.120
where the robot is actually aware of what
it’s doing.

65
00:03:01.120 --> 00:03:03.010
Before it completely fails a print,

66
00:03:03.010 --> 00:03:06.460
it’s keeping track of the quality of the
print that it’s doing.

67
00:03:06.460 --> 00:03:10.090
It will actually correct, reprogram itself
in real time,

68
00:03:10.090 --> 00:03:12.250
in order to avoid an actual failure.

69
00:03:12.250 --> 00:03:14.750
What we’re working on is a vision system,

70
00:03:14.750 --> 00:03:16.570
where between vision and a couple of other
sensors,

71
00:03:16.570 --> 00:03:19.780
we can monitor and supervise the status of
the prints.

72
00:03:19.780 --> 00:03:23.050
If the welder runs out of wire, or if something
else happens,

73
00:03:23.050 --> 00:03:25.030
the robot would traditionally have no way
of knowing.

74
00:03:25.030 --> 00:03:27.020
Now, the robot can know that.

75
00:03:27.020 --> 00:03:31.280
Not all the robot’s movements are being
directly controlled by a person.

76
00:03:31.280 --> 00:03:33.650
If it goes wrong, it’s a bit different

77
00:03:33.650 --> 00:03:35.970
than just having an error message pop up.

78
00:03:35.970 --> 00:03:37.800
This arm here weighs two tonnes,

79
00:03:37.800 --> 00:03:40.620
and when it wants to, it moves fast.

80
00:03:40.620 --> 00:03:42.280
The only reason I'm allowed this close is
because

81
00:03:42.280 --> 00:03:46.080
I'm literally holding the emergency stop button
in my hand,

82
00:03:46.080 --> 00:03:47.319
just in case.

83
00:03:47.319 --> 00:03:51.300
Our robot currently has no way of sensing
us. What currently happens is

84
00:03:51.300 --> 00:03:54.390
when a person that shouldn’t be near a robot
gets close to the robot,

85
00:03:54.390 --> 00:03:55.970
you shut everything down.

86
00:03:55.970 --> 00:03:58.209
It would be great, and we’re interested
in a future

87
00:03:58.209 --> 00:04:01.019
where the robot can know that person is there,

88
00:04:01.019 --> 00:04:03.390
with vision or some other kinds of sensing,

89
00:04:03.390 --> 00:04:05.580
and then actively avoid that person,

90
00:04:05.580 --> 00:04:08.400
and continue doing what it’s doing.

91
00:04:08.400 --> 00:04:10.959
Self driving cars, hospital heart monitors,

92
00:04:10.959 --> 00:04:14.050
basically everything electronic: ultimately,

93
00:04:14.050 --> 00:04:16.340
the code in it is just 1s and 0s.

94
00:04:16.340 --> 00:04:19.959
The more levels of abstraction between the
programmer and the bare metal,

95
00:04:19.959 --> 00:04:21.419
the easier it is to write code,

96
00:04:21.419 --> 00:04:23.610
but when something goes wrong,

97
00:04:23.610 --> 00:04:26.330
fixing it might be out of your hands.

98
00:04:26.330 --> 00:04:28.319
Thank you very much to all the team at Autodesk,

99
00:04:28.319 --> 00:04:29.990
and to their applied research lab,

100
00:04:29.990 --> 00:04:31.360
here at Pier 9 in San Francisco.

101
00:04:31.360 --> 00:04:33.300
Go and check out their YouTube channel,

102
00:04:33.300 --> 00:04:36.400
or pull down the description for some links
to see the amazing projects they're working on.

