Bグループ 制御班
・制御班の概要
主な作業、活動内容としては、Bグループが掲げた「完全自律走行によるサンプル採取」を達成するために、GPS測位の検証と電子回路の組み立て、機体制御(走行や採取)するためのアルゴリズムの考案と実装を行いました。
・衛星測位による位置情報誤差の検証
サンプル採取地点到達までには、事前に判明している目的地点への位置情報を目指して走行します。これより位置情報の精度は大変重要なものとなっており、現在使っているGPSモジュールがどれくらいの精度で位置情報を取得できるのかを事前に知っておく必要がありました。そこで今回、場所や衛星の状態など条件を変えて位置情報の誤差を検証しました。
具体的な検証方法ですが、GPSモジュールから取得した位置情報をGoogle Mapに入力し、実際の位置からどれくらいズレているのか調べます。またその時にGNSS Viewという衛星の位置を確認できるアプリを用いて、受信している3つの衛星がどのような状態にあるかも確認しました。
検証結果として市街地では30~50m誤差があったものの、笹流ダム公園では3~5m、未来大前交流広場では0.5~2mの誤差という結果になりました。
最も精度が良かった未来大前交流広場
(写真から交流広場のベンチの長さ以下の誤差であることが確認できる)
この結果から考えられることとして、衛星測位に関して干渉する要因の多い場所では位置情報の精度に悪影響が出るということが考えられます。市街地では多くの人工物や遮蔽物が存在し、様々な電波などが飛び交っている一方で、ダム公園や未来大前では周りに干渉する要因となるようなものが少ないことから精度が良いと結論付けました。(ダム公園での精度が未来大よりも若干悪いのはダムという巨大なコンクリートの構造物の存在が考えられます。)
また位置情報は「3点測位」と呼ばれる複数の衛星間からの情報をもとに計測しています。よって3つの衛星が全て上空に確認できており、かつ衛星の間隔が離れている場合に最も精度が良いとされています。
今回衛星が2つ出ている時と3つ出ている時にも調べ、衛星が3つ出ている時が一番精度が良いことも確認できました。
GNSS衛星が3つ出ている状態
(193、194、195の全ての受信可能な衛星が上空にある状態)
そこで実験は位置情報の誤差が少ない笹流ダム公園か未来大交流広場で行い、かつ上空にGNSS衛星が3つ確認できている状態が望ましいと判断し、その方向で実験計画を進めました。
・誤差を修正しながら目的地に移動するアルゴリズム
1.目的地の方角に機体を正確に向かせる
まず我々が取り組んだのは目的地の方角に正確に機体を向かせることでした。
そこで地磁気センサを用いて、地磁気を取得しながら目的の方角に向いたと判定したらその時点で回転を止めるというアルゴリズムを考案しました。しかし、機体が動いている状態で地磁気を取得しようとすると地磁気を安定して取得することができず、正確な方角に向くことができないという問題がありました。
そこで改善案として考案したのが以下の図のアルゴリズムになります。
まず停止状態で地磁気を取得し、目的方向に機体を右回転か左回転どちらに回ればいいか判定させ、一定時間その方向に回転させます。これを何度も繰り返し閾値の±3度以内に収まれば目的の方角に正確に向いたと判断するアルゴリズムを実装しました。
前述の上手くいかなかった方法から比べて地磁気を取得するのは機体を停止させた時のみとなっており、これにより地磁気を安定して取得することができ、正確な方角に機体を向かせることに成功しました。
以下の図が正確な方角に機体の向きが収束していくイメージになります。
時間軸を横にとった誤差を修正するまでに至るイメージ図
2.目的地の方角に正確に走行する
目的地に向かって正確に機体を向かせるアルゴリズムが作成できた後、次に目指したのが目的地の方角に向かって走らせるアルゴリズムの考案です。
目的地の正確な方角に機体を向かせたとしても、タイヤのわずかな歪みや地形の凹凸などの要因によって直進せず目的地に辿りつかないことが考えられます。
そこで考案したのが以下の図のようなアルゴリズムです。「機体は直進しない」ことを前提に方向をその都度修正し、直進していくというものです。また、方向修正のタイミングが一定だと目的地になかなか辿りつかないので、目的地に近づくにつれて方向修正の間隔を狭めていくという方法を取りました。
以上1.2を実装したことにより、実験において様々な誤差が生じてしまう環境下でも安定して目的地に向かう機体を作成することができました。
また、以下は実験の成功例となっております。
©2021未来大学プロジェクト学習15
©2021未来大学プロジェクト学習15
・今後の展望
制御班では実験において生じてしまう誤差をどのように対処していくかということを念頭に開発を進めていきました。サンプル採取は「ゼロ距離接近」が基本になり、遠隔操作に頼らない完全自律走行での条件下では非常に難度が高いものでした。目的地への走行の段階で生じてしまう誤差をある程度最適化することはできましたが、完璧ではないというのが現状です。
今回電源など様々な問題で実現できませんでしたが、改善案としてカメラを搭載し、ディープラーニングベースによる物体検出を使ったゼロ距離接近が考えられます。事前に目的地の目印になるようなものを検出できるようにさせておき、物体を囲うバウンディングボックスの面積が一定の値を超えたら「ゼロ距離接近した」と判定させるものです。こうすることで、ある程度目的地に接近できれば安定したゼロ距離接近が可能になると考えられます。
・使用した電子部品
・Arduino Nano
を使用いたしました。
~仕様~
搭載マイコン:プログラム書込み済みのATMEGA328P-AU
マイコン動作電圧:5V
ボード入力電圧:7-12V
デジタルI/Oピン:x 14
PWM出力可能ピン:x 6
アナログ入力ピン:x 8
フラッシュメモリ:32キロバイト
SRAM:2キロバイト
EEPROM:1キロバイト
クロック周波数:16MHz
USB端子:ミニBメス(C-07606がささります)
・GPS
GPS受信キット 1PPS出力付き「QZSS(みちびき)」三機受信対応
を使用いたしました。
~仕様~
太陽誘電製・小型高感度GPSモジュール〔GYSFDMAXB〕使用
受信感度:-164dBm(トラッキング)、
電源:DC5V/40mA、
シリアル通信:9600bps、
搭載GPS受信チップ:MT3339(Media tek)、
受信周波数:1575.42MHz(L1,C/Aコード)、
受信チャネル数:66(アクイジション)、22(トラッキング)、
対応測位衛星システム:GPS(US),QZSS(Japan)、
測位確度:2m、
出力データ形式:NMEA0183 V3.01 準拠
測地系:WGS1984(デフォルト)
電源電圧:DC5V(3.8~12V)
電源電流:40mA
入出力信号レベル:C-MOSロジック(3.3V)レベル、非同期シリアル信号
UART通信速度:9600bps(デフォルト)、4800~115200bps
出力データ更新レート:毎秒1回(デフォルト)、毎秒1~10回出力可
バックアップ機能:アルマナック情報+エフェメリス情報、各種設定情報
基板サイズ:30*30*13.5mm(電装ボックス実装時)
重量:約11g(バックアップ電池装着時)
太陽誘電製の小型高感度GPSモジュール[GYSFDMAXB]を使用したGPS受信機。
NMEA0183に準拠した緯度・経度・高度・時刻などの各種ナビゲーション情報を
C-MOSロジック(3.3V)レベルのシリアル信号(9600bps)で出力。
GPS衛星追尾中(三次元測位中)は正確な一秒(1PPS)信号を出力。
NMEAセンテンス更新レートを最大毎秒10回にすることが可能。専用GUIソフト
ウェア〔Mini GPS〕によって、通信速度やNMEAフォーマットのセンテンスを設定
できる。
(みちびきとは|サービス概要|みちびき(準天頂衛星システム:QZSS)公式サイト - 内閣府)
・9軸センサ
を使用いたしました。
~仕様~
電源電圧範囲:3.3~5.0V
測定レンジ(加速度):±2/±4/±6/±8/±16g
測定レンジ(ジャイロ):±245/±500/±2000dps
測定レンジ(磁力):±4/±8/±12/±16gauss
インターフェース:I2C
基板寸法:24mm×19mm
・モーター
POLOLU-3076 150:1 シャフト付き超小型メタルギアドモーター HPCB 6V ×2
を使用いたしました。
~仕様~
寸法:10 × 12 × 26 mm
重量:9.5 g
シャフト径:3 mm Dタイプ
ギア比:150.58 : 1
無負荷時速度(6 V):220 rpm
無負荷時電流(6 V):0.10 A
ストール時電流(6 V):1.5 A
ストール時トルク(6 V):2.0 kg・cm
最大出力時電力(6 V):1.1 W
6 Vでの最大効率:31%
最大効率での速度:170 rpm
最大効率でのトルク:0.41 kg・cm
最大効率での電流:0.39 A
最大効率での出力電力:0.73 W
・モータードライバー
DRV8835使用ステッピング&DCモータドライバモジュール ×2
を使用いたしました。
~仕様~
2mm×3mmWSONパッケージを、使いやすい300mil幅2.54mmピッチ12ピン(6x2)のDIP基板に変換し、電源ライン(VM、VCC)に必要なコンデンサを実装しました。
2個(並列接続時は1個)のDCモータ、あるいは1個の2相バイポーラステッピングモータを駆動できます。
低オン抵抗の内蔵MOSFETにより低損失を実現:ハイサイド+ローサイド 305mΩ
1回路(Hブリッジ)ごとに1.5Aのドライブ能力。並列接続で3Amax。
モータ電源とロジック電源ピンが分離されています:モータ電源2~11V、ロジック電源2V~7V
モード設定により2種類の信号付与方式が選択できます。(IN/IN・PHASE/ENABLE)
極低消費電力スリープモード(VCC=0V時):95nAmax
・地磁気センサ
P Prettyia Arduino用 3.3V / 5V HMC5883L 三軸 コンパス 磁力 センサ モジュール
を使用いたしました。
~仕様~
通信モード:標準IIC通信プロトコル
チップを使用:HMC5883L
ボードサイズ:約。 16 x 18mm / 6.3 x 7.08インチ
供給電圧:3.3V / 5V
ピン間隔:2.54mm(100mil)
0コメント