1
00:00:00,180 --> 00:00:00,570
OK.

2
00:00:00,870 --> 00:00:07,230
This is the last force control technique that we will see, and as you can see from the title of the

3
00:00:07,230 --> 00:00:10,770
video, this is hybrid position, force control technique.

4
00:00:11,340 --> 00:00:18,360
Here, we will not specify a new method of control formulation for either position or force, but instead

5
00:00:18,450 --> 00:00:25,860
we will use the ones we have seen before in the way everything will be clear to you further in the presentation.

6
00:00:27,510 --> 00:00:33,540
Manipulation of an object includes both control of position, velocity and force torque.

7
00:00:33,870 --> 00:00:40,200
It can be complex to develop a control technique that will help us in controlling position and force

8
00:00:40,410 --> 00:00:41,250
precisely.

9
00:00:41,610 --> 00:00:48,420
Also, until this lesson, we have seen either pure position, velocity control and force control.

10
00:00:48,750 --> 00:00:55,950
But what we can do in order to simplify the difficulty of control is to decouple the directions in which

11
00:00:55,950 --> 00:01:02,970
position velocity control is required and in which force total control is required with respect to some

12
00:01:02,970 --> 00:01:03,900
reference frame.

13
00:01:04,500 --> 00:01:11,910
After this decoupling process, we can apply pure position and force control in appropriate directions.

14
00:01:12,330 --> 00:01:17,850
This will be much simpler for us to control both position and the force simultaneously.

15
00:01:18,690 --> 00:01:21,150
Let's take this scenario into consideration.

16
00:01:21,420 --> 00:01:25,710
A robot arm slides a rigid object or the friction this table.

17
00:01:26,250 --> 00:01:30,900
Let's see what we mean by decoupling position and force control directions.

18
00:01:31,330 --> 00:01:37,380
However, first, we have to define suitable a reference frame, and we take this reference frame in

19
00:01:37,380 --> 00:01:40,420
the contact point, which is given by a red color.

20
00:01:42,220 --> 00:01:47,610
You can control position in X and Y directions, which is obvious.

21
00:01:48,090 --> 00:01:50,820
We can rotate the object in that direction only.

22
00:01:51,420 --> 00:01:54,750
Also, we can control force only in that direction.

23
00:01:55,470 --> 00:02:00,600
This can be confusing for you, but don't worry, we will clarify it further in the presentation.

24
00:02:01,080 --> 00:02:07,650
And finally, we can control talking on the X and Y directions, which will be clear for you during

25
00:02:07,650 --> 00:02:13,620
the presentation after we have seen what we mean by decoupling generally.

26
00:02:13,860 --> 00:02:16,500
Let's go into deeper in this issue.

27
00:02:16,950 --> 00:02:23,520
Before doing that, we have to consider constraints as you know, whatever we do with the robots, which

28
00:02:23,520 --> 00:02:25,230
also includes manipulation.

29
00:02:25,590 --> 00:02:29,250
We have constraints either due to the robot or the environment.

30
00:02:29,670 --> 00:02:35,370
In this section, we will ignore the constraints due to the robot, but only consider the ones due to

31
00:02:35,370 --> 00:02:36,360
the environment.

32
00:02:36,990 --> 00:02:42,720
OK, we have two types of constraints, namely the natural ones and artificial ones.

33
00:02:43,560 --> 00:02:49,920
Natural constraints are due to the geometry of the environment, so they are environment dependent or

34
00:02:49,920 --> 00:02:51,330
also task dependent.

35
00:02:51,750 --> 00:02:53,160
We cannot control them.

36
00:02:53,430 --> 00:02:59,220
They are already there and we have to obey these constraints if we don't want problems.

37
00:03:00,090 --> 00:03:03,390
However, artificial constraints can be controlled by us.

38
00:03:03,660 --> 00:03:10,200
For example, if you want to have zero point one meters per second and the fact that a velocity in external

39
00:03:10,200 --> 00:03:18,210
action, this is the constraint that we are setting and we can change it as we want, as in a suitable

40
00:03:18,210 --> 00:03:18,660
range.

41
00:03:19,200 --> 00:03:26,190
So artificial constraints are set by us through our control algorithm and we can control either position

42
00:03:26,190 --> 00:03:30,240
or velocity and force or torque as we want.

