Skip to content

Commit 2ee9e06

Browse files
committed
remove all the commented out code
1 parent 1822d1b commit 2ee9e06

File tree

5 files changed

+1
-144
lines changed

5 files changed

+1
-144
lines changed

nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,37 +94,11 @@ class MotionModel
9494
.cwiseMin(upper_bound_vx);
9595
state.vx.col(i) = state.cvx.col(i - 1);
9696

97-
// state.u(i) = state.cu(i-1)
98-
// => we start from current robot speed (state.u(0)) and then apply u_virt (state.cu(i-1))
99-
// but we also need to constrain u_virt before applying it based on static limits (max vel & curvature) to compute
100-
// u_app
101-
// then state.u(i) = u_app(i-1)
102-
// ==> x_k = F(x_k-1, u_app_k-1) = F(x_k-1, g(u_virt_k-1))
103-
104-
// u_app(0) should be limited on acceleration relative to either feedback (state.u(0)) as done now
105-
// TODO 3 or ideally based on last published command
106-
107-
// state.vx.col(i) = state.cvx.col(i - 1)
108-
// .cwiseMax(lower_bound_vx)
109-
// .cwiseMin(upper_bound_vx);
110-
11197
state.cwz.col(i - 1) = state.cwz.col(i - 1)
11298
.cwiseMax(state.wz.col(i - 1) - max_delta_wz)
11399
.cwiseMin(state.wz.col(i - 1) + max_delta_wz);
114100
state.wz.col(i) = state.cwz.col(i - 1);
115101

