数学的不等式を使用した V5 距離センサーのコーディング

VEX Robotics Competition (VRC) の試合中にロボットで V5 距離センサーを使用すると、ロボットが自律的な動きを使用してより多くのポイントを獲得できるようになります。

この記事の例として使用されるゲームは、2021-2022 年の VRC ゲーム、Tipping Point です。ゲームとその遊び方の詳細については、このページ をご覧ください。この記事全体で使用されているゲームの定義、ゲーム ルールの概要、およびスコアリングについては、Tipping Pointのゲーム マニュアルを してください。


V5 距離センサー

V5距離センサーの斜めからの画像。

V5 距離センサー は、V5 ロボット プラットフォームと完全に統合するように設計された強力な V5 センサーの 1 つです。

  • このセンサーは、教室で安全なレーザー光のパルスを使用して、センサーの前面から物体までの距離を測定します。
  • V5 距離センサーは、物体を検出し、物体の相対的なサイズを決定するために使用できます。オブジェクトのおおよそのサイズは、小、中、または大として報告されます。
  • センサーはロボットの接近速度の計算にも使用できます。アプローチ速度は、ロボット/センサーがオブジェクトに向かって移動する速度を測定します。

V5距離センサーの詳細、動作原理、VEXcode V5での使用方法については、VEXライブラリの記事を参照して。


V5 距離センサーの例

このプロジェクトの目標は、V5 距離センサーを使用してロボットにモバイル ゴールを持ち上げて移動させ、ゴールまでの距離を検出することです。

VEXcode V5ブロックプロジェクト。モバイルゴールを検出するまで前進し、それを拾い上げて移動させる。プロジェクトの説明には、「開始時に前進し、DistanceCenterオブジェクトまでの距離(mm)が139未満になるまで待機し、その後、走行を停止する」とあります。次に、フォークモーターを上方向に600度回転させ、その後左方向に90度回転させます。次に、前進600mm走行し、フォークモーターを600度下向きに回転させ、その後後退300mm走行します。

これは、この記事で説明するコード例です。

この例の動作の内訳と、V5 距離センサーのコーディングに使用されるパラメーターの取得方法について説明します。

記事に沿って VEXcode V5 でプロジェクトを構築することもできますし、独自のカスタム ロボットをコーディングするときに V5 距離センサーを組み込む方法の例として、この記事を読んでインスピレーションを得ることもできます。

このビデオでは、上記のコードが実行され、ロボットがモバイル ゴールを拾って移動する様子が示されています。

この例では、VEXcode V5のデバイスメニューを開いてデバイスの設定を表示します。メニューにはまず、ポート19にある「DistanceCenter」という名前の距離センサーが表示されます。次に、ポート1と10にモーター、ポート3に慣性センサーを備えた駆動系があります。最後に、ポート2と9にはForkMotorsという名前のモーターグループがあります。

この例を自分で試してみたい場合は、この例の構成にロボットと距離センサーを追加するために VEXcode V5 で使用されるロボット構成を次に示します。

この例で使用したロボット

Moby Hero Botを上から見た図。追加されたV5距離センサーが強調表示されている。距離センサーは、ロボットのフォークの後方下部に位置し、前方を向いています。

この例で使用されるロボットは、2021-2022 VRC ヒーロー ボット、Moby です。 Moby の設計にはセンサーがありません。この例では、V5 距離センサーが Moby に追加されました。

この例では、V5 距離センサーが Moby's フォークの中心近くに取り付けられています。

Moby の詳細については、VEX ライブラリの記事参照して 。

V5 距離センサーをコーディングしたり、今年のコンテストに参加したりするために、Moby を使用する必要はありません。カスタム ロボットのどこにでもセンサーを取り付けることができます。

注: ロボット上の構造物がセンサー表面の小さなレーザー窓の前にないことを確認してください。ゴールとセンサーの間には、センサーの前に障害物がない道が必要です。

得点対象となる行動の内訳

V5 距離センサーからのフィードバックを使用してモバイル ゴールを持ち上げて移動するには、まずロボットがどのように移動すべきかを分析します。

Mobyロボットはフィールド上に配置され、その数フィート手前に移動式ゴールが設置されている。

まず、ロボットをモバイル ゴールに面するように配置します。

Mobyロボットが前進して移動目標を感知した後の様子が示されている。移動式ゴールは現在、ロボットのフォークアーム内部に搭載されています。

次に、モバイル ゴールがフォークの内側にありセンサーに近づいていることを距離センサーが検出するまで、ロボットは前進する必要があります。

Mobyロボットは、モバイルゴールを検出した後、腕を上げてゴールを拾い上げる様子が映し出されている。

モバイル ゴールがフォーク内またはセンサーの近くにあることをセンサーが検出すると、ロボットは運転を停止し、フォークを上げてモバイル ゴールを持ち上げます。

モバイルゴールを運搬中のMobyロボットが、左に90度回転した。

モバイル ゴールを持ち上げると、ロボットは左に 90 度回転し、600 ミリメートル (mm) 前進します。

フォークを下げてモバイルゴールを設置し、その後後退したMobyロボット。

次に、ロボットはフォークを下げてモバイル ゴールを置き、次の動作で誤ってモバイル ゴールを倒してしまわないように、モバイル ゴールから離れる方向に後進します。


パラメータを理解する

上記の動作を実行するには、モバイル ゴールが V5 距離センサーからどのくらい離れているかを理解することが重要です。

V5 距離センサーを使用してモバイル ゴールを取得するためのパラメーター

モビーロボットがフィールド上に設置された移動式ゴールのフォークの間に、最適な距離を決定するための装置が配置されている。

モバイル ゴールがフォークの内側にありセンサーの近くにあることを距離センサーが検出するまでロボットが前進するためには、センサーの値を V5 Brain から記録する必要があります。

モバイル ゴールをロボットのフォークの間に置きます。

ホームメニューにV5 Brainの画面が表示され、「デバイス」オプションがハイライト表示されています。Brainの画面は「デバイス情報」メニューに表示され、Brainのすべてのスマートポートと接続されているデバイスの一覧が表示されます。デバイス情報メニュー内の距離センサーアイコンが強調表示されているのは、その項目を選択して情報メニューを開くことができることを示しています。

次に、Brain の画面から「デバイス」を選択し、距離センサーのアイコンを選択します。

距離センサーのメニューには、センサーのデータを表示する脳画面が表示されます。メニューには、物体の大きさ、速度、距離などのデータが表示されます。メニューには、距離とそれが時間とともにどのように変化するかを視覚化した図も掲載されている。このスクリーンショットでは、物体のサイズは小さく、速度は毎秒0メートル、距離は139mmです。

モバイル ゴールがセンサーから離れている距離がミリメートル (mm) 単位で Brain の画面に報告されます。

先ほど紹介したVEXcode V5ブロックプロジェクトと同じもので、モバイルゴールを検出するまで前進し、それを拾い上げて移動させます。プロジェクト内で距離センサーの物体距離と比較される値は139であり、その値が強調表示されています。

これは、距離センサーを使用してモバイル ゴールを取得するときにプロジェクトで使用される値です。

フォークを上げ下げするパラメータ

フォークの間に移動式ゴールが設置されたフィールド上のMobyロボット。

モバイル ゴールを再びフォークの内側に置きます。

Brainの画面は「デバイス情報」メニューに表示され、Brainのすべてのスマートポートと接続されているデバイスの一覧が表示されます。デバイス情報メニュー内のモーターアイコンが強調表示されているのは、その項目を選択して情報メニューを開くことができることを示しています。

次に、Brain の画面から「デバイス」を選択し、モーター 2 のアイコンを選択します。モーター 2 は左側のフォークを制御します。

モビーロボットがフィールド上に立ち、持ち上げたフォークの間に移動式ゴールが置かれている。

モバイル ゴールの下部が距離センサーの視界を妨げなくなるまで、手動でフォークを上げます。

フォークを手動で上げる場合は、Moby の左側と右側の各フォークを必ず同時に上げてください。それぞれが独自のモーターによって制御されます。

注意: フォークを手動で上げるときは、 ポイント 避けてください。

脳波画面は、デバイスのデータを表示するスマートモーターメニューに表示されます。メニューには、デバイスのデータを示す数値やグラフが表示されます。このスクリーンショットでは、モーターの「角度」の値が強調表示され、「604」と表示されています。

フォークが上げられた角度の数が Brain の画面に報告されます。

先ほど紹介したVEXcode V5ブロックプロジェクトと同じもので、モバイルゴールを検出するまで前進し、それを拾い上げて移動させます。プロジェクト内でフォークモーターグループが回転する角度は600度と表示され、強調表示されています。

これは、モバイル ゴールを持ち上げたり配置したりするためにフォークを上げ下げするときにプロジェクトで使用される値です。

Operator ブロックの使用

VEXcode V5の「より小さい」演算子ブロックが表示されます。このブロックは、2つの値を比較し、最初の値が2番目の値より小さいかどうかを報告するために使用されます。

このプロジェクトでは、 <Less than> 演算子ブロックを使用して距離センサーをコーディングします。

距離センサーのメニューには、センサーのデータを表示する脳画面が表示されます。メニューには、物体の大きさ、速度、距離などのデータが表示されます。メニューには、距離とそれが時間とともにどのように変化するかを視覚化した図も掲載されている。このスクリーンショットでは、物体のサイズは小さく、速度は毎秒0メートル、距離は139mmです。

これは、距離センサーが物体に近づくにつれて、センサーとその物体との間のミリメートル単位の距離が減少するためです。

先ほど紹介したVEXcode V5ブロックプロジェクトと同じもので、モバイルゴールを検出するまで前進し、それを拾い上げて移動させます。プロジェクト内で距離センサーの物体距離と比較される値は139であり、その値が強調表示されています。

しきい値を選択して、距離が所定量未満になったときにロボットの動作をトリガーできます。

たとえば、ロボットがモバイル ゴールに向かって走行している場合、 <Less than> オペレーター ブロックを使用して、距離が から 未満の約 139 ミリメートル (mm) になったときに停止するロボットの動作をトリガーします。

フォークの中に移動式ゴールを内蔵したモビーロボットがフィールド上にいる。距離センサーから移動式ゴールまでの距離は、赤い矢印で示されています。

たとえば、その値が 10 ミリメートル (mm) に変更された場合、センサーから 10 ミリメートル (mm) の距離はロボットのフォークの接触を防ぐのに十分な距離ではないため、ロボットは実際にモバイル ゴールに衝突し、自身を損傷する可能性があります。モバイルゴール。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: