Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2023 updates to orientation chapter. #129

Merged
merged 10 commits into from
Feb 16, 2023
Merged

2023 updates to orientation chapter. #129

merged 10 commits into from
Feb 16, 2023

Conversation

moorepants
Copy link
Owner

@moorepants moorepants commented Feb 15, 2023

Updates:

  • Added some new short exercises.
  • Turned the final Euler angle explanation into an exercise.
  • Adjust/improved wording.
  • Added some more external links.
  • Simplified the intersphinx links to sympy.
  • Add handwritten direction cosine matrix notation and unit vector notation.

@Peter230655
Copy link

Peter230655 commented Feb 15, 2023

Vectors have a magnitude, direction, and sense (:math:\pm) but notably not a
position
.
1.
I find the addition: notably not a position to be very important! Maybe you could add something like: two vectors which differ only by a parallel displacement are (represented by) the same vector?
2.
I am not very clear, what sense means. Does direction not imply that the vector defines a line in space and which way to travel in the positive direction? ( May be may lack of command of English)

@moorepants moorepants marked this pull request as ready for review February 16, 2023 08:16
@moorepants moorepants changed the title [WIP] 2023 updates to orientation chapter. 2023 updates to orientation chapter. Feb 16, 2023
@moorepants
Copy link
Owner Author

I am not very clear, what sense means. Does direction not imply that the vector defines a line in space and which way to travel in the positive direction? ( May be may lack of command of English)

I use "direction" to tell us what line in space the vector is parallel to and "sense" the positive or negative sense along that direction. I show it a bit more in the vectors chapter.

@moorepants
Copy link
Owner Author

@wwolfie this is ready to be checked if you have time. Sorry that I'm late getting this updated. I'll try to do it earlier in the week next week.

@moorepants
Copy link
Owner Author

two vectors which differ only by a parallel displacement are (represented by) the same vector

This wording seems to imply that vectors can have a displacement. So I don't think I'll add this.

Maybe "even if vectors are drawn with an apparent parallel displacement they are the same". I show this in the figure though, maybe it just isn't as explicit as it could be.

@Peter230655
Copy link

I admit I did not look at the picture. Your wording -if the picture does not say it- of course is much better.
I just find this no position statement very important: An engineer thinks about a vector as being a force attacing at some point - at least this happened with me until I got better in math.

Sense: clear now, thanks!

orientation.rst Outdated Show resolved Hide resolved
orientation.rst Outdated Show resolved Hide resolved
Write :math:`{}^N\mathbf{C}^A` for simple rotations about both the shared
:math:`\hat{n}_x` and :math:`\hat{a}_x` and shared :math:`\hat{n}_y` and
:math:`\hat{a}_y` axes, rotating :math:`A` with respect to :math:`N` through
angle :math:`\theta`.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The direction of the angle is never specified. Maybe the default direction is best explained at the spot where also the "right-handedness" of the frames is specified?


\begin{bmatrix}
1 & 0 & 0 \\
0 & \cos{\theta} & \sin{\theta} \\
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's early morning, but I have convinced myself that this is the inverse of the correct solution

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In [1]: import sympy as sm

In [2]: import sympy.physics.mechanics as me

In [3]: theta = sm.symbols('theta')

In [4]: A = me.ReferenceFrame('A')

In [5]: B = me.ReferenceFrame('B')

In [6]: B.orient_axis(A, theta, A.x); B.dcm(A)
Out[6]: 
Matrix([
[1,           0,          0],
[0,  cos(theta), sin(theta)],
[0, -sin(theta), cos(theta)]])

In [7]: B.orient_axis(A, theta, A.y); B.dcm(A)
Out[7]: 
Matrix([
[cos(theta), 0, -sin(theta)],
[         0, 1,           0],
[sin(theta), 0,  cos(theta)]])

In [8]: B.orient_axis(A, theta, A.z); B.dcm(A)
Out[8]: 
Matrix([
[ cos(theta), sin(theta), 0],
[-sin(theta), cos(theta), 0],
[          0,          0, 1]])

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it is correct, at least per my definition of the rotation matrix notation.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it is a change in notation that tripped me up

Similarly to the simple example above, we can write these equations:
Similar to the simple example above, we can write these equations if the
:math:`\alpha_y` and :math:`\alpha_z` angles relate the :math:`\hat{a}_y` and
:math:`\hat{a}_z` unit vectors to those of :math:`N`:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Easiest to add this comment here rather than make new PR:
In the sentence "Since we are working with mutually perpendicular unit vectors ...", 'mutually perpendicular' and the second 'unit' are not needed, which might confuse readers who do not know the dot product <-> cosine rule by heart.

orientation.rst Outdated Show resolved Hide resolved
orientation.rst Outdated
successive simple orientations to go from :math:`A` to :math:`D`. We can
formulate the direction cosine matrices for the reference frames using the same
technique for the successive simple orientations shown in :ref:`Successive
Orientations`, but now we will have three dimensional orientation between
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit unclear, maybe like this:

Suggested change
Orientations`, but now we will have three dimensional orientation between
Orientations`, but now we will have a sequence of three rotations between

orientation.rst Outdated
formulate the direction cosine matrices for the reference frames using the same
technique for the successive simple orientations shown in :ref:`Successive
Orientations`, but now we will have three dimensional orientation between
:math:`A` and :math:`D` allowing :math:`D` to be oriented in any direction
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure that it is obvious that three is the right number, so would split:

Suggested change
:math:`A` and :math:`D` allowing :math:`D` to be oriented in any direction
:math:`A` and :math:`D`. With three rotations, :math:`D` can be oriented in any direction

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried to reword this:

successive simple orientations to go from :math:`A` to :math:`D`. We can
formulate the direction cosine matrices for the reference frames using the same
technique for the successive simple orientations shown in :ref:`Successive
Orientations`, but now our sequence of three orientations will enable us to
orient :math:`D` in any way possible relative to :math:`A` in three dimensional
space.

orientation.rst Outdated
to the handgrip frame. These successive :math:`z\textrm{-}x\textrm{-}y`
orientations are a standard way of describing the orientation of two reference
frames and are often referred to as `Euler Angles`_ [#]_.
With these three successive orientations the camera can be oriented arbitrarily
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems slightly redundant. Perhaps rotation is a better word here?

Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had a mixture of "rotation" and "orientation" last year when I first wrote this, but ended up changing everything to "orientation" to be consistent and to match the SymPy method names.

orientation.rst Outdated Show resolved Hide resolved
@Peter230655
Copy link

Would this not be called an orthonormal matrix, if A * A.T = I and det(A) = 1 ?

@moorepants
Copy link
Owner Author

Seems like they are the same thing here: https://en.wikipedia.org/wiki/Orthogonal_matrix

@moorepants
Copy link
Owner Author

Thanks for the feedback here. Merging.

@moorepants moorepants merged commit cf661ee into master Feb 16, 2023
@moorepants moorepants deleted the orientation-update branch February 16, 2023 15:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants