奮闘記【23】ロボットをゲームパッドで動かす

2018年11月16日 8:59:18 by fdkltd

どうもhataです

今週は、ロボットをゲームパッドの左ジョイスティックで移動、右のジョイスティックのX軸方向の傾きで旋回ができるプログラムの設計と作成を行いました。

今回のロボットはオムニホイールを駆動輪に採用しているので、平面上の任意の方向へ移動が可能です。また、アームが8本あるので、前後方向から90度ずれた位置にある2本のアームでオブジェを獲得後、次のアームでオブジェをとれるようにするために、操作上の前の基準を45度ずつ切り替えることが必要だと考え、それを考慮したプログラムの設計を行いました。

まずは、左スティックでの移動だけについて考えました。ジョイスティックのX、Y軸それぞれの方向の速度成分を極座標系に計算しなおし、左スティックの倒れている方向を角度に変換し、倒れている大きさをスピードとしました。スティックが前に倒れている時を0度とし、ロボットの前方向を決めました。こうすることで、前方向の切り替えが「進行方向の角度+45度×前になるアームの番号」で行うことができます。左スティックでの移動を行うプログラムを実装し、正しく動作することを確認しました。

この後、旋回のプログラムを移動の関数の中に実装しようとしたのですが、正しく動きませんでした。原因としては計算式の間違いであると考えています。来週はこの旋回のプログラムを修正し、前方向切り替えのプログラムの実装をする予定です。