1
00:00:00,090 --> 00:00:05,640
After we have seen stiffness control, now it's time to switch to the impedance control, which is very

2
00:00:05,640 --> 00:00:08,940
widely known and use force control technique.

3
00:00:09,510 --> 00:00:16,080
Indeed, by using impedance control and its dual admittance control, you can achieve pretty interesting

4
00:00:16,080 --> 00:00:16,650
results.

5
00:00:16,890 --> 00:00:22,260
So without further ado, let's jump into the concept based on our previous knowledge.

6
00:00:22,260 --> 00:00:28,800
We somehow understand that modeling the environment is very important for force control techniques because

7
00:00:28,800 --> 00:00:34,680
based on the characteristic of the environment, we adjust the properties of the robot manipulator in

8
00:00:34,680 --> 00:00:40,640
order to achieve desired results or await dangerous situations by stiffness control.

9
00:00:40,650 --> 00:00:47,850
We accept the robot and the environment as just springs, which was not totally correct because environment

10
00:00:47,850 --> 00:00:54,240
doesn't only have stiffness properties, but also inertial and resistive properties, so environment

11
00:00:54,240 --> 00:00:56,850
can be in different categories as well.

12
00:00:57,360 --> 00:01:03,390
Let's first see this equation, which gives us the relation between the interaction forces and the motion

13
00:01:03,390 --> 00:01:04,770
of the robot manipulator.

14
00:01:05,190 --> 00:01:11,640
This relation is provided by the mechanical impedance, which is designated by Zip e in this equation.

15
00:01:12,000 --> 00:01:15,000
Let's see why this is called mechanical impedance.

16
00:01:16,230 --> 00:01:23,070
While modeling the systems, we separate two kinds of variables, namely effort and flows, which help

17
00:01:23,070 --> 00:01:26,820
us represent instantaneous flow of energy or power.

18
00:01:27,240 --> 00:01:34,980
So while the system can be different in nature like either mechanical or electrical or hydraulic, there

19
00:01:34,980 --> 00:01:41,710
are always the power variables, namely effort and flow in electrical domain.

20
00:01:41,740 --> 00:01:49,830
Effort is force, which corresponds to the four, which corresponds to the force, excuse me, in electrical

21
00:01:49,830 --> 00:01:50,490
domain.

22
00:01:50,670 --> 00:01:57,150
If it is voltage, which corresponds to the force in mechanical domain and the current is flow variable

23
00:01:57,150 --> 00:02:01,800
in electrical domain, which corresponds to the velocity in mechanical domain.

24
00:02:02,220 --> 00:02:08,220
So by the same way, we can write electrical impedance, which is the ratio between voltage and the

25
00:02:08,220 --> 00:02:14,940
current, which corresponds to mechanical impedance, namely the ratio between force and velocity.

26
00:02:15,330 --> 00:02:21,690
Based on these mechanical impedance, we can categorize or model the environment more precisely.

27
00:02:22,470 --> 00:02:29,160
Namely, the environment is inertial if and only if the impedance has value of zero when, as is zero.

28
00:02:29,670 --> 00:02:35,010
For example, this is an inertial environment in which force of F is given to the object.

29
00:02:35,250 --> 00:02:40,050
This is the mass H which cause velocity of export at the output.

30
00:02:40,560 --> 00:02:44,670
We can write the equation of the system and get the mechanical impedance.

31
00:02:44,910 --> 00:02:52,180
As you can see, if you set s to zero, then mechanical impedance will be zero in one.

32
00:02:52,230 --> 00:02:59,280
When these resistive if and only if z zero is constant, which is between zero and infinity.

33
00:02:59,880 --> 00:03:03,600
This is the example case where the robot is moving or the surface.

34
00:03:03,610 --> 00:03:09,810
The less friction system equations can be written this way, and we can get mechanical impedance easily

35
00:03:09,810 --> 00:03:11,520
from that system equation.

36
00:03:11,970 --> 00:03:15,250
As you can see, even we said s to zero.

37
00:03:15,270 --> 00:03:23,310
We get constant volley of D and environment can be capacitive if unduly if z zero is infinite.

