feat(marker_radar_lidar_calibrator): marker_radar_lidar_calibrator support for different radar msgs and transformation algorithms
Description
Our previous tools assumed that radar has no elevation and we provided two algorithms:
- Yaw-only calibration
- x,y, yaw calibration
With elevation, we can get the full 6D pose. However, some sensors may impose restrictions on the orientation. In particular, the ARS548 imposes roll=0 for its object interface. We need an algorithm that easily accommodates this new restriction.
With this PR, we provide four algorithms
- Yaw-only calibration (yaw_only_rotation_2d)
- x,y, yaw calibration (svd_2d)
- 3d calibration (svd_3d)
- 3d transformation with roll is restricted to zero (roll_zero_3d)
and two different input msg-type for radar
- radar_tracks
- radar_scan
Additionally, this PR also includes the xx1 gen2 project in the sensor_calibration_manager.
Related links
Tests performed
Notes for reviewers
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
- [x] I've confirmed the contribution guidelines.
- [x] The PR follows the pull request guidelines.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
- [ ] The PR follows the pull request guidelines.
- [ ] The PR has been properly tested.
- [ ] The PR has been reviewed by the code owners.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
- [ ] There are no open discussions or they are tracked via tickets.
- [ ] The PR is ready for merge.
After all checkboxes are checked, anyone who has write access can merge the PR.
@knzo25 I need to double-check and test the functionality for different projects so I set this to draft first.
@knzo25 This PR is ready for review :)
I got this message
[metrics_plotter_node.py-4] /home/kenzolobos/workspace/calibration_ws/install/marker_radar_lidar_calibrator/lib/marker_radar_lidar_calibrator/metrics_plotter_node.py:33: MatplotlibDeprecationWarning:
[metrics_plotter_node.py-4] The set_window_title function was deprecated in Matplotlib 3.4 and will be removed two minor releases later. Use manager.set_window_title or GUI-specific methods instead.
[metrics_plotter_node.py-4] plt.gcf().canvas.set_window_title("Metrics plotter")
@knzo25 Thanks, fixed the warning in https://github.com/tier4/CalibrationTools/pull/161/commits/63d9577352c0ece0d245c6eda1e0ec0c56b42f57
:warning: Please install the to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
Attention: Patch coverage is 0% with 295 lines in your changes missing coverage. Please review.
Project coverage is 4.89%. Comparing base (
bab5400) to head (d7670f0). Report is 12 commits behind head on tier4/universe.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@ Coverage Diff @@
## tier4/universe #161 +/- ##
=================================================
+ Coverage 0.93% 4.89% +3.95%
=================================================
Files 270 156 -114
Lines 21339 12281 -9058
Branches 383 1301 +918
=================================================
+ Hits 200 601 +401
+ Misses 20982 11679 -9303
+ Partials 157 1 -156
| Flag | Coverage Δ | |
|---|---|---|
| differential | 4.89% <0.00%> (?) |
|
| total | ? |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
@vividf Could confirm that the tool works as expected (functional aspect) with the data from the radar. I will start providing comments in the code and quasi in parallel reading the evaluation and probably asking for more numbers
EDIT: To review this I need you to rebase it to either the default branch or the documentation one. I recommend the documentation one, as that will probably be merged before and the merge/rebase needed then will be easier if done this way. Internally I mentioned that rebase was not needed, but I meant the test branch, not the one we want to merge
The objective of the rebase is to make this more reasonable:
I rebased this branch on the documentation branch and created a new PR https://github.com/tier4/CalibrationTools/pull/180
otherwise, there are too many conflicts (have diverged, and have 399 and 19 different commits each) need to be solved.