116-
// state.wz.col(i) = state.cwz.col(i - 1)
117-
// .cwiseMax(state.wz.col(i - 1) - max_delta_wz)
118-
// .cwiseMin(state.wz.col(i - 1) + max_delta_wz);
119-
120-
// constrain u_virt 0 & 1 to make sure accelerations are limited at the first step (state.vx(0) is from feedback)
121-
// also constrain u_virt_1 as this is published as command
122-
// if (i <= 2)
123-
// {
124-
// state.cvx.col(i - 1) = state.vx.col(i);
125-
// state.cwz.col(i - 1) = state.wz.col(i);
126-
// }
127-
128102
if (is_holo) {
129103
auto lower_bound_vy = (state.vy.col(i - 1) >
130104
0).select(state.vy.col(i - 1) + min_delta_vy,

nav2_mppi_controller/include/nav2_mppi_controller/tools/utils.hpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -563,16 +563,6 @@ inline void savitskyGolayFilter(
563563
};
564564

565565
// Filter trajectories
566-
567-
// std::cout << "**** SGF:\n";
568-
// std::cout << "wz before: " << control_sequence.wz(Eigen::seq(0, 9)).transpose() << "\n";
569-
// std::cout << "control_history ";
570-
// for (const auto& e : control_history)
571-
// {
572-
// // std::cout << e.wz << " , ";
573-
// }
574-
// std::cout << std::endl;
575-
576566
const models::ControlSequence initial_control_sequence = control_sequence;
577567
applyFilterOverAxis(
578568
control_sequence.vx, initial_control_sequence.vx, control_history[0].vx,
@@ -584,14 +574,6 @@ inline void savitskyGolayFilter(
584574
control_sequence.wz, initial_control_sequence.wz, control_history[0].wz,
585575
control_history[1].wz, control_history[2].wz, control_history[3].wz);
586576

587-
// std::cout << "after wz: " << control_sequence.wz(Eigen::seq(0, 9)).transpose() << "\n";
588-
// std::cout << "control_history ";
589-
// for (const auto& e : control_history)
590-
// {
591-
// // std::cout << e.wz << " , ";
592-
// }
593-
// std::cout << std::endl;
594-
595577
// Update control history
596578
unsigned int offset = settings.shift_control_sequence ? 1 : 0;
597579
control_history[0] = control_history[1];

nav2_mppi_controller/src/critic_manager.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,6 @@ std::string CriticManager::getFullName(const std::string & name)
6767
void CriticManager::evalTrajectoriesScores(
6868
CriticData & data) const
6969
{
70-
// std::cout << "evalTrajectoriesScores:" << std::endl;
71-
// std::cout << "data.state.vx: " << data.state.vx(Eigen::seq(0, 9), 0).transpose() << "\n";
72-
// std::cout << "data.state.cvx: " << data.state.cvx(Eigen::seq(0, 9), 0).transpose() << "\n";
73-
// std::cout << "data.trajectories.x: " << data.trajectories.x(Eigen::seq(0, 9), 0).transpose() << "\n";
74-
7570
for (const auto & critic : critics_) {
7671
if (data.fail_flag) {
7772
break;

nav2_mppi_controller/src/critics/constraint_critic.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,6 @@ void ConstraintCritic::score(CriticData & data)
9696
data.costs += ((((vx - max_vel_).max(0.0f) + (min_vel_ - vx).max(0.0f) +
9797
out_of_turning_rad_motion) * data.model_dt).rowwise().sum().eval() * weight_).eval();
9898
}
99-
// std::cout << "constraint_critic costs after: " << data.costs(Eigen::seq(0, 9)).transpose() << std::endl;
100-
10199
return;
102100
}
103101
}

nav2_mppi_controller/src/optimizer.cpp

Lines changed: 1 addition & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -191,9 +191,6 @@ std::tuple<geometry_msgs::msg::TwistStamped, Eigen::ArrayXXf> Optimizer::evalCon
191191
bool trajectory_valid = true;
192192

193193
do {
194-
// std::cout << "\n\t control_sequence_ Before optimize:\n\t\t"
195-
// << control_sequence_.vx(Eigen::seq(0, 5)).transpose() << "\n\t"
196-
// << control_sequence_.wz(Eigen::seq(0, 5)).transpose() << "\n\t" << std::endl;
197194
optimize();
198195
optimal_trajectory = getOptimizedTrajectory();
199196
switch (trajectory_validator_->validateTrajectory(
@@ -213,11 +210,6 @@ std::tuple<geometry_msgs::msg::TwistStamped, Eigen::ArrayXXf> Optimizer::evalCon
213210
}
214211
} while (fallback(critics_data_.fail_flag || !trajectory_valid));
215212

216-
// std::cout << "Control Sequence End:\n";
217-
// std::cout << "vx: " << control_sequence_.vx.transpose() << "\n";
218-
// std::cout << "wz: " << control_sequence_.wz.transpose() << "\n";
219-
// computeControlSequenceAccel(control_sequence_);
220-
221213
auto control = getControlFromSequenceAsTwist(plan.header.stamp);
222214

223215
if (settings_.shift_control_sequence) {
@@ -281,9 +273,6 @@ void Optimizer::computeControlSequenceAccel(const models::ControlSequence& contr
281273

282274
void Optimizer::optimize()
283275
{
284-
// std::cout << "optimize: control_sequence_:\n\t\t"
285-
// << control_sequence_.vx(Eigen::seq(0, 9)).transpose() << "\n\t\t"
286-
// << control_sequence_.wz(Eigen::seq(0, 9)).transpose() << std::endl;
287276
for (size_t i = 0; i < settings_.iteration_count; ++i) {
288277
generateNoisedTrajectories();
289278
critic_manager_.evalTrajectoriesScores(critics_data_);
@@ -333,27 +322,12 @@ void Optimizer::prepare(
333322

334323
void Optimizer::shiftControlSequence()
335324
{
336-
// std::cout << "shiftControlSequence:\n\t" //\tsettings_.shift_control_sequence" << settings_.shift_control_sequence
337-
// << "\n\t control_sequence_ Before:\n\t\t"
338-
// << control_sequence_.vx(Eigen::seq(0, 5)).transpose() << "\n\t"
339-
// << control_sequence_.wz(Eigen::seq(0, 5)).transpose() << "\n\t"
340-
// /*<< control_sequence_.vx(Eigen::seq(Eigen::last -5, Eigen::last)).transpose()*/<< std::endl;
341-
// std::cout << "\n\t control_sequence_virtual_ Before:\n\t\t"
342-
// << control_sequence_virtual_.vx(Eigen::seq(0, 5)).transpose() << "\n\t"
343-
// << control_sequence_virtual_.wz(Eigen::seq(0, 5)).transpose() << "\n\t" << std::endl;
344-
345-
// control_sequence_ = control_sequence_virtual_;
346-
347325
auto size = control_sequence_.vx.size();
348326
utils::shiftColumnsByOnePlace(control_sequence_.vx, -1);
349327
utils::shiftColumnsByOnePlace(control_sequence_.wz, -1);
350328
control_sequence_.vx(size - 1) = control_sequence_.vx(size - 2);
351329
control_sequence_.wz(size - 1) = control_sequence_.wz(size - 2);
352330

353-
// std::cout << "\n\t control_sequence_ After:\n\t\t" << control_sequence_.vx(Eigen::seq(0, 5)).transpose() << "\n\t\t"
354-
// << control_sequence_.wz(Eigen::seq(0, 5)).transpose() << "\n\t\t"
355-
// /*<< control_sequence_.vx(Eigen::seq(Eigen::last -5, Eigen::last)).transpose()*/<< std::endl;
356-
357331
if (isHolonomic()) {
358332
utils::shiftColumnsByOnePlace(control_sequence_.vy, -1);
359333
control_sequence_.vy(size - 1) = control_sequence_.vy(size - 2);
@@ -372,54 +346,18 @@ void Optimizer::applyControlSequenceConstraints()
372346
{
373347
auto & s = settings_;
374348

375-
// std::cout << "Control Sequence Before Motion Model Constraints:\n";
376-
// std::cout << "vx: " << control_sequence_.vx(Eigen::seq(0, 9)).transpose() << "\n";
377-
// std::cout << "wz: " << control_sequence_.wz(Eigen::seq(0, 9)).transpose() << "\n";
378-
379-
// Debugging output for constraint values
380-
// std::cout << "****Acceleration Constraints:\n";
381-
// std::cout << "ax_max: " << s.constraints.ax_max << ", ax_min: " << s.constraints.ax_min << "\n";
382-
// std::cout << "ay_max: " << s.constraints.ay_max << ", ay_min: " << s.constraints.ay_min << "\n";
383-
// std::cout << "az_max: " << s.constraints.az_max << "\n";
384-
// computeControlSequenceAccel(control_sequence_);
385-
386-
// std::cout << "applyControlSequenceConstraints: \n state.u_app \n\t" << state_.vx(Eigen::seq(0, 2), Eigen::seq(0, 2))
387-
// << "\n\t" << state_.wz(Eigen::seq(0, 2), Eigen::seq(0, 2)) << std::endl
388-
// << "\n state.u_virt\n\t" << state_.cvx(Eigen::seq(0, 2), Eigen::seq(0, 2)) << "\n\t"
389-
// << state_.cwz(Eigen::seq(0, 2), Eigen::seq(0, 2)) << "\n ctrl_seq: \n\t"
390-
// << control_sequence_.vx(Eigen::seq(0, 5)).transpose() << "\n\t"
391-
// << control_sequence_.wz(Eigen::seq(0, 5)).transpose() << std::endl;
392-
393349
float max_delta_vx = s.model_dt * s.constraints.ax_max;
394350
float min_delta_vx = s.model_dt * s.constraints.ax_min;
395351
float max_delta_vy = s.model_dt * s.constraints.ay_max;
396352
float min_delta_vy = s.model_dt * s.constraints.ay_min;
397353
float max_delta_wz = s.model_dt * s.constraints.az_max;
398354

399-
// --tried 1 limit ctrl_seq_(0) based on accel_limit from current robot speed (= state.vx(0,0)) (instead of in predict -> see it still accel issue)
400-
// TODO 4 or ideally based on last published command
401-
// at this point, control_sequence_ contains the softmax mean of state_.cu (u_virt)]
402-
/*
403-
float vx_last = utils::clamp(s.constraints.vx_min, s.constraints.vx_max, control_sequence_.vx(0));
404-
float wz_last = utils::clamp(-s.constraints.wz, s.constraints.wz, control_sequence_.wz(0));
405-
406-
control_sequence_.vx(0) = vx_last;
407-
control_sequence_.wz(0) = wz_last;
408-
float vy_last = 0;
409-
if (isHolonomic()) {
410-
vy_last = utils::clamp(-s.constraints.vy, s.constraints.vy, control_sequence_.vy(0));
411-
control_sequence_.vy(0) = vy_last;
412-
}
413-
*/
414-
// limit acceleration between current feedback speed and first control in the sequence
415-
// float vx_last = static_cast<float>(state_.speed.linear.x);
416-
// float wz_last = static_cast<float>(state_.speed.angular.z);
355+
// limit acceleration between current initial_velocities_ and first control in the sequence
417356
float vx_last = initial_velocities_(0);
418357
float wz_last = initial_velocities_(2);
419358

420359
float vy_last = 0;
421360
if (isHolonomic()) {
422-
// vy_last = static_cast<float>(state_.speed.linear.y);
423361
vy_last = initial_velocities_(1);
424362
}
425363

@@ -434,18 +372,10 @@ void Optimizer::applyControlSequenceConstraints()
434372
vx_last = vx_curr;
435373

436374
float & wz_curr = control_sequence_.wz(i);
437-
// if (i==0)
438-
// {
439-
// std::cout << "control_sequence_.wz(0) BEFORE: " << control_sequence_.wz(i) << std::endl;
440-
// }
441375
wz_curr = utils::clamp(-s.constraints.wz, s.constraints.wz, wz_curr);
442376
wz_curr = utils::clamp(wz_last - max_delta_wz, wz_last + max_delta_wz, wz_curr);
443377
wz_last = wz_curr;
444378

445-
// if (i==0)
446-
// {
447-
// std::cout << "control_sequence_.wz(0) AFTER: " << control_sequence_.wz(i) << std::endl;
448-
// }
449379
if (isHolonomic()) {
450380
float & vy_curr = control_sequence_.vy(i);
451381
vy_curr = utils::clamp(-s.constraints.vy, s.constraints.vy, vy_curr);
@@ -459,11 +389,6 @@ void Optimizer::applyControlSequenceConstraints()
459389
}
460390

461391
motion_model_->applyConstraints(control_sequence_);
462-
463-
// std::cout << "Control Sequence After Motion Model Constraints:\n";
464-
// std::cout << "vx: " << control_sequence_.vx(Eigen::seq(0, 9)).transpose() << "\n";
465-
// std::cout << "wz: " << control_sequence_.wz(Eigen::seq(0, 9)).transpose() << "\n";
466-
// computeControlSequenceAccel(control_sequence_);
467392
}
468393

469394
void Optimizer::updateStateVelocities(
@@ -476,23 +401,16 @@ void Optimizer::updateStateVelocities(
476401
void Optimizer::updateInitialStateVelocities(
477402
models::State & state)
478403
{
479-
// state.vx.col(0) = static_cast<float>(state.speed.linear.x);
480-
// state.wz.col(0) = static_cast<float>(state.speed.angular.z);
481404
state.vx.col(0) = control_sequence_.vx(0);
482405
state.wz.col(0) = control_sequence_.wz(0);
483406

484407
if (isHolonomic()) {
485-
// state.vy.col(0) = static_cast<float>(state.speed.linear.y);
486408
state.vy.col(0) = control_sequence_.vy(0);
487409
}
488410

489-
// save for later
490411
initial_velocities_(0) = control_sequence_.vx(0);
491412
initial_velocities_(1) = control_sequence_.vy(0);
492413
initial_velocities_(2) = control_sequence_.wz(0);
493-
494-
// std::cout << "updateInitialStateVelocities: (" << state.speed.linear.x << " , " << state.speed.angular.z << ")\n"
495-
// << state.vx(0, Eigen::seq(0, 5)) << "\n " << state.wz(0, Eigen::seq(0, 5)) << std::endl;
496414
}
497415

498416
void Optimizer::propagateStateVelocitiesFromInitials(
@@ -639,16 +557,11 @@ void Optimizer::updateControlSequence()
639557
costs_ += (gamma_vy * (bounded_noises_vy.rowwise() * vy_T).rowwise().sum()).eval();
640558
}
641559

642-
// std::cout << "costs_: " << costs_(Eigen::seq(0, 9)).transpose() << "\n";
643-
644560
auto costs_normalized = costs_ - costs_.minCoeff();
645561
const float inv_temp = 1.0f / s.temperature;
646562
auto softmaxes = (-inv_temp * costs_normalized).exp().eval();
647563
softmaxes /= softmaxes.sum();
648564

649-
// std::cout << "costs_normalized: " << costs_normalized(Eigen::seq(0, 9)).transpose() << "\n";
650-
// std::cout << "softmaxes: " << softmaxes(Eigen::seq(0, 9)).transpose() << "\n";
651-
652565
auto softmax_mat = softmaxes.matrix();
653566
control_sequence_.vx = state_.cvx.transpose().matrix() * softmax_mat;
654567
control_sequence_.wz = state_.cwz.transpose().matrix() * softmax_mat;
@@ -669,11 +582,6 @@ geometry_msgs::msg::TwistStamped Optimizer::getControlFromSequenceAsTwist(
669582
auto vx = control_sequence_.vx(0);
670583
auto wz = control_sequence_.wz(0);
671584

672-
// std::cout << "getControlFromSequenceAsTwist:\n\tsettings_.shift_control_sequence" << settings_.shift_control_sequence
673-
// << "\n\t (vx , wz): (" << vx << ", " << wz << ")\n\t control_sequence_:\n\t\t"
674-
// << control_sequence_.vx(Eigen::seq(0, 9)).transpose() << "\n\t\t"
675-
// << control_sequence_.wz(Eigen::seq(0, 9)).transpose() << std::endl;
676-
677585
if (isHolonomic()) {
678586
auto vy = control_sequence_.vy(0);
679587
return utils::toTwistStamped(vx, vy, wz, stamp, costmap_ros_->getBaseFrameID());

0 commit comments

Comments
 (0)