2022年7月12日

SPIKE ジャイロセンサーを使った走行制御

ロボコンの競技ではロボットを正確に回転(旋回)させたい場合や、ロボットがどの方向を向いているかを確認したい場合が多々あります。その場合、ジャイロセンサーの傾斜角モードを用いて角度を取得して判断を行わせたりモーターを制御します。 そこで今回はジャイロセンサーを使った走行制御のプログラムを考えていきます。

傾斜角モード

はじめに簡易的な車体を用意します。(ここではSPIKEプライム ラージハブを地面と水平になるように組み立ててください。)

車体に使用しているハードウェア

  • SPIKEプライム ラージハブ
  • Mモーター×2(E、Fポート)
簡易的な車体

SPIKEプライムで利用できるジャイロセンサーはラージハブに内蔵されています。

ジャイロセンサー

◆ジャイロセンサーの値を確認してみましょう。

ラージハブをPCとUSB接続、もしくはBluetooth接続するとSPIKEアプリ上でジャイロセンサーの値を確認することができます。ジャイロセンサーの値は、傾斜角モードにするとヨー角、ピッチ角、ロール角の三種類を確認することができます。それぞれの角度の値は下図のような関係になっています。

SPIKEアプリ
車体

※ロボットを水平な場所に置いてから起動(接続)しないとジャイロセンサーが有効にならないので注意してください。

◆SPIKEアプリでプログラミングします。

プログラム1

◆プログラムについて

ジャイロセンサーを利用して、設定した角度までロボットを旋回させてみましょう。 ジャイロセンサーを利用する場合はプログラム内の最初で必ず初期化をさせます。今回はロボットを横に回転させるために、ヨー角の値を利用するので、ブロック「ヨー角を0に設定」で初期化させます。

ロボットが旋回を始めたら、ブロック「~まで待つ」の条件に旋回させるヨー角の値を演算ブロックを使って設定しています。 今回はロボットが90度右に旋回するまで回転しています。

◆SPIKEアプリでプログラミングします。

競技のシーンをイメージして走行にジャイロセンサーを活かしてみます。 今回はライントレースの場合などと比較して目印がない場合でも、ジャイロセンサーの値を利用してできるだけ真っ直ぐ走行させてみます。

プログラム2

◆プログラムについて

ロボットが左右に振られないように、ジャイロセンサーの値に応じて3パターンの旋回値で走行します。 「もし~~なら ~~でなければ」のブロックを使って3パターンの動きを条件分岐で実現しています。

ヨー角の値が-5より低くなった場合、ロボットが左側に曲がってしまっていると判断し、右側にゆるやかに旋回するように制御しています。
ヨー角の値が5より高くなった場合、ロボットが右側に曲がってしまっていると判断し、左側にゆるやかに旋回するように制御しています。
ヨー角の値が-4~4の間はロボットは真っ直ぐ進みます。

これら3つの動きを逐一判断して、真っ直ぐ進むようにしています。

以下でもSPIKEプライムを使ったロボコン競技に役立つ技術情報を公開しています。ぜひチェックしてみてください。

ロボジョイURL:http://www.robojoy-club.com/challenge.php

PFU

協力:株式会社PFU

※2022/6/9現在 最新バージョン(2.0.6)のSPIKEアプリに基づく情報です。
※これらの仕様はアプリのアップデートによって変更される場合があります。

(2022/6/9 現在)