Skip to content

Commit fe597e2

Browse files
authored
fix(autoware_motion_velocity_obstacle_velocity_limiter_module): fix bugprone-exception-escape (#9779)
* fix: bugprone-error Signed-off-by: kobayu858 <yutaro.kobayashi@tier4.jp> * fix: cppcheck Signed-off-by: kobayu858 <yutaro.kobayashi@tier4.jp> * fix: cpplint Signed-off-by: kobayu858 <yutaro.kobayashi@tier4.jp> --------- Signed-off-by: kobayu858 <yutaro.kobayashi@tier4.jp>
1 parent b764c57 commit fe597e2

File tree

1 file changed

+47
-38
lines changed

1 file changed

+47
-38
lines changed

planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/benchmarks/collision_checker_benchmark.cpp

+47-38
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "../src/types.hpp"
1717

1818
#include <chrono>
19+
#include <iostream>
1920
#include <random>
2021
#include <vector>
2122

@@ -55,45 +56,53 @@ polygon_t random_polygon()
5556

5657
int main()
5758
{
58-
Obstacles obstacles;
59-
std::vector<polygon_t> polygons;
60-
polygons.reserve(100);
61-
for (auto i = 0; i < 100; ++i) {
62-
polygons.push_back(random_polygon());
63-
}
64-
for (auto nb_lines = 1lu; nb_lines < 1000lu; nb_lines += 10) {
65-
obstacles.lines.push_back(random_line());
66-
obstacles.points.clear();
67-
for (auto nb_points = 1lu; nb_points < 1000lu; nb_points += 10) {
68-
obstacles.points.push_back(random_point());
69-
const auto rtt_constr_start = std::chrono::system_clock::now();
70-
CollisionChecker rtree_collision_checker(obstacles, 0, 0);
71-
const auto rtt_constr_end = std::chrono::system_clock::now();
72-
const auto naive_constr_start = std::chrono::system_clock::now();
73-
CollisionChecker naive_collision_checker(obstacles, nb_points + 1, nb_lines * 100);
74-
const auto naive_constr_end = std::chrono::system_clock::now();
75-
const auto rtt_check_start = std::chrono::system_clock::now();
76-
for (const auto & polygon : polygons)
77-
// cppcheck-suppress unreadVariable
78-
const auto rtree_result = rtree_collision_checker.intersections(polygon);
79-
const auto rtt_check_end = std::chrono::system_clock::now();
80-
const auto naive_check_start = std::chrono::system_clock::now();
81-
for (const auto & polygon : polygons)
82-
// cppcheck-suppress unreadVariable
83-
const auto naive_result = naive_collision_checker.intersections(polygon);
84-
const auto naive_check_end = std::chrono::system_clock::now();
85-
const auto rtt_constr_time =
86-
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_constr_end - rtt_constr_start);
87-
const auto naive_constr_time =
88-
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_constr_end - naive_constr_start);
89-
const auto rtt_check_time =
90-
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_check_end - rtt_check_start);
91-
const auto naive_check_time =
92-
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_check_end - naive_check_start);
93-
std::printf(
94-
"%lu, %lu, %ld, %ld, %ld, %ld\n", nb_lines, nb_points, rtt_constr_time.count(),
95-
rtt_check_time.count(), naive_constr_time.count(), naive_check_time.count());
59+
try {
60+
Obstacles obstacles;
61+
std::vector<polygon_t> polygons;
62+
polygons.reserve(100);
63+
for (auto i = 0; i < 100; ++i) {
64+
polygons.push_back(random_polygon());
65+
}
66+
for (auto nb_lines = 1lu; nb_lines < 1000lu; nb_lines += 10) {
67+
obstacles.lines.push_back(random_line());
68+
obstacles.points.clear();
69+
for (auto nb_points = 1lu; nb_points < 1000lu; nb_points += 10) {
70+
obstacles.points.push_back(random_point());
71+
const auto rtt_constr_start = std::chrono::system_clock::now();
72+
CollisionChecker rtree_collision_checker(obstacles, 0, 0);
73+
const auto rtt_constr_end = std::chrono::system_clock::now();
74+
const auto naive_constr_start = std::chrono::system_clock::now();
75+
CollisionChecker naive_collision_checker(obstacles, nb_points + 1, nb_lines * 100);
76+
const auto naive_constr_end = std::chrono::system_clock::now();
77+
const auto rtt_check_start = std::chrono::system_clock::now();
78+
for (const auto & polygon : polygons)
79+
// cppcheck-suppress unreadVariable
80+
const auto rtree_result = rtree_collision_checker.intersections(polygon);
81+
const auto rtt_check_end = std::chrono::system_clock::now();
82+
const auto naive_check_start = std::chrono::system_clock::now();
83+
for (const auto & polygon : polygons)
84+
// cppcheck-suppress unreadVariable
85+
const auto naive_result = naive_collision_checker.intersections(polygon);
86+
const auto naive_check_end = std::chrono::system_clock::now();
87+
const auto rtt_constr_time =
88+
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_constr_end - rtt_constr_start);
89+
const auto naive_constr_time = std::chrono::duration_cast<std::chrono::nanoseconds>(
90+
naive_constr_end - naive_constr_start);
91+
const auto rtt_check_time =
92+
std::chrono::duration_cast<std::chrono::nanoseconds>(rtt_check_end - rtt_check_start);
93+
const auto naive_check_time =
94+
std::chrono::duration_cast<std::chrono::nanoseconds>(naive_check_end - naive_check_start);
95+
std::printf(
96+
"%lu, %lu, %ld, %ld, %ld, %ld\n", nb_lines, nb_points, rtt_constr_time.count(),
97+
rtt_check_time.count(), naive_constr_time.count(), naive_check_time.count());
98+
}
9699
}
100+
} catch (const std::exception & e) {
101+
std::cerr << "Exception in main(): " << e.what() << std::endl;
102+
return {};
103+
} catch (...) {
104+
std::cerr << "Unknown exception in main()" << std::endl;
105+
return {};
97106
}
98107
return 0;
99108
}

0 commit comments

Comments
 (0)