38
00:03:23,940 --> 00:03:33,060
Below is the sample case where environment has mass of h, dumping of B and stiffness of key system.

39
00:03:33,060 --> 00:03:38,100
Equation can be rewritten in this way and we can get impertinence from this equation easily.

40
00:03:38,520 --> 00:03:44,780
As you can see, if you set s to zero, you will get infinite impedance from above examples.

41
00:03:44,790 --> 00:03:51,720
It's clear that how effectively an environment can be modelled by using mechanical impedance and how

42
00:03:51,720 --> 00:03:56,820
mechanical impedance determines the behavior of the system in this case environment.

43
00:03:58,290 --> 00:04:01,290
No, let's start to impedance control now.

44
00:04:01,290 --> 00:04:05,940
It's important for us to understand what we want to achieve by impedance control.

45
00:04:06,240 --> 00:04:13,290
The goal in utilizing impedance control is not to get exact position or velocity control or not to achieve

46
00:04:13,290 --> 00:04:16,470
desired force, namely pure force control.

47
00:04:16,770 --> 00:04:22,740
The goal is to control that dynamic behavior of the robot manipulator, namely the relationship between

48
00:04:22,740 --> 00:04:25,950
the motion of the robot and the interaction forces.

49
00:04:26,370 --> 00:04:27,960
Why do we want to achieve that?

50
00:04:28,410 --> 00:04:34,380
Because, as you know, from stiffness control periods, we need to have sufficiently good model of

51
00:04:34,380 --> 00:04:38,640
the environment to achieve the desired control on interaction forces.

52
00:04:39,060 --> 00:04:44,310
However, as we have said previously, it's very difficult to model the environment.

53
00:04:44,700 --> 00:04:51,720
But if we can find the relation between the motion of the robot and the interaction forces, then we

54
00:04:51,720 --> 00:04:58,410
will not need to model the environment because it will be sufficient for us to adjust just to measure

55
00:04:58,410 --> 00:04:59,900
interaction forces at.

56
00:05:00,080 --> 00:05:01,190
And the factor.

57
00:05:01,370 --> 00:05:09,410
And based on that, adjust the behavior of the robot, we humans do also the same when there is no interaction

58
00:05:09,410 --> 00:05:14,570
force at our hands, namely we move our hands in free space.

59
00:05:14,750 --> 00:05:17,090
We do that in the fast and rigid way.

60
00:05:17,540 --> 00:05:24,110
However, if we are in contact with some object, then we are slow and careful near make compliant the

61
00:05:24,110 --> 00:05:24,620
object.

62
00:05:24,950 --> 00:05:28,190
Do you want to achieve that result in robot manipulator or.

63
00:05:29,030 --> 00:05:31,250
Let's investigate how they can do that.

64
00:05:32,420 --> 00:05:35,210
Let's first see why it is called impedance control.

65
00:05:35,510 --> 00:05:41,960
As you know, generally when the robot interacts with some environment, it gives acceleration velocity

66
00:05:41,960 --> 00:05:45,050
to the environment by applying force into it.

67
00:05:45,380 --> 00:05:49,640
So environment has admittance while the robot has impedance.

68
00:05:49,850 --> 00:05:51,860
And we want to control that impedance.

69
00:05:52,340 --> 00:05:55,280
Let's ride the formula of mechanical impedance again.

70
00:05:55,910 --> 00:06:00,860
Based on Le Plus formulation, we can write equation in this form also.

71
00:06:05,380 --> 00:06:08,920
As you can see, this is nothing but a transfer function.

72
00:06:10,210 --> 00:06:18,130
If you remember in stiffness control, stiffness was constant, while in this case, impaired is a transfer

73
00:06:18,130 --> 00:06:18,670
function.

74
00:06:19,330 --> 00:06:25,450
Now let's define transfer function in this way, as you can see, impedance control is more general

75
00:06:25,450 --> 00:06:32,200
than the stiffness control because you don't only control the stiffness, but also the effective inertia

76
00:06:32,200 --> 00:06:32,980
and damping.

77
00:06:32,980 --> 00:06:37,330
Also, it will be more clear to you further in the presentation.

