MATLAB: Distance between two origins

3danglehomogeneous transformation matrixMATLABmatrixoriginrobotrotationtranslationtrianglevectorvectors

Hi!
I hope I can explain clearly my situation.
Basically, I know the position of a point with respect two different references; so, say 'tc' and 'tb' the two vectors:
tc=[xc,yc,zc,1]' and tb=[xb,yb,zb,1]'.
There is a 1 at the end of each vector because of the relationship between the two points:
tc=Tbc*tb
Where Tbc is the transformation matrix 4×4 that allow me to pass from tb to tc; in particular:
Tbc=[Rbc, obc;
0, 0, 0, 1];
Where Rbc is the rotation matrix between the two known vectors, and obc is the distance between the origins of the two reference systems.
Now, I really don't know how to calculate the distance between the two origins; I've tried with some triangle's theorem, namely I've evaluated the angle between the two vectors and then I've calculated obc like it was the third side of the triangle, using the cosine's theorem, but the result is a vector with too high values, maybe because I can't use this rule for a 3d vector.
I really don't have other ideas.
Can you please suggest me something?

Best Answer

Okay, done! I'm writing here the solution, so it could be helpful if someone will have my same problem!
Basically, I've inverted a linear relationship between the vector, that is:
p0=o10+R*p1
Now, if you know p0 and p1, you can calculate R and then:
o10=p0-R*p1
It's been really easy, but I didn't know this equation.
I hope it can help someone else! :D
Related Question