-
Notifications
You must be signed in to change notification settings - Fork 650
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
Evaluate control modules in Universe #567
Comments
* release v0.4.0 * remove ROS1 packages temporarily Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add sample ros2 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * remove ROS1 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * Revert "remove ROS1 packages temporarily" This reverts commit ac428d4af68ef0b51992d31f692dd9aae9a4a944. Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * add COLCON_IGNORE to ros1 packages Signed-off-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> * Unify Apache-2.0 license name (autowarefoundation#1242) * Port autoware rosbag recorder to ros2 (autowarefoundation#1569) * Port autoware rosbag recorder to ros2 Signed-off-by: wep21 <border_goldenmarket@yahoo.co.jp> * Update record.sh Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> * Add shellcheck (autowarefoundation#2079) * Add shellcheck Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix shellcheck Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Change formatter to clang-format and black (autowarefoundation#2332) * Revert "Temporarily comment out pre-commit hooks" This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3. * Replace ament_lint_common with autoware_lint_common Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Remove ament_cmake_uncrustify and ament_clang_format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply Black Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix for cpplint * Fix include double quotes to angle brackets Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Add COLCON_IGNORE (autowarefoundation#500) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * remove COLCON_IGNORE (autowarefoundation#510) Co-authored-by: Takayuki Murooka <takayuki.murooka@tier4.jp> * Auto/add readme common pkg (autowarefoundation#567) * add description to global paraemeter loader * add readme to rosbag recorde * fix typo Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Fix Format Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Clarify the description Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Fix Typo Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp> * proper description Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp> * fix topic name * fix topic name Co-authored-by: mitsudome-r <ryohsuke.mitsudome@tier4.jp> Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: Daisuke Nishimatsu <42202095+wep21@users.noreply.github.com> Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Co-authored-by: Takayuki Murooka <takayuki5168@gmail.com> Co-authored-by: Takayuki Murooka <takayuki.murooka@tier4.jp> Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com>
* Move autoware_global_parameter_loader to the appropriate place (autowarefoundation#1701) * Move autoware_global_parameter_loader to the appropriate place Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix package name Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Rename vehicle_info param arg to avoid conflicts (autowarefoundation#2074) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Change formatter to clang-format and black (autowarefoundation#2332) * Revert "Temporarily comment out pre-commit hooks" This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3. * Replace ament_lint_common with autoware_lint_common Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Remove ament_cmake_uncrustify and ament_clang_format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply Black Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix for cpplint * Fix include double quotes to angle brackets Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Apply clang-format Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Fix build errors Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * Add COLCON_IGNORE (autowarefoundation#500) Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> * remove COLCON_IGNORE (autowarefoundation#510) Co-authored-by: Takayuki Murooka <takayuki.murooka@tier4.jp> * Auto/add readme common pkg (autowarefoundation#567) * add description to global paraemeter loader * add readme to rosbag recorde * fix typo Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Fix Format Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Clarify the description Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> * Fix Typo Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp> * proper description Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: tkimura4 <tomoya.kimura@tier4.jp> Co-authored-by: Kenji Miyake <31987104+kenji-miyake@users.noreply.github.com> Co-authored-by: Takayuki Murooka <takayuki5168@gmail.com> Co-authored-by: Takayuki Murooka <takayuki.murooka@tier4.jp> Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com> Co-authored-by: Kazuki Miyahara <kmiya@outlook.com> Co-authored-by: Takeshi Miura <57553950+1222-takeshi@users.noreply.github.com>
@mitsudome-r There is a package called control_performance_analysis in Control. I am confused, is purpose of this issue develop this package? Or, this package is not going to be used anymore so we need to develop a new package? Mentioned package: https://github.com/autowarefoundation/autoware.universe/tree/main/control/control_performance_analysis |
Here is my initial control benchmark tool proposal: I wrote there possible outputs from Moreover, we can monitor the driving criterias with respect to figure below: I assumed that simulation will give the ground truth data but if it won't, still we can use it with estimated data (Maybe we need small changes). Also, it can be used with Design is here: Until the simulator is ready, we can develop this architecture with simple_planning_simulator (by setting noises zero). |
@TakaHoribe Could you explain what control_performance_analysis is used for, and what kind of metrics are used to generate the result. |
This package computes;
The tracking errors are computed by projecting current vehicle location on the current trajectory. In addition, the generated control vector u is used to compute an quadratic energy like value similar to we use in the MPC computations; uRu^T. We use the same kind of energy for the tracking’s errors; xPx^T. The cost matrices R and P can simply be taken as unity matrices. However in the package we use an R and P matrices computed from stability LMI equations for a kinematic feedback controller. In addition in the package we compute an approximate curvature for each waypoint on the trajectory. Using the curvature, we can compute lateral velocity and acceleration. |
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix odom history interval param added (autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai>
…te the control modules(autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai>
message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix odom history interval param added (autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai>
…te the control modules(autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai> evaluation node updated(autowarefoundation#567) message files arranged, structure changed(autowarefoundation#567) ci(pre-commit): autofix added another condition added velocity history information to estimate acceleration fix new message file added monitor variables ready fix can build runtime errors works works fix Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix odom history interval param added (autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix added steering stamp rate Signed-off-by: Berkay <berkay@leodrive.ai> added steering stamp state deleted min treshold of dt Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix build Signed-off-by: Berkay <berkay@leodrive.ai> added plot config file Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix readme updated Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix cmakelist and msg files Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix adjusted license Signed-off-by: Berkay <berkay@leodrive.ai> fix build error Signed-off-by: Berkay <berkay@leodrive.ai> fix lint_cmake error Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix cmakelist build error Signed-off-by: Berkay <berkay@leodrive.ai> cmake error fix Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix update readme Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix typesupport error Signed-off-by: Berkay <berkay@leodrive.ai> fix cmake Signed-off-by: Berkay <berkay@leodrive.ai> errors revised Signed-off-by: Berkay <berkay@leodrive.ai> update error msg Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix added interpolated velocity Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix structure changed Signed-off-by: Berkay <berkay@leodrive.ai> error accelerations added Signed-off-by: Berkay <berkay@leodrive.ai> fix error goes infinity issue Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fixed bugs and changed params Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix start error Signed-off-by: Berkay <berkay@leodrive.ai> update readme Signed-off-by: Berkay <berkay@leodrive.ai> update readme Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix cpplint error Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix fix checklist error Signed-off-by: Berkay <berkay@leodrive.ai> fixed lint errors Signed-off-by: Berkay <berkay@leodrive.ai> ci(pre-commit): autofix
…te the control modules(autowarefoundation#567) Signed-off-by: Berkay <berkay@leodrive.ai>
@mitsudome-r control_performance_analysis package updated and merged into main. I am going to evaluate the current controllers, and I will update them if I see any improvements. Also, I am going to update the default parameters of controllers w.r.t. evaluation of default implementation of planning_simulator in tutorials. |
Example usage of control performance analysis tool: https://github.com/orgs/autowarefoundation/discussions/412#discussioncomment-2947841 |
Tests were made in universe with commit sha: To reproduce the tests:
Results:
RMS Values of performance statistics:
|
There are same updates about testing.
For now, I am currently run this test on kashiwanoha_map because of second blocker (I can not collect the all data for long time period). I collected data in kashiwanoha_map, after some processes, I am going to share here. |
Both MPC and pure_pursuit were tested in three different environment:
Driving status
Performance variables
Performance variables total error (RMS)
Results Plotted (Lateral Error - Heading Error - XY Pose of vehicle)
To visualize the results
My opinionThere is no big performance difference I think. Pure Pursuit has better performance in kashiwanoha_map than MPC. However, MPC has better performance in Gebze map. I think Pure Pursuit can better handle the sharp turns than MPC but generally MPC has better performance. |
@brkay54 Thanks for the report. Please create an instruction on how to use control evaluator tool to Autoware Documentation https://autowarefoundation.github.io/autoware-documentation/main/how-to-guides/, and we can close this issue. |
@mitsudome-r I added instruction documentation in PR. We can close the issue now. |
@brkay54 Thanks for all your work! I'm closing this issue. |
* ci(sync-files): sync .gitignore * fix sync-files.yaml Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp> Signed-off-by: Kenji Miyake <kenji.miyake@tier4.jp>
…ation#1694) (autowarefoundation#567) fix(motion_velocity_smoother): fix stop point (autowarefoundation#1694) Signed-off-by: tanaka3 <ttatcoder@outlook.jp> Co-authored-by: taikitanaka3 <65527974+taikitanaka3@users.noreply.github.com>
Checklist
Description
Investigate performance of control pipeline in universe.
Purpose
Evaluate current control pipeline and confirm that it has enough features for Bus ODD.
Possible approaches
Create benchmark tools to test control modules (e.g. calculate offsets from trajectory) and evaluate control moduels
Definition of done
The text was updated successfully, but these errors were encountered: