C-Styleでオムニホイール制御(SCA導入 その3)

モーター制御値の組み合わせは表計算ソフトなどでまとめると、その周期性に簡単に気づけると思う。全モーターの回転方向を揃えているとより分かりやすい。(以下、Excelの例。数式表示にしています)

3輪:6方向、4輪:8方向をより細かく分ける場合、隣り合う移動方向用のモーター毎の制御値の平均値を使うと計算上は中間の向きになる。三角関数が使えなくても、移動方向を増やすことはそう難しくない。(配列の使えないC-Styleではifの分岐が面倒なことになるが)


同様にプログラム中でリアルタイムに平行移動の値と旋回用の値を足して制御することで、移動しながらの向きの制御もできる。この場合、足した結果がコントローラで受付可能な範囲内の値になるよう注意する。

  • 100より大きな値は100に置換する、-100より小さな値は-100に置換する
  • 足しても100、-100を超えない値を使う(それぞれ絶対値が、平行移動が90・旋回用が10)

など。

向きの補正ができるようになると、モーターの個体差は気にしなくてすむ。



「A(Actuator) アクチュエータ」パートで移動方向を指定して動けるようになれば、「C(Computer) コンピュータ」パートでどのように移動方向を決定できれば、目的にあったロボットを作ることができる。4輪オムニと3輪オムニを切り替える場合でも、「A(Actuator) アクチュエータ」パートだけ直せば済む。