43
00:03:31,230 --> 00:03:38,220
Now the important thing is that we define natural and artificial constraints, not with respect to the

44
00:03:38,220 --> 00:03:43,980
base frame or end the vector frame, but constraint or task frame.

45
00:03:44,580 --> 00:03:46,200
They have the same meaning.

46
00:03:46,620 --> 00:03:53,310
This task frame is task dependent because based on task, we change in which directions we have control

47
00:03:53,520 --> 00:03:55,200
and in which direction not.

48
00:03:55,770 --> 00:03:59,160
Also, this frame is not fixed like inertial frame.

49
00:03:59,460 --> 00:04:04,140
It changes its orientation and position depending on where it's defined.

50
00:04:05,100 --> 00:04:12,030
As, you know, all of the general, we can specify 12 variables that we can't control if we don't consider

51
00:04:12,030 --> 00:04:18,180
any kind of constraints, namely six linear variables and six rotational variables.

52
00:04:18,540 --> 00:04:24,780
But surely we will not be able to control all of them because we have constraints.

53
00:04:24,780 --> 00:04:32,490
So we want if we want to define which ones we can control and which ones we can not in order to clarify

54
00:04:32,490 --> 00:04:33,310
this concept.

55
00:04:33,330 --> 00:04:38,000
Let's take some real world scenarios in this task.

56
00:04:38,010 --> 00:04:41,250
We want to slide the rigid object or frictionless table.

57
00:04:41,640 --> 00:04:49,080
The frame indicated the C in contact point is our task frame based on which will specified the constraints.

58
00:04:49,770 --> 00:04:56,430
OK, now this is the velocity space where the linear and angular velocities have been specified.

59
00:04:56,760 --> 00:04:57,570
Be careful.

60
00:04:57,810 --> 00:04:59,810
These are specified with respect to.

61
00:04:59,880 --> 00:05:07,050
The see frame or contact frame or tusk frame, excuse me, not on the frame, but constrained frame.

62
00:05:07,560 --> 00:05:14,310
We have to express everything on tusk frame because decoupling happens with respect to it and control

63
00:05:14,310 --> 00:05:16,830
will be specified with respect to it.

64
00:05:16,830 --> 00:05:24,360
Also in the same way we define for space, which includes forces and talks in tusk frame.

65
00:05:25,140 --> 00:05:28,740
Now let's define natural and artificial constraints.

66
00:05:29,010 --> 00:05:34,350
Natural constraints will be written in red color while the artificial ones in blue color.

67
00:05:35,160 --> 00:05:36,780
Here is the natural constraints.

68
00:05:37,050 --> 00:05:39,240
Let's look at them one by one.

69
00:05:39,600 --> 00:05:47,130
We cannot control velocity in that direction because we have an obstacle, namely a rigid table in front.

70
00:05:47,640 --> 00:05:50,640
So there will be no motion in that direction.

71
00:05:51,090 --> 00:05:53,060
Don't forget, please analyze.

72
00:05:53,090 --> 00:06:00,450
With respect to the tusk frame, we have no obstacle in the directions of X and Y, so there will be

73
00:06:00,450 --> 00:06:04,320
motion in that direction and we can control it.

74
00:06:04,770 --> 00:06:09,840
In terms of rotational velocities, we are able to rotate only in that direction.

75
00:06:10,290 --> 00:06:16,050
We can not rotate in either X or Y again due to the obstacle we have.

76
00:06:16,620 --> 00:06:21,150
So because of that, omega X and Y are natural constraints.

77
00:06:21,600 --> 00:06:30,030
Now, in terms of forces, we can apply desired force only in that direction, but not in X or Y directions

78
00:06:30,360 --> 00:06:31,980
y look carefully.

79
00:06:32,280 --> 00:06:39,390
We have rigid obstacle in front if you want to apply force in that direction so we can apply desired

80
00:06:39,390 --> 00:06:40,080
force on it.

81
00:06:40,470 --> 00:06:44,760
However, object is free to move in directions of X and Y.

82
00:06:45,060 --> 00:06:48,330
Additionally, don't forget that table is frictionless.

83
00:06:48,720 --> 00:06:56,490
So when we try to apply force in X or Y directions, object starts to move and we cannot apply force

