距離センサーを搭載する
KXRのセットには、PSD距離センサーや超音波センサー(受信部)を搭載するためのセンサーベースが付属しています。今回は、このセンサーベースの使用方法をご紹介します。
■PSDセンサーとは
赤外線を使用した距離を計測するためのセンサーです。5Vを入力することでアナログ信号により距離を検知することができます。
■必要なパーツ
以下は、キット付属品です。
・センサーベースA ×1
・ボトムアーム3300(20mm) ×1
・2.6-4フラットヘッドビス ×3
・M2.6-10BHビス ×1
■搭載方法
今回はKXR-L4T カメ型ロボットの頭部に取り付けます。
1)センサーベースAに2.6-4フラットヘッドビスでPSDセンサーを固定します。
2)さらに、ボトムアーム3300(20mm)を2.6-4フラットヘッドビスで固定します。
3)頭部のダミーサーボとジョイントフレームBを取り外します。
4)センサーベースAを頭部のジョイントベースにM2.6-10BHビスで固定します。
5)PSDセンサー付属のケーブルは、コネクタが大きい方をPSDセンサーに接続し、小さい方をRCB-4miniに接続します。今回は、RCB-4miniのAD1へ接続しました。
以上で搭載は完了です。
■HeartToHeart4でセンサーを制御する
今回は、HeartToHeart4の機能を使用してロボットが物体と一定の距離を保つ制御を行ってみたいと思います。
1)HeartToHeart4を起動し、プロジェクトブラウザウィンドウを開いて「Hello_KXR-L4T」のプロジェクトを展開します。.h4p拡張子のファイルをダブルクリックします。
2)「新規モーション」ボタンを押して新規にモーションウィンドウを作成します。
3)ツールボックスウィンドウからCmpADコントロールをドラック&ドロップします。
このCmpADは、センサーの値によってプログラムを分岐することができます。
4)CmpADをダブルクリックして開きます。
5)ロボットの電源を入れてからポートでAD1を選択し「Sync」ボタンを押してください。
「実測値」にAD1へ接続したPSDセンサーの値がリアルタイムで表示されます。
PSDセンサーに手を近づけたり離したりすると値が変わります。
今回は、約15cmの距離を保つように設定します。
この距離センサは、15cm先に物があるとRCB-4では350の値を取得できます。よって「比較する値(閾値)」には350を設定します。
値は、15cmより近づくと350より大きくなり、遠ざかると350より小さくなります。
計測可能な距離は約80cmです。80cmを超えると約50以下の値になりますのでこの値もプログラムで使用します。
一度CmpADをCANCELで閉じてください。
6)プログラムの流れは以下のようになっています。
1.閾値350以上だったら後進して離れる
2.閾値350以下だったら前進して近づく
3.閾値100以下だったら首を振る
※80cmを超えた場合は50以下ですが、余裕をもって100にしています。
7)実際にプログラミングを作成します。
まず、CmpADを二つ追加します。
8)次にMotionJumpを三つ追加します。
MotionJumpは、指定したモーションを再生することができます。
9)接続線で各コントロール(パネル)をつなぎます。画像のように配線してください。
青い線とグレーの線は通常の「接続モード」の線です。オレンジの線は「分岐接続モード」の線です。線の途中で折れている箇所がありますが、配線の途中でクリックするとアンカーポイントを置くことができます。
●接続モードと分岐接続モードについて
通常は接続モードを使用して配線します。このモードで配線した場合、配線元のCmpADから配線先へ順番にプログラムが移動します。
分岐接続モードの時は、CmpADなどの比較に対して条件に合っていれば(true)分岐接続モード(オレンジ線)で配線した先に移動し、条件から外れていたら(false)接続モード(青線)で配線した先に移動します。
10)一つ目のCmpADを開き以下の画像のように設定してください。「行き先」はそのままでOKです。
ここでは、1.の「AD1の値が350以上だったらMotionJumpへ移動」と設定しています。
後で設定しますが、このMotionJumpに後進モーションを設定することでロボットに後進を指示することが可能です。
11)二つ目のCmpADを開き以下の画像のように設定してください。
ここでは、3.の「AD1の値が100以下だったらMotionJumpへ移動」と設定しています。
12)三つ目のCmpADを開き以下の画像のように設定してください。
ここでは、2.の「AD1の値が350以下だったらMotionJumpへ移動」と設定しています。
ここでプログラム2.「閾値350以下だったら前進して近づく」と3.「閾値100以下だったら首を振る」の順番が逆になっていますが、もし2.の判定、3.の判定の順番で行うと、100以下の値を取得した場合、値は350以下でもありますので2.の350以下として判定されてしまい3.の100以下に移動しません。その状態を防ぐため、3.の判定、2.の判定と順番を入れ替えています。
13)CmpADの次は、MotionJumpを設定します。全てのMotionJumpにて必ず「再生後復帰する」にチェックを入れて下さい。
一つ目は「XL4T_102 一定歩行後(3回)」
二つ目は「XL4T_203 首を振る」
三つ目は「XL4T_101 一定歩行前(3回)」をそれぞれ指定します。
以上で設定は完了です。
14)出来上がったモーションをRCB-4miniへ登録します。「モーション書き込み」ボタンを押してください。
15)ダイアログが開きますので、空いている箇所を選択しOKボタンを押します。
16)「モーション一覧ウィンドウ」ボタンを押してウィンドウを開き「モーション書き込み」ボタンを押してRCB-4,miniにデータを登録します。
■プログラムの実行
1)モーション一覧ウィンドウ内の先ほど登録したモーションを選択し「再生」ボタンを押してください。
手の距離によってロボットが移動すれば成功です!
近づけたり、離して試してください。手をどけるとロボットが首を振るはずです。
2)プログラムを停止するときは、「停止」ボタンを押します。
以上ですべての作業が完了です!
■プロジェクト、モーションを保存する
HTH4を閉じるときは、モーションの保存と、プロジェクトの保存を忘れずに行ってください。
CmpADとMotionJumpを組み合わせることでセンサーを使った簡単なプログラムを行うことができます。HeartToHeart4には、他にも多彩な機能がありますのでぜひ試してください。
以上です!