-
Notifications
You must be signed in to change notification settings - Fork 917
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
A possible invalid assumption regarding frame id of IMU in differential mode #482
Comments
Can you give more detail, such as the problems that you are experiencing? |
I'm wondering if this is related: Let me poke at this some more and get back to you. |
Yeah, the more I think about this issue, the more I'm convinced that we should be transforming all pose data into the target frame before we differentiate it. However, just to be certain, may I see a sample IMU message and your EKF config? Please include the static transform for your IMU. Thanks. |
Thanks for the 'ROS Answers' link. I was not aware of that question. The question on 'ROS Answers' seems to be related indeed. On ROS Answers you posted the following:
In the case as written above in this issue, I would think both delta1 and v1 are in my sensor frame ( Here is an example IMU message:
This is the state estimation node config:
This is the static transform:
|
Yeah, that's an error on my part. In this case (and perhaps in the ROS Answers question), differentiating the pose data is indeed in the sensor frame. It's only when the pose data is the pose of the robot itself that differentiating it results in velocity in the There's a bit of other surrounding code with differentiating that I need to make sure I don't break if I change it, but I'll definitely fix this. Thanks for the report. |
Are there any updates on this? What surrounding code do you think may get affected or needs to be tested if we change this to |
I apologise, Ronald. I just don't get the cycles to work on this package these days. If you change it and submit a PR, then we can see if it passes the tests. I'll review it in more detail then as well. |
OK. I've submitted PR #522. |
* navsat_transform diagram to address #550 (#570) * add diagram for navsat_transform Signed-off-by: Mabel Zhang <[email protected]> * add diagram to tutorial Signed-off-by: Mabel Zhang <[email protected]> * Fix frame id of imu in differential mode, closes #482 * Added local Cartesian option to navsat_transform * Fix navsat_transform issue with starting on uneven terrain * Fix typo in navsat_transform_node.rst (#588) "prodives" -> "provides" * Fix sign error in dFY_dP in transfer function jacobian * Making repeated state publication optional (#595) * PR feedback * Fixing build issues * Fixing stamp issues * Linting and uncrustifying Co-authored-by: Mabel Zhang <[email protected]> Co-authored-by: Jeffrey Kane Johnson <[email protected]>
* navsat_transform diagram to address cra-ros-pkg#550 (cra-ros-pkg#570) * add diagram for navsat_transform Signed-off-by: Mabel Zhang <[email protected]> * add diagram to tutorial Signed-off-by: Mabel Zhang <[email protected]> * Fix frame id of imu in differential mode, closes cra-ros-pkg#482 * Added local Cartesian option to navsat_transform * Fix navsat_transform issue with starting on uneven terrain * Fix typo in navsat_transform_node.rst (cra-ros-pkg#588) "prodives" -> "provides" * Fix sign error in dFY_dP in transfer function jacobian * Making repeated state publication optional (cra-ros-pkg#595) * PR feedback * Fixing build issues * Fixing stamp issues * Linting and uncrustifying Co-authored-by: Mabel Zhang <[email protected]> Co-authored-by: Jeffrey Kane Johnson <[email protected]>
…a-ros-pkg#522) * Fix frame id of imu in differential mode, closes cra-ros-pkg#482.
I've experienced some problems with the state estimation only when I use (the orientation of) an IMU in
differential
mode. If I setdifferential
mode tofalse
, everything is fine. This linerobot_localization/src/ros_filter.cpp
Line 2534 in 086bcfc
frame_id
of the IMU message. If I replace that line withposeTmp.frame_id_ = msg->header.frame_id;
everything looks fine. Any idea why the frame id should be set tofinalTargetFrame
if differential mode is used?The text was updated successfully, but these errors were encountered: