130 {
131 chassis_reader_->Observe();
132 const auto &chassis_msg = chassis_reader_->GetLatestObserved();
133 if (chassis_msg == nullptr) {
134 AERROR <<
"Chassis msg is not ready!";
135 return;
136 }
137
138 double current_speed = 0.0;
139
140 double input_acc_lookup = 0.0;
141
142 double input_throttle_cmd = 0.0;
143 double output_throttle_cmd = 0.0;
144 double input_brake_cmd = 0.0;
145 double output_brake_cmd = 0.0;
146 double input_calibration_value = 0.0;
147 double output_calibration_value = 0.0;
148
149 if (cmd.debug().simple_lon_debug().has_acceleration_lookup()) {
150 current_speed = chassis_msg->speed_mps();
151 input_acc_lookup = cmd.debug().simple_lon_debug().acceleration_lookup();
152 input_calibration_value =
153 cmd.debug().simple_lon_debug().calibration_value();
154
155 output_calibration_value = control_interpolation_->Interpolate(
156 std::make_pair(std::fabs(current_speed), input_acc_lookup));
157
158 if (input_acc_lookup * input_calibration_value < 0.0) {
159 AINFO <<
"current_speed:" << current_speed
160 << ", input_acc_lookup:" << input_acc_lookup
161 << ", input_calibration_value:" << input_calibration_value
162 << ", output_calibration_value:" << output_calibration_value;
163 }
164 }
165
167 }