given position and orientation of two coordinate frames, how can transfer a vector from one frame to another.
The position is given in Cartesian space and the orientations in quaternion or Euler angels.
Robotics Stack Exchange is a question and answer site for professional robotic engineers, hobbyists, researchers and students. It only takes a minute to sign up.
Sign up to join this communitygiven position and orientation of two coordinate frames, how can transfer a vector from one frame to another.
The position is given in Cartesian space and the orientations in quaternion or Euler angels.
A homogeneous transform $T$ is 4x4 matrix that looks like:
$$T=\begin{bmatrix} R & t \\ 0_3 & 1 \end{bmatrix}$$
where $R$ is a 3x3 rotation matrix and $t$ is the translation. The rotation matrix can be calculated by converting either the quaternion or the euler angles.
This matrix is used to transform a point from one coordinate system to another. The equation would look like this:
$$p_A=T_{AB}*p_B$$
with $p$ representing a point in the homogeneous form which is just appending a 1 to the end of it.
$$p=\begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix}$$
If you don't want to use the homogenous form then the equations just break down to
$$p_A=R_{AB}*p_B+t_{AB}$$.
here $p$ is just a 3x1 vector without the 1.
You can directly use the quaternion if you change the rotation matrix multiplication to quaternion multiplication.
$$p_A=q_{AB}\otimes p_B+t_{AB}$$.
This equation converts a point in the $B$ coordinate system into the $A$ coordinate system.
You have or can easily figure out $T_{AB}$. I don't know how you are storing the vector, but it can always be broken into 2 endpoints. Now just use the equation above to transform both points, and then convert back into your vector format.