@@ -123,12 +123,10 @@ RobotTracker::RobotTracker(const int team_color, const int id, const double dt)
123
123
// 例:1.0[rad/s] / 0.001[s] = 100 [rad/ss]
124
124
// cspell: ignore RADPS
125
125
const double MAX_ANGULAR_ACC_RADPS = 0.05 * M_PI / dt;
126
- const double MAX_LINEAR_ACCEL_IN_DT = MAX_LINEAR_ACC_MPS * dt; // [m/s]
127
- const double MAX_ANGULAR_ACCEL_IN_DT = MAX_ANGULAR_ACC_RADPS * dt; // [rad/s]
128
- const double MAX_LINEAR_MOVEMENT_IN_DT =
129
- MAX_LINEAR_ACC_MPS / 2 * std::pow (dt, 2 ); // [m]
130
- const double MAX_ANGULAR_MOVEMENT_IN_DT =
131
- MAX_ANGULAR_ACC_RADPS / 2 * std::pow (dt, 2 ); // [rad]
126
+ const double MAX_LINEAR_ACCEL_IN_DT = MAX_LINEAR_ACC_MPS * dt; // [m/s]
127
+ const double MAX_ANGULAR_ACCEL_IN_DT = MAX_ANGULAR_ACC_RADPS * dt; // [rad/s]
128
+ const double MAX_LINEAR_MOVEMENT_IN_DT = MAX_LINEAR_ACC_MPS / 2 * std::pow (dt, 2 ); // [m]
129
+ const double MAX_ANGULAR_MOVEMENT_IN_DT = MAX_ANGULAR_ACC_RADPS / 2 * std::pow (dt, 2 ); // [rad]
132
130
133
131
// システムノイズの分散
134
132
SymmetricMatrix sys_noise_cov (6 );
@@ -165,8 +163,7 @@ RobotTracker::RobotTracker(const int team_color, const int id, const double dt)
165
163
Gaussian measurement_uncertainty (meas_noise_mu, meas_noise_cov);
166
164
167
165
meas_pdf = std::make_shared<ConditionalGaussian>(H, measurement_uncertainty);
168
- meas_model =
169
- std::make_shared<MeasurementModelGaussianUncertainty>(meas_pdf.get ());
166
+ meas_model = std::make_shared<MeasurementModelGaussianUncertainty>(meas_pdf.get ());
170
167
171
168
// 事前分布
172
169
ColumnVector prior_mu (6 );
@@ -239,8 +236,7 @@ TrackedRobot RobotTracker::update()
239
236
double sum_x = 0.0 ;
240
237
double sum_y = 0.0 ;
241
238
242
- for (auto it = robot_observations.begin ();
243
- it != robot_observations.end ();) {
239
+ for (auto it = robot_observations.begin (); it != robot_observations.end ();) {
244
240
mean_observation (1 ) += it->pos .x ;
245
241
mean_observation (2 ) += it->pos .y ;
246
242
// 角度は-pi ~ piの範囲なので、2次元ベクトルに変換してから平均値を求める
@@ -256,8 +252,8 @@ TrackedRobot RobotTracker::update()
256
252
257
253
// 観測値と前回の予測値がpi, -pi付近にあるとき、
258
254
// 2つの角度の差分が大きくならないように、観測値の符号と値を調節する
259
- mean_observation (3 ) = normalize_orientation (
260
- filter->PostGet ()->ExpectedValueGet ()(3 ), mean_observation (3 ));
255
+ mean_observation (3 ) =
256
+ normalize_orientation ( filter->PostGet ()->ExpectedValueGet ()(3 ), mean_observation (3 ));
261
257
262
258
filter->Update (meas_model.get (), mean_observation);
263
259
correct_orientation_overflow_of_prior ();
@@ -324,8 +320,8 @@ bool RobotTracker::is_outlier(const TrackedRobot & observation) const
324
320
return false ;
325
321
}
326
322
327
- double mahalanobis = std::sqrt (
328
- std::pow (diff_x, 2 ) / covariance_x + std::pow (diff_y, 2 ) / covariance_y);
323
+ double mahalanobis =
324
+ std::sqrt ( std:: pow (diff_x, 2 ) / covariance_x + std::pow (diff_y, 2 ) / covariance_y);
329
325
if (mahalanobis > THRESHOLD) {
330
326
return true ;
331
327
}
@@ -361,8 +357,7 @@ double RobotTracker::normalize_orientation(double orientation) const
361
357
return orientation;
362
358
}
363
359
364
- double RobotTracker::normalize_orientation (
365
- const double from, const double to) const
360
+ double RobotTracker::normalize_orientation (const double from, const double to) const
366
361
{
367
362
// fromからtoへ連続に角度が変化するようにtoの符号と大きさを変更する
368
363
// from(150 deg) -> to(-150 deg) => from(150 deg) -> to(210 deg)
0 commit comments