はじめに
Benewake社のTF MINI Plus(測距センサー)をI2Cで使うまでの方法について記載していきます。
このセンサを使用して車体の進行方向にある壁等を検出して停止できるような車体を構成したいと考えています。
TF MINI Plusについて
TFMini-Plusは赤外線の反射時間を基に距離を測定する単焦点LiDARです。
反射率90%の場合0.1m~12mまで、反射率10%の場合0.1m~7mまで測定することができます。
視野角(FOV)が3.6度と狭い為、2DLiDARの様に広範囲に渡って障害物を検出することが出来ませんが、車体の進行方向にある壁等に対する回避(停止)を目的として使用します。
手順
- モードを設定する
- IDを確認する
- パラメータ設定
- 動作確認
1. モードを設定する
TF MINI Plusは初期状態ではシリアル(URAT)で通信するように設定されています。
I2Cで使用する為にはシリアルモードで設定変更を行います。
設定変更に必要なコマンドは以下となります。
・I2Cモードへ切り替え
・I2Cアドレスの設定
・設定の保存
TF MINI Plusのマニュアルより送信するコマンドは
・アドレスの変更 : 5A 05 0B Address CheckSUM
・通信モードの変更 : 5A 05 0A MODE CheckSUM
・設定保存 : 5A 04 11 6F
を送信すれば良いという事がわかります。
I2Cモードへの切り替えとI2Cアドレスの割り当てとチェックサムを付与したコマンドを送信します。
チェックサムは左側を最上位とした場合、上位4byteまでの値を加算して得られた値を0x100で割った余りとなります。
IDを0X12に設定した場合、チェックサムまで含めた送信コマンドは以下の様になります。
・アドレスの変更 : 5A 05 0B 12 7C
・通信モードの変更 : 5A 05 0A 01 6A
・設定保存 : 5A 04 11 6F
2. IDを確認する
ラズパイやArduinoを用いてID検索を行い設定したIDが記載されているか確認を行います。
・ラズパイを使用する場合 : i2cdetect
コマンドを使用してIDを確認してください
・Arduinoを使用する場合 : i2c_scannerを等で確認してください
3. パラメータ設定
AutoPilotのI2C端子に配線を接続しMisson Planserでパラメータの設定を行います。
AutoPilotの端子配列についてはこちらに例を記載しています。
Mission PlannerでRNGFND1_ADDR
の値を設定したアドレスを指定したときに検出できていればOKです。
以下のパラメータの設定内容についてはArdupilot で障害物検出を行う(その1)で設定した値を基にTF Mini Plusに合わせて修正したものです。
設定例
TF MINI-Plus を2個使用しIDを0X10, 0X12 とした場合の設定について以下に記載します。
回避の設定
パラメータ | 値 | 備考 |
---|---|---|
AVOID_ENABLE | 7 | 回避入力ソース ⇒ すべて使う |
AVOID_MARGIN | 1 | ここでは1mとしています(機体に合わせて設定してください) |
PRX_TYPE | 4 | 接続されている近接センサーの種類 ⇒ RangeFinder |
1個目のセンサ
パラメータ | 値 | 備考 |
---|---|---|
RNGFND1_ADDR | 16 | I2Cアドレス |
RNGFND1_MAX_CM | 400 | 接続している距離計の最大距離 ⇒ 4m |
RNGFND1_MIN_CM | 30 | 接続している距離計の最小距離 ⇒ 0.3m |
RNGFND1_ORIENT | 0 | 前方 |
RNGFND1_TYPE | 25 | TFmini-Plus I2C |
2個目のセンサ
パラメータ | 値 | 備考 |
---|---|---|
RNGFND2_ADDR | 18 | I2Cアドレス |
RNGFND2_MAX_CM | 400 | 接続している距離計の最大距離 ⇒ 4m |
RNGFND2_MIN_CM | 30 | 接続している距離計の最小距離 ⇒ 0.3m |
RNGFND2_ORIENT | 4 | 後方 |
RNGFND2_TYPE | 25 | TFmini-Plus I2C |
230214追記
回避に関する設定項目を分けました
メモ
※ RNGFNDx_:設定するセンサが何番目となるかで x の値が変わります
※ RNGFNDx_ADDRI2C:手順1で設定したアドレスの値を10進で入力します
4. 動作確認
Misson Planner起動中であれば以下の方法で確認することが出来ます
① レーダーチャートを表示させる
「ctrl+F」⇒Temp画面から「Proximity」をクリック,もしくは「初期設定」⇒「Advanced」⇒「Proximity」でレーダーチャートを表示します。
センサーの前に手をかざし赤いマーカーの位置が変わればOKです。
② ステータスから確認
「ステータス」から「sonarrang」を探してください。
センサーの前に手をかざし数値が変わればOKです。
動作確認
上記の確認が終わりましたら車体に取り付け、車体に搭載した状態で再確認をしてください。
センサーの前に障害物を置き、車体が停止することを確認できればOKです。
参考