84
00:06:56,940 --> 00:06:58,270
sync it in this way.

85
00:06:58,500 --> 00:07:01,620
Can you apply force on space without an obstacle?

86
00:07:01,980 --> 00:07:05,610
Can you apply force on air if we ignore air resistance?

87
00:07:05,940 --> 00:07:13,830
No, as we cannot control force, as we want interruptions X and Y forces in these directions are natural

88
00:07:13,830 --> 00:07:14,520
constraints.

89
00:07:15,090 --> 00:07:20,650
Talks are the same as forces as we can rotate in that direction freely.

90
00:07:20,700 --> 00:07:23,970
We will not be able to generate torque in that direction.

91
00:07:24,330 --> 00:07:28,950
But the same is not true in terms of talks in X and Y directions.

92
00:07:29,880 --> 00:07:31,650
We can control them as we want.

93
00:07:32,130 --> 00:07:32,530
OK.

94
00:07:32,880 --> 00:07:34,740
We have seen natural constraints.

95
00:07:35,190 --> 00:07:37,110
Now let's see the artificial ones.

96
00:07:37,410 --> 00:07:42,930
Indeed, after determining the natural constraints, it's very easy to determine the artificial ones.

97
00:07:43,350 --> 00:07:48,990
First, compare each element of artificial constraints with each elements of natural ones.

98
00:07:49,500 --> 00:07:52,440
You will see there is a relation between them.

99
00:07:52,740 --> 00:07:59,730
So named linear velocities in natural constraints will correspond to forces in artificial ones in the

100
00:07:59,730 --> 00:08:00,520
same way.

101
00:08:00,540 --> 00:08:07,200
Angela velocities will correspond to talks, forces will correspond to linear velocities and talks will

102
00:08:07,200 --> 00:08:09,030
correspond to angular velocities.

103
00:08:09,510 --> 00:08:14,280
First, observe that please also note that accesses don't change.

104
00:08:14,580 --> 00:08:18,780
Now let's understand that the logic axis don't change.

105
00:08:19,740 --> 00:08:21,660
By this, I mean the reference frames.

106
00:08:22,680 --> 00:08:30,600
Now let's understand the logic of that correspondence as we don't have linear motion in x axis due to

107
00:08:30,600 --> 00:08:31,470
the obstacle.

108
00:08:31,650 --> 00:08:34,710
We can upload desired force to this object.

109
00:08:35,160 --> 00:08:42,600
So force is artificially constrained in extraction also as we cannot rotate in X and Y directions.

110
00:08:42,840 --> 00:08:45,690
We can upload talks in those directions.

111
00:08:46,170 --> 00:08:53,860
Furthermore, as V cannot apply force in X and Y direction because motion is free in those partitions.

112
00:08:54,120 --> 00:08:58,020
We can control velocity as we want in those directions.

113
00:08:58,500 --> 00:09:06,480
So linear velocities in X and Y directions can be controlled and they are considered as artificial constraint.

114
00:09:06,840 --> 00:09:14,370
Finally, as we cannot apply desire to move in that direction, then the rotation is free in that direction

115
00:09:14,370 --> 00:09:18,570
and we can control amount of this rotation before continuing.

116
00:09:18,570 --> 00:09:20,280
I want to add something here.

117
00:09:20,730 --> 00:09:28,710
Neutral constraints constrain us to have either zero velocities or zero forces and torus, and these

118
00:09:28,710 --> 00:09:29,400
are on the way.

119
00:09:30,180 --> 00:09:35,820
However, when we say that we can assign any desired value to the artificial constraints.

120
00:09:36,030 --> 00:09:37,530
This is not totally correct.

121
00:09:37,980 --> 00:09:42,750
We won't sometimes assign zero to also these values as desired value.

122
00:09:43,200 --> 00:09:47,130
For example, force in that direction is artificial constraint.

123
00:09:47,370 --> 00:09:54,240
However, we want to assign it as almost zero because both object and the table is rigid and design.

124
00:09:54,240 --> 00:09:58,950
Assigning higher values to these force can cause serious issues.

125
00:10:00,050 --> 00:10:06,590
You can generalize this not about other artificial constraints also, though, as you may notice, we

126
00:10:06,590 --> 00:10:09,890
want artificial constraints, not the natural constraints.

