How to represent a (known and fixed) point in 3D space in a mobile frame of reference (in term of rotation...











up vote
0
down vote

favorite












Say that I have a fixed point $X$ in the world frame of reference (that I'm gonna call $X^{{w}}$). Moreover, I have a flying robot that can be anywhere in this space.



Its position in the world is denoted $P^{{w}}$. The robot can not only move freely but it can also rotate freely in all three axes.



Using $X^{{w}}$, $P^{{w}}$ and the 3 angle rotations on the three axes made by the robot ($phi_{x}$, $phi_{y}$ and $phi_{z}$), how can I obtain $X^{{P}}$ (the point $X$ as seen by the robot)?



Edit: by the angles $phi_{x}$, $phi_{y}$ and $phi_{z}$, I mean the robot's roll, pitch and yaw. An illustration of the angle $phi_{z}$ in the 2D XY plane:



Robot's position <span class=$P$ and angle $phi_z$ in 2D">










share|cite|improve this question
























  • Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
    – Michael Stachowsky
    Nov 16 at 11:45










  • If sequential, what order are they done in?
    – Michael Stachowsky
    Nov 16 at 11:45










  • They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
    – ebernardes
    Nov 16 at 11:48










  • They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
    – ebernardes
    Nov 16 at 11:49










  • I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
    – Michael Stachowsky
    Nov 16 at 13:17

















up vote
0
down vote

favorite












Say that I have a fixed point $X$ in the world frame of reference (that I'm gonna call $X^{{w}}$). Moreover, I have a flying robot that can be anywhere in this space.



Its position in the world is denoted $P^{{w}}$. The robot can not only move freely but it can also rotate freely in all three axes.



Using $X^{{w}}$, $P^{{w}}$ and the 3 angle rotations on the three axes made by the robot ($phi_{x}$, $phi_{y}$ and $phi_{z}$), how can I obtain $X^{{P}}$ (the point $X$ as seen by the robot)?



Edit: by the angles $phi_{x}$, $phi_{y}$ and $phi_{z}$, I mean the robot's roll, pitch and yaw. An illustration of the angle $phi_{z}$ in the 2D XY plane:



Robot's position <span class=$P$ and angle $phi_z$ in 2D">










share|cite|improve this question
























  • Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
    – Michael Stachowsky
    Nov 16 at 11:45










  • If sequential, what order are they done in?
    – Michael Stachowsky
    Nov 16 at 11:45










  • They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
    – ebernardes
    Nov 16 at 11:48










  • They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
    – ebernardes
    Nov 16 at 11:49










  • I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
    – Michael Stachowsky
    Nov 16 at 13:17















up vote
0
down vote

favorite









up vote
0
down vote

favorite











Say that I have a fixed point $X$ in the world frame of reference (that I'm gonna call $X^{{w}}$). Moreover, I have a flying robot that can be anywhere in this space.



Its position in the world is denoted $P^{{w}}$. The robot can not only move freely but it can also rotate freely in all three axes.



Using $X^{{w}}$, $P^{{w}}$ and the 3 angle rotations on the three axes made by the robot ($phi_{x}$, $phi_{y}$ and $phi_{z}$), how can I obtain $X^{{P}}$ (the point $X$ as seen by the robot)?



Edit: by the angles $phi_{x}$, $phi_{y}$ and $phi_{z}$, I mean the robot's roll, pitch and yaw. An illustration of the angle $phi_{z}$ in the 2D XY plane:



Robot's position <span class=$P$ and angle $phi_z$ in 2D">










share|cite|improve this question















Say that I have a fixed point $X$ in the world frame of reference (that I'm gonna call $X^{{w}}$). Moreover, I have a flying robot that can be anywhere in this space.



Its position in the world is denoted $P^{{w}}$. The robot can not only move freely but it can also rotate freely in all three axes.



Using $X^{{w}}$, $P^{{w}}$ and the 3 angle rotations on the three axes made by the robot ($phi_{x}$, $phi_{y}$ and $phi_{z}$), how can I obtain $X^{{P}}$ (the point $X$ as seen by the robot)?



Edit: by the angles $phi_{x}$, $phi_{y}$ and $phi_{z}$, I mean the robot's roll, pitch and yaw. An illustration of the angle $phi_{z}$ in the 2D XY plane:



Robot's position <span class=$P$ and angle $phi_z$ in 2D">







rotations






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Nov 16 at 15:26

























asked Nov 16 at 11:31









ebernardes

235




235












  • Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
    – Michael Stachowsky
    Nov 16 at 11:45










  • If sequential, what order are they done in?
    – Michael Stachowsky
    Nov 16 at 11:45










  • They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
    – ebernardes
    Nov 16 at 11:48










  • They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
    – ebernardes
    Nov 16 at 11:49










  • I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
    – Michael Stachowsky
    Nov 16 at 13:17




















  • Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
    – Michael Stachowsky
    Nov 16 at 11:45










  • If sequential, what order are they done in?
    – Michael Stachowsky
    Nov 16 at 11:45










  • They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
    – ebernardes
    Nov 16 at 11:48










  • They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
    – ebernardes
    Nov 16 at 11:49










  • I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
    – Michael Stachowsky
    Nov 16 at 13:17


















Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
– Michael Stachowsky
Nov 16 at 11:45




Are the three angles sequential rotations (first do x then rotate about the new y etc) or are they related to angles that the current robot frame makes with the world frames axes?
– Michael Stachowsky
Nov 16 at 11:45












If sequential, what order are they done in?
– Michael Stachowsky
Nov 16 at 11:45




If sequential, what order are they done in?
– Michael Stachowsky
Nov 16 at 11:45












They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
– ebernardes
Nov 16 at 11:48




They are the angular differences between the robot's axis and the world frame axes. For example, imagining that the robot is at point $(0,0,0)$, $phi_x$ is the angle between the robot's X axis and world's X axis (basically, the robot's orientation).
– ebernardes
Nov 16 at 11:48












They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
– ebernardes
Nov 16 at 11:49




They are not sequential, the robot can rotate in all 3 axes freely and at the same time.
– ebernardes
Nov 16 at 11:49












I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
– Michael Stachowsky
Nov 16 at 13:17






I think you need to be a little more specific before we can get the solution, which is ultimately just going to be a translation matrix. The robot's x axis has 3 such orientation angles - one with the world's x, y, and z axes. All told there are 9 orientation angles, which are usually represented as the cosines of their angles for computational reasons and are known as the "direction cosines". Some are redundant. With the direction cosines you can get your rotation matrix
– Michael Stachowsky
Nov 16 at 13:17












1 Answer
1






active

oldest

votes

















up vote
2
down vote



accepted










NOTE: this answer is the "easy" method. There are a lot of different and more efficient ways to represent rotations, but this will solve your problem.



To begin we need to define three rotation matrices: each one representing a rotation about a different axis. More information here. We have:



Rotate about the x axis:



$$R_x(theta_x) = begin{bmatrix} 1 & 0 &0 \ 0 & cos(theta_x) & -sin(theta_x) \ 0 & sin(theta_x) & cos(theta_x) end{bmatrix}$$



Rotate about the y axis:



$$R_y(theta_y) = begin{bmatrix} cos(theta_y) & 0 & sin(theta_y) \ 0 & 1 & 0 \ -sin(theta_y) & 0 & cos(theta_y) end{bmatrix}$$



Rotate about the z axis:



$$R_z(theta_z) = begin{bmatrix} cos(theta_z) & -sin(theta_z) &0 \ sin(theta_z) & cos(theta_z) & 0 \ 0 & 0 & 1 end{bmatrix}$$



We now need to figure out an order of rotation. This is usually up to you and for much more information please see here. For now we'll just assume you're doing the order x-y-z. It's up to you to figure out the order you want! Once you rotate with one matrix your coordinate axes move, so the order is semi-important. As long as you are consistent you're OK.



With the order I chose, you need to create a rotation matrix, $R = R_z(theta_z)R_y(theta_y)R_x(theta_x)$. Note the order of the matrices - x is the first rotation, and thus it appears at the end of that expression.



We are now about to do something odd and something else that is convenient.



The odd thing: The rotation matrix will only rotate a vector, but it will not translate a point. You know $X^{{W}}$ and want that point in the robot's frame, but the robot and the world do not share an origin. You'll need to simultaneously rotate the point so that it is referenced with respect to the robot's coordinate axes, and then translate it so that the point is reckoned from the robot's origin.



The convenient thing: I'm very lazy today. I'm going to assume that you actually have $X^{{P}}$ and you want $X^{{W}}$, instead of what you said. This is because you have the robot's angles but a world point. In order to go the other way you need to figure out the opposite angles - what are the orientations of the world's axis with respect to the robot. There are negatives involved.



There are MANY ways to do this. If you just need to know and don't want a single matrix equation, then the answer is:



$$X^{{W}} = RX^{{P}} - P^{{W}}$$



This is read as: "First we rotate the point so that the point's coordinates are with respect to a frame that is centered at the world's origin but oriented to align with the robot. Next, we move the point into a new frame so that the origin is where the robot is.






share|cite|improve this answer





















  • Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
    – ebernardes
    2 days ago










  • Yes, that's correct
    – Michael Stachowsky
    2 days ago











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3001028%2fhow-to-represent-a-known-and-fixed-point-in-3d-space-in-a-mobile-frame-of-refe%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
2
down vote



accepted










NOTE: this answer is the "easy" method. There are a lot of different and more efficient ways to represent rotations, but this will solve your problem.



To begin we need to define three rotation matrices: each one representing a rotation about a different axis. More information here. We have:



Rotate about the x axis:



$$R_x(theta_x) = begin{bmatrix} 1 & 0 &0 \ 0 & cos(theta_x) & -sin(theta_x) \ 0 & sin(theta_x) & cos(theta_x) end{bmatrix}$$



Rotate about the y axis:



$$R_y(theta_y) = begin{bmatrix} cos(theta_y) & 0 & sin(theta_y) \ 0 & 1 & 0 \ -sin(theta_y) & 0 & cos(theta_y) end{bmatrix}$$



Rotate about the z axis:



$$R_z(theta_z) = begin{bmatrix} cos(theta_z) & -sin(theta_z) &0 \ sin(theta_z) & cos(theta_z) & 0 \ 0 & 0 & 1 end{bmatrix}$$



We now need to figure out an order of rotation. This is usually up to you and for much more information please see here. For now we'll just assume you're doing the order x-y-z. It's up to you to figure out the order you want! Once you rotate with one matrix your coordinate axes move, so the order is semi-important. As long as you are consistent you're OK.



With the order I chose, you need to create a rotation matrix, $R = R_z(theta_z)R_y(theta_y)R_x(theta_x)$. Note the order of the matrices - x is the first rotation, and thus it appears at the end of that expression.



We are now about to do something odd and something else that is convenient.



The odd thing: The rotation matrix will only rotate a vector, but it will not translate a point. You know $X^{{W}}$ and want that point in the robot's frame, but the robot and the world do not share an origin. You'll need to simultaneously rotate the point so that it is referenced with respect to the robot's coordinate axes, and then translate it so that the point is reckoned from the robot's origin.



The convenient thing: I'm very lazy today. I'm going to assume that you actually have $X^{{P}}$ and you want $X^{{W}}$, instead of what you said. This is because you have the robot's angles but a world point. In order to go the other way you need to figure out the opposite angles - what are the orientations of the world's axis with respect to the robot. There are negatives involved.



There are MANY ways to do this. If you just need to know and don't want a single matrix equation, then the answer is:



$$X^{{W}} = RX^{{P}} - P^{{W}}$$



This is read as: "First we rotate the point so that the point's coordinates are with respect to a frame that is centered at the world's origin but oriented to align with the robot. Next, we move the point into a new frame so that the origin is where the robot is.






share|cite|improve this answer





















  • Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
    – ebernardes
    2 days ago










  • Yes, that's correct
    – Michael Stachowsky
    2 days ago















up vote
2
down vote



accepted










NOTE: this answer is the "easy" method. There are a lot of different and more efficient ways to represent rotations, but this will solve your problem.



To begin we need to define three rotation matrices: each one representing a rotation about a different axis. More information here. We have:



Rotate about the x axis:



$$R_x(theta_x) = begin{bmatrix} 1 & 0 &0 \ 0 & cos(theta_x) & -sin(theta_x) \ 0 & sin(theta_x) & cos(theta_x) end{bmatrix}$$



Rotate about the y axis:



$$R_y(theta_y) = begin{bmatrix} cos(theta_y) & 0 & sin(theta_y) \ 0 & 1 & 0 \ -sin(theta_y) & 0 & cos(theta_y) end{bmatrix}$$



Rotate about the z axis:



$$R_z(theta_z) = begin{bmatrix} cos(theta_z) & -sin(theta_z) &0 \ sin(theta_z) & cos(theta_z) & 0 \ 0 & 0 & 1 end{bmatrix}$$



We now need to figure out an order of rotation. This is usually up to you and for much more information please see here. For now we'll just assume you're doing the order x-y-z. It's up to you to figure out the order you want! Once you rotate with one matrix your coordinate axes move, so the order is semi-important. As long as you are consistent you're OK.



With the order I chose, you need to create a rotation matrix, $R = R_z(theta_z)R_y(theta_y)R_x(theta_x)$. Note the order of the matrices - x is the first rotation, and thus it appears at the end of that expression.



We are now about to do something odd and something else that is convenient.



The odd thing: The rotation matrix will only rotate a vector, but it will not translate a point. You know $X^{{W}}$ and want that point in the robot's frame, but the robot and the world do not share an origin. You'll need to simultaneously rotate the point so that it is referenced with respect to the robot's coordinate axes, and then translate it so that the point is reckoned from the robot's origin.



The convenient thing: I'm very lazy today. I'm going to assume that you actually have $X^{{P}}$ and you want $X^{{W}}$, instead of what you said. This is because you have the robot's angles but a world point. In order to go the other way you need to figure out the opposite angles - what are the orientations of the world's axis with respect to the robot. There are negatives involved.



There are MANY ways to do this. If you just need to know and don't want a single matrix equation, then the answer is:



$$X^{{W}} = RX^{{P}} - P^{{W}}$$



This is read as: "First we rotate the point so that the point's coordinates are with respect to a frame that is centered at the world's origin but oriented to align with the robot. Next, we move the point into a new frame so that the origin is where the robot is.






share|cite|improve this answer





















  • Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
    – ebernardes
    2 days ago










  • Yes, that's correct
    – Michael Stachowsky
    2 days ago













up vote
2
down vote



accepted







up vote
2
down vote



accepted






NOTE: this answer is the "easy" method. There are a lot of different and more efficient ways to represent rotations, but this will solve your problem.



To begin we need to define three rotation matrices: each one representing a rotation about a different axis. More information here. We have:



Rotate about the x axis:



$$R_x(theta_x) = begin{bmatrix} 1 & 0 &0 \ 0 & cos(theta_x) & -sin(theta_x) \ 0 & sin(theta_x) & cos(theta_x) end{bmatrix}$$



Rotate about the y axis:



$$R_y(theta_y) = begin{bmatrix} cos(theta_y) & 0 & sin(theta_y) \ 0 & 1 & 0 \ -sin(theta_y) & 0 & cos(theta_y) end{bmatrix}$$



Rotate about the z axis:



$$R_z(theta_z) = begin{bmatrix} cos(theta_z) & -sin(theta_z) &0 \ sin(theta_z) & cos(theta_z) & 0 \ 0 & 0 & 1 end{bmatrix}$$



We now need to figure out an order of rotation. This is usually up to you and for much more information please see here. For now we'll just assume you're doing the order x-y-z. It's up to you to figure out the order you want! Once you rotate with one matrix your coordinate axes move, so the order is semi-important. As long as you are consistent you're OK.



With the order I chose, you need to create a rotation matrix, $R = R_z(theta_z)R_y(theta_y)R_x(theta_x)$. Note the order of the matrices - x is the first rotation, and thus it appears at the end of that expression.



We are now about to do something odd and something else that is convenient.



The odd thing: The rotation matrix will only rotate a vector, but it will not translate a point. You know $X^{{W}}$ and want that point in the robot's frame, but the robot and the world do not share an origin. You'll need to simultaneously rotate the point so that it is referenced with respect to the robot's coordinate axes, and then translate it so that the point is reckoned from the robot's origin.



The convenient thing: I'm very lazy today. I'm going to assume that you actually have $X^{{P}}$ and you want $X^{{W}}$, instead of what you said. This is because you have the robot's angles but a world point. In order to go the other way you need to figure out the opposite angles - what are the orientations of the world's axis with respect to the robot. There are negatives involved.



There are MANY ways to do this. If you just need to know and don't want a single matrix equation, then the answer is:



$$X^{{W}} = RX^{{P}} - P^{{W}}$$



This is read as: "First we rotate the point so that the point's coordinates are with respect to a frame that is centered at the world's origin but oriented to align with the robot. Next, we move the point into a new frame so that the origin is where the robot is.






share|cite|improve this answer












NOTE: this answer is the "easy" method. There are a lot of different and more efficient ways to represent rotations, but this will solve your problem.



To begin we need to define three rotation matrices: each one representing a rotation about a different axis. More information here. We have:



Rotate about the x axis:



$$R_x(theta_x) = begin{bmatrix} 1 & 0 &0 \ 0 & cos(theta_x) & -sin(theta_x) \ 0 & sin(theta_x) & cos(theta_x) end{bmatrix}$$



Rotate about the y axis:



$$R_y(theta_y) = begin{bmatrix} cos(theta_y) & 0 & sin(theta_y) \ 0 & 1 & 0 \ -sin(theta_y) & 0 & cos(theta_y) end{bmatrix}$$



Rotate about the z axis:



$$R_z(theta_z) = begin{bmatrix} cos(theta_z) & -sin(theta_z) &0 \ sin(theta_z) & cos(theta_z) & 0 \ 0 & 0 & 1 end{bmatrix}$$



We now need to figure out an order of rotation. This is usually up to you and for much more information please see here. For now we'll just assume you're doing the order x-y-z. It's up to you to figure out the order you want! Once you rotate with one matrix your coordinate axes move, so the order is semi-important. As long as you are consistent you're OK.



With the order I chose, you need to create a rotation matrix, $R = R_z(theta_z)R_y(theta_y)R_x(theta_x)$. Note the order of the matrices - x is the first rotation, and thus it appears at the end of that expression.



We are now about to do something odd and something else that is convenient.



The odd thing: The rotation matrix will only rotate a vector, but it will not translate a point. You know $X^{{W}}$ and want that point in the robot's frame, but the robot and the world do not share an origin. You'll need to simultaneously rotate the point so that it is referenced with respect to the robot's coordinate axes, and then translate it so that the point is reckoned from the robot's origin.



The convenient thing: I'm very lazy today. I'm going to assume that you actually have $X^{{P}}$ and you want $X^{{W}}$, instead of what you said. This is because you have the robot's angles but a world point. In order to go the other way you need to figure out the opposite angles - what are the orientations of the world's axis with respect to the robot. There are negatives involved.



There are MANY ways to do this. If you just need to know and don't want a single matrix equation, then the answer is:



$$X^{{W}} = RX^{{P}} - P^{{W}}$$



This is read as: "First we rotate the point so that the point's coordinates are with respect to a frame that is centered at the world's origin but oriented to align with the robot. Next, we move the point into a new frame so that the origin is where the robot is.







share|cite|improve this answer












share|cite|improve this answer



share|cite|improve this answer










answered Nov 16 at 16:13









Michael Stachowsky

1,208417




1,208417












  • Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
    – ebernardes
    2 days ago










  • Yes, that's correct
    – Michael Stachowsky
    2 days ago


















  • Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
    – ebernardes
    2 days ago










  • Yes, that's correct
    – Michael Stachowsky
    2 days ago
















Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
– ebernardes
2 days ago




Thanks a lot! Just a last question: If I want to find the X_P from X_W, I'd have to inverse this rotation matrix. Would it be the same as multiplying all the three simple rotation matrices in the reverse order (and switching the signal of the 3 angles)?
– ebernardes
2 days ago












Yes, that's correct
– Michael Stachowsky
2 days ago




Yes, that's correct
– Michael Stachowsky
2 days ago


















 

draft saved


draft discarded



















































 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3001028%2fhow-to-represent-a-known-and-fixed-point-in-3d-space-in-a-mobile-frame-of-refe%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Quarter-circle Tiles

build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

Mont Emei