78
00:06:39,220 --> 00:06:45,640
So if we plug the definition of impairments in the formula, we will get this equation, which is desired

79
00:06:45,640 --> 00:06:50,080
impedance or desired dynamical behavior more correctly.

80
00:06:50,320 --> 00:06:52,850
We want to impose to our robot.

81
00:06:54,820 --> 00:06:59,590
This is done by fixing the values of inertia, stiffness and damping mattresses.

82
00:07:00,490 --> 00:07:07,270
If the right to transfer function in this way, we can see that by fixing the values of damping, stiffness

83
00:07:07,270 --> 00:07:15,400
and inertia mattresses, we can define the values of natural frequency and damping ratio, which characterizes

84
00:07:15,430 --> 00:07:19,600
our system response, which is second order system response here.

85
00:07:21,880 --> 00:07:25,930
Let's ride the dissolved dynamic behavior if you want to impose to our robot.

86
00:07:26,440 --> 00:07:28,060
However, there is a problem here.

87
00:07:28,420 --> 00:07:35,500
There is a huge difference between the original dynamics of our robot arm and desired dynamics we want

88
00:07:35,500 --> 00:07:36,400
to impose.

89
00:07:36,700 --> 00:07:43,300
Additionally, original dynamics of our robot is coupled, and this also creates a problem because we

90
00:07:43,300 --> 00:07:48,700
want to impose different dynamics based on the situation in different directions.

91
00:07:49,570 --> 00:07:56,350
So in the first step, we have to cancel the original dynamics of our robot in order to get leaner and

92
00:07:56,350 --> 00:07:57,700
the coupled dynamics.

93
00:07:57,970 --> 00:08:01,390
We will do that using inverse dynamics control.

94
00:08:02,800 --> 00:08:06,700
Then we impose the desired dynamics to our robotic manipulator.

95
00:08:07,510 --> 00:08:14,350
Let's first try the dynamics equation of our robot manipulator in Workspace Y workspace because the

96
00:08:14,350 --> 00:08:18,320
desired dynamics we want to impose is defined in workspace.

97
00:08:18,340 --> 00:08:24,220
Also, the interactions in workspace also the interactions happen in the workspace.

98
00:08:25,990 --> 00:08:27,820
Be careful in these formulations.

99
00:08:27,820 --> 00:08:35,110
We use analytical Jacobean because the rotation angles are defined either as earlier or are p y.

100
00:08:36,580 --> 00:08:43,060
It's not defined the input force of F as this, which will help us to cancel the original dynamics of

101
00:08:43,060 --> 00:08:44,470
our robotic manipulator.

102
00:08:44,890 --> 00:08:49,330
Don't forget, we have to consider interaction forces of f a.

103
00:08:49,510 --> 00:08:50,920
In order to cancel them.

104
00:08:50,920 --> 00:08:58,420
Also, these interaction forces in Eq. one point two will be obtained by force torque sensors.

105
00:08:58,990 --> 00:09:07,210
So we replace Eq. 1.0 in the equation 1.1 and get linear and decoupled dynamics as below.

106
00:09:07,930 --> 00:09:14,350
As we have said before, it's important for us to decouple the equation in order to impose desired behavior

107
00:09:14,350 --> 00:09:16,000
in each direction freely.

108
00:09:16,690 --> 00:09:21,400
Here you can see that, but we have an obvious and common problem.

109
00:09:21,550 --> 00:09:27,550
Here you can say that we have an obvious and common problem with inverse dynamics, which is not being

110
00:09:27,550 --> 00:09:29,350
able to model the dynamics.

111
00:09:29,350 --> 00:09:31,390
Exactly, exactly.

112
00:09:31,810 --> 00:09:36,100
Additionally, force torque sensors cannot exact the council interaction forces.

113
00:09:36,550 --> 00:09:43,250
However, robustness is not a big issue here because we just want to impose behavior to our robot arm.

114
00:09:44,980 --> 00:09:48,120
We just wanted these impose desired behavior to our robot arm.

115
00:09:48,490 --> 00:09:54,520
We don't want exact position or velocity tracking or achieving exact design forces.

