I'm watching this video at 36.00 min. The guy gave an example but I'm not sure what is the problem. He stated that if we want to move a robot then we should to the following
for inhomogeneous case, $$ x' = Rx + t \\ R = \begin{bmatrix} cos\theta & -sin\theta \\ sin\theta & cos\theta \end{bmatrix} $$ where $t$ is the translation vector and $x$ is the previous position.
in homogeneous case, $$ x' = \begin{bmatrix} R & \bf{t} \\ \bf{0}^{T} & 1 \end{bmatrix} x $$ Now, he gave an example in which $$ t = \begin{bmatrix} 1 \\ 0 \end{bmatrix} , x = \begin{bmatrix} 0.7 \\ 0.5 \end{bmatrix} $$ My solution is as the following in Matlab
% inhomogeneous case
>> a = 45;
>> R = [cosd(a) -sind(a); sind(a) cosd(a)];
>> t = [1; 0];
>> x = [0.7; 0.5];
>> xnew = R*x + t
xnew =
1.1414
0.8485
For homogeneous case
>> xn = [R t; 0 0 1]*[x ; 1]
xn =
1.1414
0.8485
1.0000
Both have same result, but the guy got another result. What exactly he did is
>> xf = [R x; 0 0 1]*[t ; 1]
xf =
1.4071
1.2071
1.0000
Why he did switch $t$ and $x$? I'm aware of the issue that he is trying to calculate the velocity but in fact he is computing the position. This mistake in the notation won't affect the final result.
Second question, why he assumed that the forward movement of the robot in the above example should be $$ t = \begin{bmatrix}1\\0\end{bmatrix} $$ ? He said that because the robot always in the forward movement move in +x axis. Why this is the case? The movement in robot's frame is determined based on the direction of the robot and the distance the robot travels which is specified as hypotenuse length.