127
00:10:10,160 --> 00:10:10,670
Why?

128
00:10:10,970 --> 00:10:15,410
Because we have a control over artificial walls, not on natural ones.

129
00:10:15,710 --> 00:10:22,970
So we need to select artificial constraints from given general six by one velocity vectors and six by

130
00:10:22,970 --> 00:10:29,390
one force vector now based on a determination of natural and artificial constraints.

131
00:10:29,660 --> 00:10:37,820
We can write this here if tower are the general force and talk values that are defined with respect

132
00:10:37,820 --> 00:10:38,850
to the base frame.

133
00:10:39,230 --> 00:10:43,250
The dimension of the left hand side vector is six by one.

134
00:10:43,630 --> 00:10:50,750
OK, so we need to select artificial constraints from given general six by one velocity vectors and

135
00:10:50,750 --> 00:10:52,880
six by one force vector.

136
00:10:53,360 --> 00:11:01,340
Now, based on the termination of natural and artificial constraints, we can write this here Eiffel

137
00:11:01,520 --> 00:11:07,910
Tower or the general force and talk values that are defined with respect to the base frame.

138
00:11:08,310 --> 00:11:15,950
The dimension of left hand side vector is six by one, while the far right side vector is designed force

139
00:11:15,950 --> 00:11:18,290
and talk values we want to achieve.

140
00:11:18,740 --> 00:11:19,550
Be careful.

141
00:11:19,790 --> 00:11:21,530
They are in tusk frame.

142
00:11:22,400 --> 00:11:25,730
And this is the same love for velocity subspace.

143
00:11:26,630 --> 00:11:27,380
Be careful.

144
00:11:27,410 --> 00:11:28,730
They are in the tusk frame.

145
00:11:29,320 --> 00:11:32,210
And this is the same formula for velocity subspace.

146
00:11:32,510 --> 00:11:39,980
And this a a f and a V mattresses are called seleccion mattresses.

147
00:11:42,620 --> 00:11:44,570
Why they are called seleccion mattresses.

148
00:11:44,810 --> 00:11:52,340
Because we can get the variables that we have control on them or artificial constraints by applying

149
00:11:52,340 --> 00:11:56,540
these selection mattresses to the velocity and for sub spaces.

150
00:11:57,230 --> 00:12:03,980
Here's another scenario which is insertion of a pig into a hole first noticed the tusk frame, which

151
00:12:03,980 --> 00:12:06,140
is defined fixed in object.

152
00:12:06,710 --> 00:12:09,680
Here is a general velocity and force vectors.

153
00:12:10,070 --> 00:12:12,770
Let's first define natural constraints.

154
00:12:13,100 --> 00:12:17,990
I will summarize here shortly because I have explained carefully in previous example.

155
00:12:18,320 --> 00:12:23,270
So we cannot move in X and Y direction because of object.

156
00:12:23,570 --> 00:12:31,730
So zero linear motion cannot rotate around X and Y, so zero rotational motion as V can move freely

157
00:12:31,730 --> 00:12:32,980
in z direction.

158
00:12:33,050 --> 00:12:41,870
We cannot apply force, so zero force in the same way we have three rotation or set axis, so we cannot

159
00:12:41,870 --> 00:12:43,760
apply torque or this axis.

160
00:12:44,030 --> 00:12:45,080
So zero torque.

161
00:12:45,560 --> 00:12:51,440
Now let's see artificial constraints as we don't have motion in X and Y directions.

162
00:12:51,710 --> 00:12:55,410
We can apply force as we want in these directions.

163
00:12:55,790 --> 00:13:04,820
Then, as we cannot rotate or x and y axis, we can apply desired tools in these directions as we cannot

164
00:13:04,820 --> 00:13:07,330
apply force or torque insert dilutions.

165
00:13:07,340 --> 00:13:12,410
We can control linear and angular velocities as we want in these tight actions.

166
00:13:13,910 --> 00:13:19,880
As we have said before, we want to choose artificial constraints from general velocity and force vectors

167
00:13:19,880 --> 00:13:21,440
so we can control them.

168
00:13:22,190 --> 00:13:25,220
And here you can see again the selection mattresses.

169
00:13:25,640 --> 00:13:32,090
Please be sure that you understand them because they will be essential for us further in that control

170
00:13:32,090 --> 00:13:32,540
method.

171
00:13:34,400 --> 00:13:40,190
As we have said before, selection mattresses are used to get the artificial constraints, namely the

172
00:13:40,190 --> 00:13:47,720
variables that we can control from general velocity and force vectors mode that also artificial and

173
00:13:47,720 --> 00:13:50,570
natural constraints are complementary to each other.

174
00:13:50,840 --> 00:13:57,170
You can see that easily by analyzing them from previous examples so we can decompose.

175
00:13:57,170 --> 00:14:03,110
Generalized velocity vector as artificial was our initial ones, and their dot product is zero.

176
00:14:03,710 --> 00:14:05,750
The same is valid for the force vector.

177
00:14:06,410 --> 00:14:10,970
Based on that, we can say that the product selection matrices are also zero.

178
00:14:11,330 --> 00:14:17,570
You can also check that from previous examples, this has physical meaning of reaction forces.

179
00:14:17,570 --> 00:14:24,770
Talks don't perform and useful work on feasible motions, which is obvious to us from basic physics.

180
00:14:26,870 --> 00:14:33,590
I know that you are tired now, but let's set this example also, which is nothing new but will help

181
00:14:33,590 --> 00:14:35,810
you to understand some basic concepts.

182
00:14:36,320 --> 00:14:39,530
Here we have a robot arm tries to turn crank.

183
00:14:40,280 --> 00:14:47,990
We defined two axis name, the base frame, which is indicated by f zero and constraint or task frame

184
00:14:47,990 --> 00:14:52,940
designated by f c crank mousa in an arc trajectory.

185
00:14:53,240 --> 00:14:59,510
As you can see why C is in the direction of tangential velocity the orientation.

186
00:14:59,760 --> 00:15:07,060
Difference between base frame and tusk frame is angle alpha, which changes as Chrome rotates.

187
00:15:07,840 --> 00:15:10,780
Here is the general velocity and force vectors.

188
00:15:11,770 --> 00:15:13,810
Let's determine natural constraints.

189
00:15:13,930 --> 00:15:20,680
If we don't have motion in X and Z directions because of geometry of the environment, we don't have

190
00:15:20,680 --> 00:15:22,940
rotation in X and Y direction.

191
00:15:22,960 --> 00:15:29,980
Also, again, due to the geometry of the environment, we cannot apply force in y direction because

192
00:15:29,980 --> 00:15:32,470
we have three motion in that direction.

193
00:15:32,950 --> 00:15:39,520
Also, we cannot apply torque over the z axis because we have the rotation in that direction.

194
00:15:40,420 --> 00:15:42,310
Here is the artificial constraints.

195
00:15:42,730 --> 00:15:44,050
I want you yourself.

196
00:15:44,050 --> 00:15:44,770
Analyze it.

197
00:15:45,040 --> 00:15:46,230
There is nothing new.

198
00:15:46,480 --> 00:15:48,130
You can analyze it easily.

199
00:15:48,760 --> 00:15:50,230
Here's the important thing.

200
00:15:50,530 --> 00:15:54,010
Don't fear we don't have anything new concept.

201
00:15:54,520 --> 00:16:00,790
We have stated before that constraints are defined in tusk frame because it's easy for us.

202
00:16:01,360 --> 00:16:03,010
OK, that's perfect.

203
00:16:03,250 --> 00:16:08,320
But general velocity and force vectors are defined with respect to base frame.

204
00:16:08,740 --> 00:16:14,950
So after the selection, we need to convert selected velocities UN forces to base frame.

205
00:16:15,520 --> 00:16:19,900
This will be done, as you know, through the rotation matrix of R.

206
00:16:20,770 --> 00:16:25,280
Here's the same concept for Force Vector, as you can see.

207
00:16:25,510 --> 00:16:30,010
Now the selection mattresses are angled dependent due to the rotation mattresses.

208
00:16:30,700 --> 00:16:34,840
However, again, dot product of these selection mattresses are zero.

209
00:16:35,500 --> 00:16:42,790
OK, now we know how to get the variables that we can control from the general force and velocity vectors.

210
00:16:43,300 --> 00:16:46,210
Now it's time to control these variables.
