Skip to content

feat: add Learning-Based Accel/Brake Map Calibrator #6897

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

Conversation

CristianGariboldi
Copy link

Description

This is the PR regarding the learning-based vehicle calibration for longitudinal dynamics already discussed and presented in the discussion thread and in the Planning and Control meeting.

Tests performed

This calibrator has been tested in simulation and real vehicles. We've been using the calibrator for a different range of vehicles in Pix Moving with high accuracy.

Additional materials here:
Pix_Longitudinal_Calibration.pdf
Calibration.pptx

Effects on system behavior

This new calibrator improves the previous one in different aspects:

  1. real data are interpolated with a neural network, which is able to provide a very accurate and smooth map, and can capture the non-linearities of the system;

  2. the whole calibration process is very user-friendly, fast and efficient;

  3. you don't need a huge amount of data for training the neural network, making the data collection process faster;

  4. the learning-based approach can be easily adapted to different kind of scenarios, and not solely on the longitudinal dynamic. In my repository for example, I also included the calibration for steering/parking scenarios, just by adding 1 input to the network;

  5. It can be used with a diverse range of vehicles, with different dynamics, kinematics, engines and transmission systems;

  6. It has been tested in simulation and with real vehicles. We now use it for calibrating our vehicles in Pix Moving.

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.

  • There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:vehicle Vehicle-specific implementations, drivers, packages. (auto-assigned) labels Apr 26, 2024
@CristianGariboldi CristianGariboldi changed the title Learning Based Accel/Brake Map Calibrator feat: add Learning-Based Accel/Brake Map Calibrator Apr 26, 2024
@TakaHoribe
Copy link
Contributor

@CristianGariboldi Thank you for your contribution! This is so great! Would you fix some checks(DCO, pre-commit)? Then, we can run the CI test.

CristianGariboldi and others added 13 commits April 26, 2024 16:51
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
Signed-off-by: CristianGariboldi <gariboldicristian@gmail.com>
@CristianGariboldi
Copy link
Author

@ahuazuipiaoliang here

@Owen-Liuyuxuan
Copy link
Contributor

Thank you for your contribution, and the analytics are very informative!

I hope we could further organize the steering calibration file (rename or somehow re-factor them to one single file) if that is possible.

Thank you very much.

@CristianGariboldi
Copy link
Author

Thank you for your contribution, and the analytics are very informative!

I hope we could further organize the steering calibration file (rename or somehow re-factor them to one single file) if that is possible.

Thank you very much.

Hi @Owen-Liuyuxuan , sorry for my late reply, busy times, I have some deadlines for my imminent graduation, as soon as I will be free, I will fix this PR.

When you say to re-factor the steering calibration files to one single file are you referring to the neural network scripts?

@Owen-Liuyuxuan
Copy link
Contributor

@CristianGariboldi
Yeah sure. Because for now the network_scripts_*.py is quite confusing in naming and has quite a lot of repeated code. I hope this could be further organized.

Copy link

stale bot commented Jul 15, 2024

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Jul 15, 2024
@mitsudome-r
Copy link
Member

@TakaHoribe @CristianGariboldi Could you share the latest status for this PR?

@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Dec 17, 2024
@mitsudome-r
Copy link
Member

In my opinion, this could live under autoware_tools repository.

@CristianGariboldi
Copy link
Author

Hi @mitsudome-r , unluckily, since I finished my internship months ago, I cannot have access anymore to the company repository in this PR. I am afraid I can't modify it nor submit a new version. Let me know if I can help.
@ahuazuipiaoliang FYI

@xmfcx
Copy link
Contributor

xmfcx commented Feb 4, 2025

@CristianGariboldi is it ok for us to re-create this PR in https://github.com/autowarefoundation/autoware_tools repository? We'll close this one and submit a new PR there.

@CristianGariboldi
Copy link
Author

@xmfcx hi, sorry for my late reply, busy times..
I am fine with closing this PR and submit a new one in autoware_tools.

however, I’d like to do some modifications, which I’ll explain here:

in my opinion, it would be better to keep just the calibrator of the longitudinal dynamics, and not the steering one, for several reasons.

  1. first, if I am not wrong, right now autoware does not have a longitudinal calibrator which considers steering dynamics. The script for generating maps with steering dynamics generates 5 different maps for accel and brake, and autoware does not accept multiple maps based on the steering angle, so a more complex modification of autoware code is required for accepting multiple maps, which can take some time, making the calibrator of the steering dynamics NOT plug & play

  2. in Pix Moving, we were highly interested in improving the accuracy of longitudinal maps in parking scenarios, so at low speeds and with high steering angles (as you can see in the results of the document attached above), which is a very specific scenario, not common in most of the applications. We did some experiments by considering the steering dynamics and collected some results. However, the longitudinal maps were very accurate anyway in most of scenarios, making them more than suitable for real world applications

  3. the learning based calibrator for the longitudinal dynamics is autoware ready, plug & play without the needs of any modifications and it has been tested on a different range of real vehicles with different dynamics and kinematics. It is the actual calibrator of Pix Moving vehicles and works very well.

for these reasons, I am willing to submit a new PR in autoware_tools of the longitudinal calibrator only, for the aforementioned considerations.

please do let me know what you think about it, looking forward to hearing back from you!

@xmfcx
Copy link
Contributor

xmfcx commented Feb 17, 2025

@CristianGariboldi thanks for contributing with your limited time.

It would be better to keep just the calibrator of the longitudinal dynamics, and not the steering one.

I agree with all your points. Let's go with the longitudinal calibration 👍

Copy link

stale bot commented Apr 18, 2025

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Apr 18, 2025
@xmfcx
Copy link
Contributor

xmfcx commented Apr 18, 2025

Closing since

@xmfcx xmfcx closed this Apr 18, 2025
@stale stale bot removed the status:stale Inactive or outdated issues. (auto-assigned) label Apr 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:vehicle Vehicle-specific implementations, drivers, packages. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants