Skip to content
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

Closed
5 of 6 tasks
mitsudome-r opened this issue Mar 22, 2022 · 14 comments
Closed
5 of 6 tasks

Evaluate control modules in Universe #567

mitsudome-r opened this issue Mar 22, 2022 · 14 comments
Assignees
Labels
priority:high High urgency and importance.

Comments

@mitsudome-r
Copy link
Member

mitsudome-r commented Mar 22, 2022

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

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

  • Design a benchmark tool to evaluate control modules (also check with Sim WG)
  • Run benchmark tools against control modules
  • Create issues for missing features or bugs found from the results.
TakumiKozaka-T4 pushed a commit to TakumiKozaka-T4/autoware.universe that referenced this issue Mar 23, 2022
* 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>
TakumiKozaka-T4 pushed a commit to TakumiKozaka-T4/autoware.universe that referenced this issue Mar 23, 2022
* 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>
@BonoloAWF BonoloAWF added the priority:high High urgency and importance. label Mar 23, 2022
@BonoloAWF BonoloAWF added this to the Bus ODD Mar - Apr Milestone milestone Mar 23, 2022
@brkay54 brkay54 self-assigned this Mar 30, 2022
@brkay54
Copy link
Member

brkay54 commented Apr 4, 2022

@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

@brkay54
Copy link
Member

brkay54 commented Apr 5, 2022

Here is my initial control benchmark tool proposal:

benchmark drawio

I wrote there possible outputs from observation and evaluation node. The advantage of this architecture, we can test the all controllers with predefined noise level (noise's will be added as parameter) and we will be able to calculate controller errors by using ground truth data. Also, we do not have to run both (observation and evaluation node and environment setup node), we can run the tool with all autoware.universe stack without environment setup node.

Moreover, we can monitor the driving criterias with respect to figure below:

electronics-08-00943-g002

Referance

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 autoware.universe/simulator/simple_planning_simulator.

Design is here:

Until the simulator is ready, we can develop this architecture with simple_planning_simulator (by setting noises zero).

@mitsudome-r
Copy link
Member Author

@TakaHoribe Could you explain what control_performance_analysis is used for, and what kind of metrics are used to generate the result.

@boyali
Copy link
Contributor

boyali commented Apr 7, 2022

This package computes;
tracking error outputs:

  • lateral error ey
  • heading error eyaw

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.

@brkay54
Copy link
Member

brkay54 commented Apr 8, 2022

We decided to modify the control_performance_analysis package. I will add new functionalities to this package. New design is here:

control benchmark design

I will create PR for this design. If you have any comment, please feel free to share with us.

brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 8, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 8, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 19, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 19, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 19, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 19, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 20, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 21, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 25, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 25, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 25, 2022
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 25, 2022
Signed-off-by: Berkay <berkay@leodrive.ai>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue Apr 25, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue May 20, 2022
Signed-off-by: Berkay <berkay@leodrive.ai>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue May 20, 2022
…te the control modules(autowarefoundation#567)

Signed-off-by: Berkay <berkay@leodrive.ai>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue May 20, 2022
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>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue May 20, 2022
Signed-off-by: Berkay <berkay@leodrive.ai>
brkay54 added a commit to brkay54/autoware.universe that referenced this issue May 20, 2022
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>
xmfcx pushed a commit to brkay54/autoware.universe that referenced this issue May 24, 2022
…te the control modules(autowarefoundation#567)

Signed-off-by: Berkay <berkay@leodrive.ai>
xmfcx pushed a commit to brkay54/autoware.universe that referenced this issue May 24, 2022
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>
xmfcx added a commit to brkay54/autoware.universe that referenced this issue May 24, 2022
…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
brkay54 pushed a commit to brkay54/autoware.universe that referenced this issue May 24, 2022
…te the control modules(autowarefoundation#567)

Signed-off-by: Berkay <berkay@leodrive.ai>
@brkay54
Copy link
Member

brkay54 commented Jun 1, 2022

@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.

@brkay54
Copy link
Member

brkay54 commented Jun 14, 2022

Example usage of control performance analysis tool: https://github.com/orgs/autowarefoundation/discussions/412#discussioncomment-2947841

@brkay54
Copy link
Member

brkay54 commented Jul 27, 2022

Tests were made in universe with commit sha: aa576c066adc93721e24403723291998a47109a0 with default parameter values.

To reproduce the tests:

  • Download the scenario that used in my test: link.
  • Run scenario_simulator with scenario above.
  • Run control_performance_analysis tool.
  • Run plotjuggler and import the layout.
  • After scenario is over, export the statistics by using CVS Exporter in plotjuggler.

Results:
Driving status statistics:

mpc_follower pure_pursuit
Series Min Max Average Min Max Average
lateral_acceleration -0.533191 0.64716 0.012966 -0.403486 0.493776 0.014047
lateral_jerk -4.017719 2.590968 4.3E-05 -1.983593 2.388439 0.000311
longitudinal_acceleration -0.623581 1.129492 0.010821 -0.618914 1.160824 0.012287
longitudinal_jerk -36.026505 40.491296 -0.061777 -27.96847 42.131553 -0.061813
  • pure_pursuit can drive the vehicle in smaller lateral acceleration and jerk values.

RMS Values of performance statistics:

Series mpc_follower pure_pursuit
rms_heading_error 2360.288684 2128.115518
rms_heading_velocity_error 1029.922135 946.282237
rms_lateral_acceleration_error 2685.29172 2356.478111
rms_lateral_error 13429.126747 11978.168221
rms_lateral_velocity_error 1895.337207 1647.820159
rms_tracking_curvature_discontinuity_ability 30.440265 32.110788
  • As you can see from results, pure_pursuit has less lateral and heading error. And also tracking_curvature_discontinuity ability is higher than mpc_follower. As a result, current implementation of pure_pursuit is better than mpc_follower while tracking the trajectories with default parameters.

@mitsudome-r
Copy link
Member Author

@brkay54 Thank you for running the test.

Discussion from ASWG:

  • @brkay54 to try more tests in different map with different path (e.g., with more curves)
  • Also, providing screenshots of the tests might help us imagine what is causing the larger error in mpc_follower

@brkay54
Copy link
Member

brkay54 commented Aug 9, 2022

There are same updates about testing.
There were two blockers for me.

  • Firstly, I realized that heading and lateral error were increasing so much in straight road. So I investigated that and I found that control_performance_analysis tool sometimes choose wrong nearest trajectory point. It was fixed with this PR.

  • Secondly, I tried run the evaluation tool in different maps and with long time range. But PlotJuggler's buffer size is not enough to record all data. I opened issue for this.

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.

@brkay54
Copy link
Member

brkay54 commented Aug 10, 2022

Both MPC and pure_pursuit were tested in three different environment:

  1. sample_vehicle + kashiwanoha_map
  2. sample_vehicle + gebze_map
  3. isuzu_vehicle + gebze_map

Driving status

  • Test - 1 sample_vehicle + kashiwanoha_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
lateral_acceleration -0.403416 -0.547744 0.481827 0.618049 0.020227 0.017232
lateral_jerk -1.983906 -4.221178 2.424854 2.450203 -0.013859 -0.002141
  • Test - 2 sample_vehicle + gebze_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
lateral_acceleration -0.502603 -0.517804 0.18027 0.215238 -0.040143 -0.040282
lateral_jerk -1.276513 -1.565028 0.913313 1.330014 -0.000146 -0.000129
  • Test - 3 isuzu_vehicle + gebze_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
lateral_acceleration -0.779351 -0.82164 0.271746 0.308302 -0.062338 -0.062065
lateral_jerk -1.985067 -2.340564 1.413154 1.961581 -0.00036 -0.000516
  • MPC has higher lateral acceleration and jerk peak value than pure_pursuit

Performance variables

  • Test - 1 sample_vehicle + kashiwanoha_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
heading_error -0.443751 -0.579112 0.402318 0.421394 0.002471 -0.007
heading_error_velocity -0.191558 -0.203922 0.248491 0.376283 0.001939 -0.000965
lateral_error -0.381273 -0.22516 0.439361 0.439361 0.009929 0.046452
lateral_error_acceleration -0.424266 -0.586141 0.674285 1.010908 0.011949 0.008286
lateral_error_velocity -0.887937 -0.905332 0.882841 0.917043 0.006962 0.007918
  • Test - 2 sample_vehicle + gebze_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
heading_error -0.355129 -0.290287 0.152418 0.063587 -0.005227 -0.003886
heading_error_velocity -0.102993 -0.092189 0.111945 0.126462 -0.000953 -6.2E-05
lateral_error -0.280567 -0.289781 0.220632 0.222301 -0.014059 -0.00631
lateral_error_acceleration -0.318318 -0.268501 0.319817 0.354164 -0.002302 -0.002464
lateral_error_velocity -0.819191 -1.08276 1.149198 0.27054 -0.014403 -0.015096
  • Test - 3 isuzu_vehicle + gebze_map
Series PP Min MPC Min PP Max MPC Max PP Average MPC Average
heading_error -0.604754 -0.188215 0.175775 0.04927 -0.00514 -0.004605
heading_error_velocity -0.338885 -0.397858 0.109483 0.12697 -0.022434 -0.021345
lateral_error -0.30969 -0.351939 0.231677 0.233544 -0.014029 -0.012137
lateral_error_acceleration -0.915756 -1.127259 0.489062 0.571718 -0.078175 -0.076123
lateral_error_velocity -0.945196 -1.023388 0.740805 0.217162 -0.014718 -0.018148

Performance variables total error (RMS)

  • Test - 1 sample_vehicle + kashiwanoha_map
Series PP MPC
rms_heading_error 555.11382 589.214804
rms_heading_velocity_error 758.785943 862.506255
rms_lateral_acceleration_error 1795.123815 1991.941973
rms_lateral_error 1592.406027 1766.117106
rms_lateral_velocity_error 1273.025241 1214.16156
rms_tracking_curvature_discontinuity_ability 40.785818 40.586663
  • Test - 2 sample_vehicle + gebze_map
Series PP MPC
rms_heading_error 288.937329 196.057345
rms_heading_velocity_error 272.279047 258.74408
rms_lateral_acceleration_error 1154.30252 1120.854012
rms_lateral_error 1261.378532 1106.977478
rms_lateral_velocity_error 1194.883565 824.382134
rms_tracking_curvature_discontinuity_ability 15.148316 15.160162
  • Test - 3 isuzu_vehicle + gebze_map
Series PP MPC
rms_heading_error 270.866384 210.666686
rms_heading_velocity_error 687.926264 742.115233
rms_lateral_acceleration_error 2811.365921 3094.668373
rms_lateral_error 1249.054939 1289.547955
rms_lateral_velocity_error 1103.374622 890.818035
rms_tracking_curvature_discontinuity_ability 15.135825 15.161382

Results Plotted (Lateral Error - Heading Error - XY Pose of vehicle)

  • Test - 1 sample_vehicle + kashiwanoha_map

kashtestsample

  • Test - 2 sample_vehicle + gebze_map

testgebzesample

To visualize the results

  • Download the data: alltests.tar.gz
  • Open PlotJuggler and import the data
  • Now, you can see the series at left side of window. You can plot the data.
  • To plot vehicle position for debugging, Select two curves x and y from vehicle kinematic state (keeping the CTRL key pressed) and Drag & Drop them using the RIGHT Mouse button.

My opinion

There 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.

@mitsudome-r
Copy link
Member Author

@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.

@brkay54
Copy link
Member

brkay54 commented Aug 24, 2022

@mitsudome-r I added instruction documentation in PR. We can close the issue now.

@mitsudome-r
Copy link
Member Author

@brkay54 Thanks for all your work! I'm closing this issue.

kyoichi-sugahara pushed a commit that referenced this issue Sep 16, 2023
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:high High urgency and importance.
Projects
No open projects
Status: Done
Development

No branches or pull requests

5 participants