116
00:09:55,450 --> 00:10:00,090
Now we have decoupled and linear ized our system dynamics.

117
00:10:00,100 --> 00:10:06,520
We need to switch to the second step, namely imposing desired dynamics that our robot manipulator.

118
00:10:07,330 --> 00:10:12,730
So we define our Y as this way in order to achieve desired dynamic behavior.

119
00:10:13,570 --> 00:10:23,230
When we replace Eq. 1.4 in 1.3 here of here, I want to note something important.

120
00:10:23,530 --> 00:10:28,360
As you have seen moment before, we have canceled interaction forces.

121
00:10:29,350 --> 00:10:33,970
We have done that in order to decouple our original dynamics equation.

122
00:10:34,570 --> 00:10:37,780
Now we are adding it into y again y.

123
00:10:38,380 --> 00:10:41,170
Let's see what would happen if we didn't add it.

124
00:10:41,830 --> 00:10:49,690
If we didn't do that, then the imposed by that mix equation would be in this way.

125
00:10:50,500 --> 00:10:53,410
What does this dynamic equation say to us?

126
00:10:54,160 --> 00:11:00,280
Firstly, we know that our system is asymptotically stable because of non-zero damping term.

127
00:11:00,900 --> 00:11:02,940
Secondly, from this equation?

128
00:11:03,080 --> 00:11:10,010
You see, that robot always tries to achieve exact the desired position without considering environment

129
00:11:10,700 --> 00:11:13,700
or without either an introduction forces.

130
00:11:14,210 --> 00:11:20,420
You can imagine that this can cause very serious issues, both for the robot manipulator and the environment.

131
00:11:20,930 --> 00:11:27,800
We need to adjust dynamic behavior of our robot based on interaction forces, and we can achieve that

132
00:11:27,800 --> 00:11:31,640
by adding interaction forces in Equation 1.4.

133
00:11:33,980 --> 00:11:41,420
So after defining Variable Y, let's see the full formula for control input F, and this is given as

134
00:11:41,420 --> 00:11:41,900
below.

135
00:11:42,560 --> 00:11:48,800
Here, I want to note something if you analyze equation one point six carefully, you will see that

136
00:11:48,800 --> 00:11:56,720
if we define our desired inertia matrix as the original robot inertia matrix, then we can avoid utilizing

137
00:11:56,720 --> 00:11:57,080
force.

138
00:11:57,080 --> 00:12:02,540
Torque sensors and control equation becomes simpler, but we don't want to do that.

139
00:12:02,900 --> 00:12:03,290
Why?

140
00:12:03,800 --> 00:12:11,330
Because original inertia matrix is coupled, but we want to decouple the equations, so we prefer positive,

141
00:12:11,330 --> 00:12:13,700
definite and decoupled inertia matrix.

142
00:12:15,320 --> 00:12:24,500
Now, after all, how do we how do we have to choose the desired impedance in order to get desired dynamics

143
00:12:24,500 --> 00:12:25,070
behavior?

144
00:12:25,610 --> 00:12:31,490
We want to avoid high impacts due to the uncertainties in environment, position and shape.

145
00:12:31,790 --> 00:12:38,750
And also, we want to adapt the stiffness properties of the stiffness properties of the environment.

146
00:12:39,170 --> 00:12:46,580
We can achieve that by mimicking human behavior, namely fast and rigid behavior in free space motions,

147
00:12:46,820 --> 00:12:54,230
which corresponds to the low values of four inertia and high values for stiffness via slow and compliant

148
00:12:54,230 --> 00:12:59,270
behavior during approaching the environment or during interaction with the environment.

149
00:13:00,110 --> 00:13:06,260
This corresponds to higher values for inertia matrix, while low values for stiffness matrix.

150
00:13:06,980 --> 00:13:13,610
We want to assign small values for stiffness, matrix during interaction with stiff environment, and

151
00:13:13,610 --> 00:13:21,020
in order to get desired trends in behavior such as control and oscillations, we have to adjust damping

152
00:13:21,020 --> 00:13:21,740
matrix.
