奮闘記【24】 ロボットの移動と操縦の正面切り替え

2018年11月22日 9:08:58 by fdkltd

どうもhataです。

 今週は、平行移動と旋回を合算した各モータの回転速度と回転方向を計算する処理と、操縦の正面位置の切り替えを行う処理の実装と動作確認を行いました。

 先週実装した平行移動を行う処理に、旋回を行う処理を追加しました。しかし、平行移動と旋回の処理のそれぞれで得たモータの回転方向を正転を0、反転を1として加算してしまい、正しく動作しませんでした。平行移動の処理専用の、モータの回転方向の決定をする処理があり、平行移動の処理も作り直す必要があると考えたので、各モータの回転速度と回転方向を計算する処理全体の設計からやり直しました。

 平行移動に使う左スティックの傾きの値に、旋回に使う右スティックの傾きの値を加算して、結果の値が正であればモータの回転方向は正転、負であれば反転、その値の絶対値を回転速度にするという処理の仕方に変更することで、平行移動と旋回が行えるようになりました。スティックから得られる値は(x,y)それぞれの方向の傾きだったのを、上向きを基準とする極座標系に変換して移動方向と移動速度を計算するように変更しました。それに加えて、0番アームのある方向をロボットの基準とすることで、ロボットの操縦のための正面位置が45度ずつ切り替わっても、スティックの方向とロボットの基準からのズレを足し合わせることで、ロボットの移動方向を決められるようになりました。

 ロボットの移動のためのプログラムの実装と動作確認が終わりました。次週からは、アームでオブジェを取得するためのプログラムの設計と実装を行います。