Is it possible to express any planar transformation in terms of rotation?

  • Thread starter priyansh
  • Start date
  • #1
17
0

Main Question or Discussion Point

Hi,

I'm am trying to calculate the radius of curvature of a trajectory in a plane. I am using Frenet-Serret formulas and perpendicular bisector approach to calculate the radius. It comes out that both the approaches lead to same answer when I calculate the radius for a trajectory generated using just rotation transformation. However, when I calculate the radius for a trajectory generated using mixed transformation (involving both rotation and translation) the answers are significantly different. This seems to me as strange as the trajectory must have only one radius at each point though it might vary along the arc length. So, the question boils down to whether it is possible to express any general planar transformation by just rotation?

Thanks.

Regards,
Priyanshu
 

Answers and Replies

  • #2
17
0
Any comments guys!
 
  • #3
907
2
What do you mean by "a trajectory generated using mixed transformation (involving both rotation and translation)"?
 
  • #4
17
0
I mean the homogeneous transformation matrix contains entry for both rotation and translation. Also, the rotation and translation vary as the trajectory is generated.
 
  • #5
907
2
In 2 dimensions, the answer is yes except for the case of translation without rotation (infinite radius of curvature).

In 3 dimensions, a transformation that consists of a nontrivial rotation and a translation is not necessarily equivalent to a simple rotation. A counterexample is a rotation about some axis combined with translation along the same axis.
 
  • #6
17
0
Thanks hamster. But I'm not clear about why is the radius obtained using both the approaches are significantly different when I increase the complexity of the curve in 2 dimensions. Say for t degrees of rotation, I translate by t^n and I vary t from 0 to 100. As I increase the value of n, the answer from both the approaches vary significantly. However, for a rotation+constant translation the radius by two approaches match exactly.
 
  • #7
907
2
can you show your calculations?
 
  • #8
17
0
Here is the MATLAB Code. Basically I'm applying the calculations to four corners of a square which is being transformed.

clear all
close all
clc

dt = 1;
Scale = 3; % Just defined to care of the plotting stuff
Sx = [0 0 1 1 0];
Sy = [0 1 1 0 0];
Sz = [0 0 0 0 0];
P1 = [];
P2 = [];
P3 = [];
P4 = [];
K = [];
X = [];
Y = [];
Z = [];
Radius = [];
Radius_PB = [];
Tprev = 0;

figure
plot(Sx,Sy)
axis(2*[-10 10 -10 10]*Scale);
grid on;
P = 2*Scale*[Sx; Sy; Sz;ones(size(Sx))];
Pprev = P;

for t = 1:dt:80
% R = makehgtform('zrotate',deg2rad(t),'translate',[(t/40) (t/40) 0]);
R = makehgtform('zrotate',deg2rad(t),'translate',[(t/50)^3 (t/50) 0]); % Homogeneous Transformation matrix
% R = makehgtform('zrotate',deg2rad(t),'translate',[2 4 0]);
% R = makehgtform('zrotate',deg2rad(t));
Pnew = R*P; % Evaluation of transformed points
P1 = [P1 Pnew(1:2,1)];
P2 = [P2 Pnew(1:2,2)];
P3 = [P3 Pnew(1:2,3)];
P4 = [P4 Pnew(1:2,4)];
PC = [P1 P2 P3 P4];

%Radius calculation using Frenet-Serret formulas
dr = (Pnew-Pprev); %Calculating dr
Tnew = [dr(:,1)/(sum(dr(:,1).^2))^0.5,...
dr(:,2)/(sum(dr(:,2).^2))^0.5,...
dr(:,3)/(sum(dr(:,3).^2))^0.5,...
dr(:,4)/(sum(dr(:,4).^2))^0.5,...
dr(:,5)/(sum(dr(:,5).^2))^0.5]; %Calculating dr/ds
dT = (Tnew-Tprev);
dTds = [dT(:,1)/(sum(dr(:,1).^2))^0.5,...
dT(:,2)/(sum(dr(:,2).^2))^0.5,...
dT(:,3)/(sum(dr(:,3).^2))^0.5,...
dT(:,4)/(sum(dr(:,4).^2))^0.5,...
dT(:,5)/(sum(dr(:,5).^2))^0.5];

k = [(sum(dTds(:,1).^2))^0.5,...
(sum(dTds(:,2).^2))^0.5,...
(sum(dTds(:,3).^2))^0.5,...
(sum(dTds(:,4).^2))^0.5]
radius = [1/k(1),1/k(2),1/k(3),1/k(4)]
K = [K; k];
Radius = [Radius; radius];

%Radius calculation using Perperndicular bisector method
drxyz = [dr(1:3,1), dr(1:3,2), dr(1:3,3), dr(1:3,4)];
Z = repmat([0; 0; 1],1,4);
Nr = cross(drxyz,Z);
Nr = [Nr(1:2,1)/sum(Nr(1:2,1).^2)^0.5, -Nr(1:2,2)/sum(Nr(1:2,2).^2)^0.5,...
Nr(1:2,3)/sum(Nr(1:2,3).^2)^0.5, -Nr(1:2,4)/sum(Nr(1:2,4).^2)^0.5];
MP = (Pnew+Pprev)/2;
DMP12 = [MP(1:2,2)-MP(1:2,1)];
DMP34 = [MP(1:2,4)-MP(1:2,3)];
lambda = [inv(Nr(:,1:2))*DMP12, inv(Nr(:,3:4))*DMP34]
r1 = MP(1:2,1)+lambda(1)*Nr(:,1)-Pnew(1:2,1); %Calculating the radius for 1st corner
r2 = MP(1:2,2)+lambda(2)*Nr(:,2)-Pnew(1:2,2);
r3 = MP(1:2,3)+lambda(3)*Nr(:,3)-Pnew(1:2,3);
r4 = MP(1:2,4)+lambda(4)*Nr(:,4)-Pnew(1:2,4);
Radius_PB = [Radius_PB; sum(r1.^2)^0.5, sum(r2.^2)^0.5,sum(r3.^2)^0.5, sum(r4.^2)^0.5 ]

%Plotting and annotating
plot(Pnew(1,:),Pnew(2,:),'-k',P1(1,:),P1(2,:),'-r',P2(1,:),P2(2,:),'-b',P3(1,:),...
P3(2,:),'-g',P4(1,:),P4(2,:),'-y');
text(Pnew(1,1),Pnew(2,1),'1');
text(Pnew(1,2),Pnew(2,2),'2');
text(Pnew(1,3),Pnew(2,3),'3');
text(Pnew(1,4),Pnew(2,4),'4');
axis(2*[-10 10 -10 10]*Scale);
grid on;
pause(0.01);
Pprev = Pnew;
Tprev = Tnew;
% pause;
end

figure
s = length(K)
h = plot(1:s,K(1:s,1),'-b',1:s,K(1:s,2),'-r',1:s,K(1:s,3),'-g',1:s,K(1:s,4),'-y');
axis tight
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('\kappa \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on

figure
h = plot(1:s,Radius(1:s,1),'-b',1:s,Radius(1:s,2),'-r',1:s,Radius(1:s,3),'-g',1:s,Radius(1:s,4),'-y');
axis tight
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('Radius of Curvature \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on

figure
h = plot(1:s,Radius_PB(1:s,1),'-b',1:s,Radius_PB(1:s,2),'-r',1:s,Radius_PB(1:s,3),'-g',1:s,Radius_PB(1:s,4),'-y');
axis tight
Title(' Radius of Curvature from perpendicular bisector','fontsize',12);
xlabel('Sample No \rightarrow','fontsize',12)
ylabel('Radius of Curvature \rightarrow','fontsize',12);
legend(h,'Vertex 1','Vertex 2','Vertex 3','Vertex 4');
grid on
 
  • #9
741
27
Is this related to the navigational problem of moving about the surface of the earth, at sea, say? There are many routes from A to B. One of them requires the navigator to set a single bearing direction, but, in general this is not the shortest route, which would be part of a great circle. The shortest route requires the navigator to keep changing the bearing.
 
  • #10
17
0
No, this is just a square in an XY plane which is being transformed in plane.
 

Related Threads on Is it possible to express any planar transformation in terms of rotation?

  • Last Post
Replies
3
Views
38K
Replies
2
Views
571
Replies
3
Views
3K
Replies
5
Views
708
Replies
4
Views
561
Replies
6
Views
2K
Replies
4
Views
777
Top