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

Add draft of velocity transform specification #4235

Open
wants to merge 8 commits into
base: rolling
Choose a base branch
from
Open

Conversation

ahcorde
Copy link
Contributor

@ahcorde ahcorde commented Mar 14, 2024

Open this as a PR @tfoote to discuss here

Signed-off-by: Alejandro Hernández Cordero <[email protected]>
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
@ahcorde
Copy link
Contributor Author

ahcorde commented Mar 15, 2024

FYI @caguero

source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
_{E}T_{A} * V_{A}^{A - E} = V_{E}^{A - E}


Velocities can be added or subtracted if they're represented in the same frame, in this case ``Obs``.
Copy link

Choose a reason for hiding this comment

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

Wouldn't the reference and moving frames of the two velocities have to satisfy some constraint? The example below makes sense in that we're saying add the velocity of A relative to B and velocity of B relative to C to get velocity of A relative to C. But if B wasn't the reference frame in the first term and the moving frame in the second term, e.g., the moving frame in the second term was D, the end result would not be meaningful.

i.e, what would be the result of V_{Obs}^{A - B} + V_{Obs}^{D - C}

Copy link

Choose a reason for hiding this comment

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

@ahcorde I didn't mean to request that this be changed to V_{Obs}^{D - C}. I was asking if we need to clarify this more since I didn't think it's sufficient to just say the observation frames must be the same.

Choose a reason for hiding this comment

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

The velocity of a point, as seen from two different frames, must also include the relative angular velocity vector between the two frames, but I think that is not handled here, right?

PS: I mean, the classic kinematics formula: $v_B = v_A + \omega \times (AB)$

Copy link
Contributor

Choose a reason for hiding this comment

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

@jlblancoc Yes, this is covered by the requirement that they're observed from the same frame. If you have velocities in a different observation frame, it will include those additional terms to put it into the same observational frame.

@azeey You're right that differencing two velocities that don't share a frame(referrence or moving) is not semantically meaningful. I think that we currently don't enforce the constraints on the lower level math primatives such as vectors and leave this to the users to make sure they do appropriate semantic math. I would love to extend and provide a way to enforce that. But that's more for the linear math library rather than what we're adding on top. And that's also likely a very big effort that I'm not sure we're ready to put into developing.

source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
Signed-off-by: Alejandro Hernández Cordero <[email protected]>
@ahcorde ahcorde requested review from azeey and tfoote April 3, 2024 11:21
@ahcorde
Copy link
Contributor Author

ahcorde commented Apr 19, 2024

@tfoote do you mind to take a look ?

@ahcorde
Copy link
Contributor Author

ahcorde commented Jul 19, 2024

@tfoote do you mind to take a look ?

Copy link
Contributor

@tfoote tfoote left a comment

Choose a reason for hiding this comment

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

This looks like a great improvement for understanding the core transforms. And there's always more that can be added but this looks like a good core coverage.

Copy link
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

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

A few small fixes inline.

source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
source/Concepts/Intermediate/About-Tf2.rst Outdated Show resolved Hide resolved
Copy link

HTML artifacts: https://github.com/ros2/ros2_documentation/actions/runs/10504912757/artifacts/1841323767.

To view the resulting site:

  1. Click on the above link to download the artifacts archive
  2. Extract it
  3. Open html-artifacts-4235/index.html in your favorite browser

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.

5 participants