@@ -128,18 +128,6 @@ std::vector<double> toStdVector(const Eigen::VectorXd & eigen_vec)
128
128
return {eigen_vec.data (), eigen_vec.data () + eigen_vec.rows ()};
129
129
}
130
130
131
- std::string vectorToString (const std::vector<double > & vec)
132
- {
133
- std::ostringstream oss;
134
- if (!vec.empty ()) {
135
- oss << vec.front (); // Add the first element
136
- for (size_t i = 1 ; i < vec.size (); ++i) {
137
- oss << " ," << vec[i]; // Add the rest with commas
138
- }
139
- }
140
- return oss.str ();
141
- }
142
-
143
131
bool isLeft (const geometry_msgs::msg::Pose & pose, const geometry_msgs::msg::Point & target_pos)
144
132
{
145
133
const double base_theta = tf2::getYaw (pose.orientation );
@@ -420,7 +408,8 @@ MPTOptimizer::MPTOptimizer(
420
408
traj_param_(traj_param),
421
409
debug_data_ptr_(debug_data_ptr),
422
410
time_keeper_(time_keeper),
423
- logger_(node->get_logger ().get_child(" mpt_optimizer" ))
411
+ logger_(node->get_logger ().get_child(" mpt_optimizer" )),
412
+ conditional_timer_(std::make_shared<ConditionalTimer>())
424
413
{
425
414
// initialize mpt param
426
415
mpt_param_ = MPTParam (node, vehicle_info);
@@ -505,6 +494,15 @@ std::pair<std::vector<TrajectoryPoint>, int> MPTOptimizer::optimizeTrajectory(
505
494
return traj_points;
506
495
};
507
496
497
+ conditional_timer_->update (true );
498
+
499
+ const double elapsed_time = conditional_timer_->getElapsedTime ().count ();
500
+ const bool elapsed_time_over_twenty_seconds = (elapsed_time > 20.0 );
501
+
502
+ if (elapsed_time_over_twenty_seconds) {
503
+ return std::make_pair (get_prev_optimized_traj_points (), -1 );
504
+ }
505
+
508
506
// 1. calculate reference points
509
507
auto ref_points = calcReferencePoints (planner_data, traj_points);
510
508
if (ref_points.size () < 2 ) {
@@ -1546,10 +1544,6 @@ std::optional<Eigen::VectorXd> MPTOptimizer::calcOptimizedSteerAngles(
1546
1544
const int solution_status = osqp_result.solution_status ;
1547
1545
prev_solution_status_ = solution_status;
1548
1546
if (solution_status != 1 ) {
1549
- const std::vector<double > lagrange_multiplier = osqp_result.lagrange_multipliers ;
1550
- const int status_polish = osqp_result.polish_status ;
1551
- const int exit_flag = osqp_result.exit_flag ;
1552
-
1553
1547
osqp_solver_ptr_->logUnsolvedStatus (" [MPT]" );
1554
1548
return std::nullopt;
1555
1549
}
@@ -1566,10 +1560,6 @@ std::optional<Eigen::VectorXd> MPTOptimizer::calcOptimizedSteerAngles(
1566
1560
optimization_result.begin (), optimization_result.end (),
1567
1561
[](const auto v) { return std::isnan (v); });
1568
1562
if (has_nan) {
1569
- const std::vector<double > lagrange_multiplier = osqp_result.lagrange_multipliers ;
1570
- const int status_polish = osqp_result.polish_status ;
1571
- const int exit_flag = osqp_result.exit_flag ;
1572
-
1573
1563
return std::nullopt;
1574
1564
}
1575
1565
const Eigen::VectorXd optimized_variables =
0 commit comments