-
Notifications
You must be signed in to change notification settings - Fork 773
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
Measure IMU orientation with respect to world #1051
Measure IMU orientation with respect to world #1051
Conversation
Report the IMU orientation from the sensor plugin with respect to the world frame. This complies with convention documented in REP 145: https://www.ros.org/reps/rep-0145.html In order to not break existing behavior, users should opt-in by adding a new SDF tag. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
I made a comment about this on gazebo issue 1959: People have been complaining about this for a while, so I would like to get this into current releases so we can add warnings in noetic / foxy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I approve, but I want to run this past @chapulina
I just have some questions. Can this be documented somewhere? Maybe here? It would also be nice to add some migration info to the changelog (i.e. commit message).
Just note that for ROS 2 we're using About deprecation:
What warning would that be? Is it wrong to not set the tag? Should it just be an informational message? It would be interesting to see the Noetic PR before this one is merged.
I'm not sure I understand, false Going forward, should we consider adding this option to SDF? |
Sure. If you point me to the right place, I can open a PR.
Should I make this change for Melodic / Noetic so that they're consistent with ROS 2, or change the case only in ROS 2? Regarding warnings, we think that the new behavior is the correct behavior. But, we don't want to break existing user code if they are relying on the old behavior. Furthermore, we'd like to avoid breaking the behavior silently between releases. Therefore, we will log a warning if the tag isn't set so that the user is aware of the change (informational warning). Furthermore, since we want to encourage people to use the new behavior we log another warning if they are choosing the old (default) behavior (deprecation warning). The idea is that in a future release (G-turtle) we will remove the new tag completely and default to the new behavior. |
The tutorial has an
I'd keep the
I'm confused, the default behaviour on Melodic / Dashing / Eloquent is equivalent to On Noetic / Foxy, the default will be equivalent to
Is there a downside to keeping the tag forever? I can imagine users are already accounting for the current frame in their code, and it would be convenient if they could just keep their code just setting an extra flag. I'd vote for supporting the legacy behaviour without warnings if the user explicitly sets the tag to true. |
Correct. Your code snippets look like what I described.
The only downside I can think of is people choosing to set the new tag to true without understanding the consequences. It just seems like an odd option to choose |
Yup, I don't think anyone would choose that because they desire that behaviour. The current behaviour has been around for several releases. Most likely, many downstream users hit that problem and are doing something on their end to compensate for that, like rotating the data. Once we change the default behaviour, their code will be doing the wrong thing. Rather than telling them to change their code, we can tell them to set |
Once we change the default behavior, their code will be doing the wrong thing, but only if they skip from a very old version past the versions with deprecation warnings. I think we can change behavior in a new release if we document it after providing adequate warnings, no? |
I'm okay not deprecating the old behavior if that is the preference, i.e. not warning users on Noetic and Foxy if they set |
Sure, we can remove the patch. I was just thinking that there was no downside to keeping it. |
I opened a pull request to document the new parameter in the gazebo tutorials: |
@chapulina I've updated those tutorials that you mentioned. Do you have any other feedback? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh sorry, I didn't mean to hold this. LGTM.
Report the IMU orientation from the sensor plugin with respect to the world frame. This complies with convention documented in REP 145: https://www.ros.org/reps/rep-0145.html In order to not break existing behavior, users should opt-in by adding a new SDF tag. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Report the IMU orientation from the sensor plugin with respect to the world frame. This complies with convention documented in REP 145: https://www.ros.org/reps/rep-0145.html In order to not break existing behavior, users should opt-in by adding a new SDF tag. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Report the IMU orientation from the sensor plugin with respect to the world frame. This complies with convention documented in REP 145: https://www.ros.org/reps/rep-0145.html In order to not break existing behavior, users should opt-in by adding a new SDF tag. Signed-off-by: Jacob Perron <jacob@openrobotics.org>
Report the IMU orientation from the sensor plugin with respect to the world frame.
This complies with convention documented in REP 145: https://www.ros.org/reps/rep-0145.html
In order to not break existing behavior, users should opt-in by adding a new SDF tag.
I'm open to naming suggestions for the new SDF tag.
Pending approval of this change, I will follow up with ports to Noetic and ROS 2 branches. @scpeters and I discussed this offline, specifically we propose to change the behavior as follows:
false
.