2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【備忘録】ArdupilotでTF MINI Plus を I2Cで動かす

Last updated at Posted at 2022-06-23

はじめに

Benewake社のTF MINI Plus(測距センサー)をI2Cで使うまでの方法について記載していきます。
このセンサを使用して車体の進行方向にある壁等を検出して停止できるような車体を構成したいと考えています。

TF MINI Plusについて

TFMini-Plusは赤外線の反射時間を基に距離を測定する単焦点LiDARです。
反射率90%の場合0.1m~12mまで、反射率10%の場合0.1m~7mまで測定することができます。
視野角(FOV)が3.6度と狭い為、2DLiDARの様に広範囲に渡って障害物を検出することが出来ませんが、車体の進行方向にある壁等に対する回避(停止)を目的として使用します。

手順

  1. モードを設定する
  2. IDを確認する
  3. パラメータ設定
  4. 動作確認

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です。
image.png

② ステータスから確認

「ステータス」から「sonarrang」を探してください。
センサーの前に手をかざし数値が変わればOKです。
image.png

動作確認

上記の確認が終わりましたら車体に取り付け、車体に搭載した状態で再確認をしてください。
センサーの前に障害物を置き、車体が停止することを確認できればOKです。

参考

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?