-
Notifications
You must be signed in to change notification settings - Fork 195
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
static_transform_publisher argument order #292
Comments
Yeah, that is definitely what happened. This change was first released for Foxy, so it wouldn't have appeared in Eloquent. Apologies for almost killing your bot 🙃. This was completely unintentional, so I made a pull request (see #294) to fix it. In the meantime, you might try using the component version (which was the main feature I meant to introduce with that PR). For the component version, you would put this in your launchfile:
|
Great. Thanks. I'll open a PR for the tf2 tutorial to match this. |
document ros2/geometry2#292 bug
Thanks for reporting this bug. I'm sorry I missed it in the review. Unfortunately, this puts us in a really unfortunate spot, since we are going to be inconsistent no matter what we do. The options
There may be other options that I'm not thinking of. What do people think about these options? |
Honestly, I think this is a testament to how unintuitive the original ordering is... After @Stapelzeiger reported this issue, I remembered pretty quickly how many times this bit me in ROS 1. I think this ordering of the arguments is an artifact of an older tf/tf2 implementations which used As such, I think we should move towards your second option (declaring the current order of the options to be correct from here on). I lean that way because it would break the behavior currently happening in the Foxy release. That said, at a very minimum, the CLI usage should be updated. Regardless, I do apologize to anyone to whom this patch has given a headache. |
Option 2 might bring more confusion in the future, since Dashing and Eloquent are still using the previous order and most importantly so does ROS1 where a lot (most?) of people are still stuck and will be porting their robots from in the future.
I don't see the order of option 2 more intuitive than option 1. If you are thinking in body fixed (intrinsic) rotations the sequence it is yaw-pitch-roll (matching arguments order of option 1), if you think in terms of static rotation axes (extrinsic) it is roll-pitch-yaw (matching arguments order of option 2). Both are equivalent and either can be more intuitive depending the use case. I think option 3 is probably the best as it will eliminate possible confusion in the future. |
This could just be my perspective, if people are more familiar with the YPR ordering then let's certainly do that. I figured it might be useful to consider the ordering found within REP-103 in this discussion as well.
Thinking on it further, however, I support both 2 and 3, but lean towards 2 because it is already released. Option 3 would certainly break things uniformly, and thus would call attention to it (it would crash instead of just behave in a potentially unexpected way). Maybe a solution would be to add |
Yeah, my intention here would be to roll it out a little more slowly. That is, we would implement the @allenh1 Do you have any time to work on a plan like this? I like this plan, but it still leaves the problem of what to do about the order of command-line options in Foxy (since we are going to have a deprecation period no matter what we do). I'll bring it up with the rest of the ROS 2 team to get other opinions. |
Yes, I'll start on it once you and the ROS 2 team reach a consensus. |
All right, the consensus is to go back to the ordering that was in Dashing and Eloquent. This also preserves the format that was used in ROS 1, so it should make ports easier. @Stapelzeiger, sorry to say that you'll have to change your code again, but I think this is the best way forward overall. With that said, I'm going to go review #294 . Once that is approved and merged, I'll open a backport PR for Foxy, and we'll announce the change (back) with the next Foxy sync. @allenh1 If you have time to work on it, adding in the more specific options sounds like a good thing to start (targeting the
The first one is slightly more flexible in that you can specify the arguments in any order, but it is more verbose. It's also harder to check that they are mutually exclusive (i.e. what if the user specifies |
Nope, all good from me 👍 |
I like option 1, but no strong preference. I would very much like to see a |
FYI, I've opened up #295 to track the ongoing work on this issue. |
Originally PR ros2#292 at ros/geometry2#292 - adds non-stamped Eigen to Transform function - converts Eigen Matrix Vectors to and from geometry_msgs::Twist - adds to/from message for geometry_msgs::Pose and KDL::Frame
Bug report
Required Info:
Steps to reproduce issue
run the following:
Expected behavior
child frame is rotated in yaw:
Actual behavior
child frame is rotated in roll:
Additional information
The problem is in the change in command line argument order, introduced in #182, specifically this line
I'd be happy to do a PR, however I'm unsure what the actual argument order should be:
I'm leaning towards keeping [yaw pitch roll] and reversing the change in order introduced in #182
To be clear, this only refers to the order of the command line arguments. The rotation sequence is always body fixed yaw, followed by pitch, followed by roll or equivalently fixed axis roll, followed by pitch, followed by yaw.
Lastly, I discovered this bug after update from Eloquent to Foxy. (My static transforms were suddenly all wrong and my robot attempted suicide). I suggest to document this change in command line argument order in the Foxy release notes.
The text was updated successfully, but these errors were encountered: