Ardupilot (rover)でGY-US42(ソナー)を用いて障害物検出の機能を追加したのでその方法を記載する。
環境
ハードウェア
・ オートパイロット:Cube Orange
・ 非接触センサー :GY-US42V2(ソナー)
ソフトウェア
・ ファームウェア :Ardupilot (rover 4.2)
・ 地上局 :Missionplanner(ver 1.3.77)
配線
以下を参考に配線を行いました
https://ardupilot.org/rover/docs/common-rangefinder-gy-us42.html
https://qiita.com/Fumi_Saito/items/70bf8d61549cce47aa87
検出条件
・ 検出距離 : 1m
・ 回避方法 : シンプルモード(停止)
パラメータ設定
センサーの種類を距離計(RangeFinder)に、センサーの方向を前方に設定する。
パラメータ | 値 | 解説 |
---|---|---|
AVOID_ENABLE | 7 | 回避入力ソース ⇒ すべて使う |
AVOID_MARGIN | 1 | 回避距離マージン ⇒ 1m |
AVOID_BACKUP_SPD | 0 | 障害物から離れる最高速 ⇒ 0m/s(バック無効で車を止める) |
PRX_TYPE | 4 | 接続されている近接センサーの種類 ⇒ RangeFinder |
RNGFND1_TYPE | 2 | 接続している距離計の種類 ⇒ MaxbotixI2C |
RNGFND1_ORIENT | 0 | 接続している距離計の方向 ⇒ 前方 |
RNGFND1_MAX_CM | 400 | 接続している距離計の最大距離 ⇒ 4m |
RNGFND1_MIN_CM | 0.2 | 接続している距離計の最小距離 ⇒ 0.2m |
動作確認
車輪が回転しないようにしてセンサーに障害物を近づける。
以下の様になっていればOK
・ Sonar Range : 1.0m以下
・ CH3 OUT : 1500.00(ニュートラル)
参考
https://ardupilot.org/rover/docs/common-simple-object-avoidance.html
https://qiita.com/srs/items/eb50af277a29a129a5f9