1#ifndef CHASSIS_STEER_DRIVE_H_
2#define CHASSIS_STEER_DRIVE_H_
24 static_assert(
N > 0,
"template parameter N must be greater than 0");
42 std::array<std::complex<float>,
N>
vels;
43 const std::complex<float>
rotate = std::polar<float>(
vel.ang_rad, 0);
44 for(
int i = 0;
i <
N; ++
i) {
46 const std::complex<float>
vel_fix = std::polar<float>(std::hypot(
vel.x_milli,
vel.y_milli),
ang);
52 std::function<
void(std::array<std::complex<float>,
N>)> f_;
座標、速度を表す構造体 CoordinateUnit を提供する。
void move(const Velocity &vel, float offset_rad=0.0)
モータへのPWM出力を計算する。その後callback関数にPWM出力を渡す。
SteerDrive(F &&f)
コンストラクタ。callback関数をセットする。
static constexpr int size() noexcept
モータ数を返す。