-
Notifications
You must be signed in to change notification settings - Fork 668
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
feat(imu_corrector): changed GyroBiasEstimator to use ndt pose instead of twist #5259
feat(imu_corrector): changed GyroBiasEstimator to use ndt pose instead of twist #5259
Conversation
Signed-off-by: Shintaro Sakoda <[email protected]>
Signed-off-by: Shintaro Sakoda <[email protected]>
Thank you very much! Let me review until tomorrow 🙏 |
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #5259 +/- ##
=======================================
Coverage 14.78% 14.78%
=======================================
Files 1644 1644
Lines 113948 114020 +72
Branches 35160 35179 +19
=======================================
+ Hits 16850 16862 +12
- Misses 78143 78181 +38
- Partials 18955 18977 +22
*This pull request uses carry forward flags. Click here to find out more.
☔ View full report in Codecov by Sentry. |
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.
Thank you! I left some comments 🙏
Signed-off-by: Shintaro Sakoda <[email protected]>
Signed-off-by: Shintaro Sakoda <[email protected]>
Would you create a PR for other sensor kit packages as well? (e.g. aip_launcher) |
I have also created this pull request. |
…result of remove Signed-off-by: Shintaro Sakoda <[email protected]>
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.
One final comment 🙏
| Name | Type | Description | | ||
| ----------------- | ----------------------------------------------- | ---------------- | | ||
| `~/input/imu_raw` | `sensor_msgs::msg::Imu` | **raw** imu data | | ||
| `~/input/pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | ndt pose | |
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.
Would you state here something like as follows as a side note below?
Note that the input pose is assumed to be accurate enough. For example when using NDT, we assume that the NDT is appropriately converged.
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.
That's a very good. In fact, one needs to be careful when using a pose other than NDT, or when using NDT in an environment where its accuracy will be low.
Currently, it is only output to diagnostics, so there may not be a need to be overly cautious. However, caution is needed when changing the IMU value based on the estimate obtained here for online calibration.
Fixed in f669c20
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.
Thanks! But what I meant was to put it as a side note maybe as a footer. The description ndt pose
itself was OK.
So something like
### Input
| Name | Type | Description |
| ----------------- | ----------------------------------------------- | ---------------- |
| `~/input/imu_raw` | `sensor_msgs::msg::Imu` | **raw** imu data |
| `~/input/pose` | `geometry_msgs::msg::PoseWithCovarianceStamped` | ndt pose |
Note that the input pose is assumed to be accurate enough. For example when using NDT, we assume that the NDT is appropriately converged.
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.
However, caution is needed when changing the IMU value based on the estimate obtained here for online calibration.
Correct. That's one of the main concern for using NDT for estimation, which makes some kind of a new closed loop in Autoware. So would like to add some warnings for future developers.
Signed-off-by: Shintaro Sakoda <[email protected]>
I created a pull request to launch |
This reverts commit f669c20.
Signed-off-by: Shintaro Sakoda <[email protected]>
Signed-off-by: Shintaro Sakoda <[email protected]>
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.
LGTM!
3a1d480
into
autowarefoundation:main
…d of twist (autowarefoundation#5259) * Implemented ndt pose based GyroBiasEstimator Signed-off-by: Shintaro Sakoda <[email protected]> * style(pre-commit): autofix * Added missing includes Signed-off-by: Shintaro Sakoda <[email protected]> * FIxed default gyro_bias_threshold Signed-off-by: Shintaro Sakoda <[email protected]> * Restored gyro_bias_pub_, which had been deleted due to a mistake Signed-off-by: Shintaro Sakoda <[email protected]> * removed get_bias_std and anything else that is no longer needed as a result of remove Signed-off-by: Shintaro Sakoda <[email protected]> * Updated README.md Signed-off-by: Shintaro Sakoda <[email protected]> * Revert "Updated README.md" This reverts commit f669c20. * Updated README.md Signed-off-by: Shintaro Sakoda <[email protected]> * Added notes to README.md Signed-off-by: Shintaro Sakoda <[email protected]> --------- Signed-off-by: Shintaro Sakoda <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…d of twist (#956) feat(imu_corrector): changed GyroBiasEstimator to use ndt pose instead of twist (autowarefoundation#5259) * Implemented ndt pose based GyroBiasEstimator * style(pre-commit): autofix * Added missing includes * FIxed default gyro_bias_threshold * Restored gyro_bias_pub_, which had been deleted due to a mistake * removed get_bias_std and anything else that is no longer needed as a result of remove * Updated README.md * Revert "Updated README.md" This reverts commit f669c20. * Updated README.md * Added notes to README.md --------- Signed-off-by: Shintaro Sakoda <[email protected]> Co-authored-by: SakodaShintaro <[email protected]> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Description
Before : Use
twist
to determine whether ego-vehicle is stopping, and calculate imu bias by comparing it to 0 while it is stopping.After: Use
ndt pose
to determine whether ego-vehicle is curving, and calculate imu bias by comparing it to ndt pose while it is not curving.Related link
Tests performed
It has been confirmed that it works as expected with sample rosbag.
The red dashed line indicates the range extended from the orange line, which is the calibration value, by gyro_bias_threshold.
If it is within the red dashed line range, the IMU bias is considered normal.
For TIER IV's internal rosbags, the result of the IMU bias variation detection function for data taken on a day not long after calibration is as follows.
For data taken on a day when more time has passed since calibration, the result is as follows.
Effects on system behavior
Improves performance of IMU bias variation detection.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.