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

Provide mathematical definition for components::WorldLinearAcceleration and components::LinearAcceleration #87

Open
traversaro opened this issue Apr 22, 2020 · 0 comments
Labels
documentation Improvements or additions to documentation physics Involves Ignition Physics

Comments

@traversaro
Copy link
Contributor

traversaro commented Apr 22, 2020

The definition for the components components::WorldLinearAcceleration and components::LinearAcceleration currently provide in https://github.com/ignitionrobotics/ign-gazebo/blob/de5b025968c9cf0cfbfd8a852458482e87c70c6c/include/ignition/gazebo/components/LinearAcceleration.hh may be confusing:

  • LinearAcceleration : A component type that contains linear acceleration of an entity represented by ignition::math::Vector3d.
  • WorldLinearAcceleration : A component type that contains linear acceleration of an entity
    /// in the world frame represented by ignition::math::Vector3d.

In particular, for this description it is not clear for example in which frame the time derivative is performed, an what are the relation between this components, the corresponding velocity components, and the quite common in robotics definition of acceleration according to Featherstone books.

As far as I am able to read from the code, it seems to be that, if we define:

  • ʷoₗ ∈ ℝ³ : the 3d vector that connects the origin of the world frame w and the origin of the link frame l, that points toward the origin of frame l and oriented with the orientation of world frame w
  • ʷRₗ ∈ SO(3) : the rotation matrix that multiplied by a 3d vector expressed with orientation of the l frame it transform it in a 3d vector oriented according to the w frame
  • ʷωₗ ∈ ℝ³ is the world angular velocity of frame L, defined such that ʷωₗ × = ʷṘₗ ʷRₗᵀ

Then we have:

Name Definition
components::LinearVelocity ʷRₗᵀ ʷȯₗ
components::WorldLinearVelocity ʷȯₗ
components::LinearAcceleration ʷRₗᵀ ʷöₗ
components::WorldLinearAcceleration ʷöₗ

It this is correct, it may be useful to clearly specify that components::LinearAcceleration is not the derivative of components::LinearVelocity, and that components::LinearAcceleration is not the linear part of the 6D Body Spatial Acceleration, that are both aspects that in my experience can confuse users.

This is related to #83, in particular for the Physics system.

cc @diegoferigo

@chapulina chapulina added the documentation Improvements or additions to documentation label May 25, 2020
@chapulina chapulina added the physics Involves Ignition Physics label Jul 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation physics Involves Ignition Physics
Projects
None yet
Development

No branches or pull requests

2 participants