ARLISSとは,小型人工衛星や小型地上探査機ローバーの開発を目的としたサブオービタル衛星打上実証実験です.学生が宇宙開発技術の基礎研究を競うコンペティションであり,アメリカ合衆国ネバダ州ブラックロック砂漠にて毎年開催されています.
髙玉研究室は,ロケットから放出された小型人工衛星やローバーが,砂漠中の目的地に自律的に降りる/走ることを競うカムバックコンペティションと自ら定めたミッションを自律制御によって達成するミッションコンペティションに参加しています.
2021年度 ARLISS
画像認識による物体認識とローバーの重心を後ろに倒して物体を把持・運搬する機構を実装した「Carryber」チームと,症状が予測できない変形などの故障に対して、従来のPID制御による最適化と”進化計算による最適化”の二つの最適化を用いて対処する手法を実装した「Salamander」チームの2チームで活動しました.
> チーム『Carryber』
2021年度のチームCarryberでは「物体検出×把持アーム機構による自律運搬CanSat」というミッションに取り組みました.将来の惑星探査において,月面基地の建設など惑星上での物資の運搬は欠かせない作業です.人間にとっては危険と隣り合わせである船外における活動のサポートをするためにも,CanSat自身が運搬物を認識し,人の手を介することなく自らの力のみで運搬を完遂できることが必要になります.
そこで,我々はカメラを用いた物体検出と,運搬物を把持するアーム機構を取り付け,手(アーム)を持ち,ものを認識できるCanSatの開発を目指しました.
特に,物体検出ではサイズの小さな物体に対しても検知可能なモデルおよび接近動作の構築,アーム機構では物体の形状に依存しない把持性能を持つ機構を開発しました.
①物体検知:ゴールコーンを色により判断するカメラ検知は高玉研究室でも用いられていましたが,今回は小さい運搬物も遠くから検知するために深層学習による物体検知手法を用いました.モデルを学習させる際に多様な環境に対応できるように,部分的に物体が隠れている場合や,光によって色が変化した場合にも対応できるような物体検知モデルを構築しました.また,物体の検知状況に応じて複数の接近動作を切り替えることで物体への接近効率を高めています.
②アーム機構:投下可能なCanSatの制限内で運搬物の把持性能を上げるために,折り畳み式+構造の異なる左右のアームがついています.左アームはスポンジの反発力で把持力の強化をし,右アームはバネによって物体表面にアームをフィットさせています.
また,運搬というミッションを掲げる上で,運搬を完遂することは前提条件ではありますが,何らかの外的要因によってCanSatが把持中の物体がアームから離れて運搬物をロストしてしまうことが考えられます.そこで,運搬中に運搬物のロスト判定をすることでロスト検知をし,ロスト判定時には再度物資探索をすることで確実な物資運搬を目指しました.
・ロスト検知:運搬中は運搬物がカメラに常に映るため,CanSatは物体検知をし続けることで運搬物を把持しているかどうかを判定しています.カメラから運搬物が消えた場合にはロスト検知とし,再度物体検知からの運搬をし直します.
> チーム『Salamander』
2021年度のACTS(ARLISS2021代替大会)では,「実数値GAに基づくモータの動作不全に対して頑健な進化的自律走行CanSat」というミッションに取り組みました.ミッションはCanSatに走行性能上の問題が発生するような故障が生じた状態,を想定した下から始まります.例えば,着地衝撃によってモータ動作が停止あるいは不能になったり.タイヤやワイヤーフレームが湾曲した状態になり,設計上で想定していた走行姿勢が保てなくなり制御走行が不完全(命令に対する出力制御が一致していないなど)になるなどの状態を想定します.このような場合の現在の一つの解決方法としては,パーツの修理・取り替えであると思いますが,これは人の手の介入が困難な惑星の探索環境下では容易に取れる方法ではありません.それに対して,他の解決方法としては.“PID制御”によって制御走行を故障状態に合わせた最適化をすることにあります。確かにこの方法の効力はありますが,万能ではなく下記のような問題点があります.
特に3つ目の問題は非常に重要であり,上記の『タイヤやワイヤーフレームが湾曲』といった「発生する可能性は予期できても,度合いを予期することはできない故障」においては,既定パラメータのPID制御では対処できない可能性があります.また,この時p,i,d値の再設定などしPID制御を故障状態に合わせて再設定する手段も考えられますが,1・2つ目の理由から現地での調整は困難があります.
そこで,我々が着目したのは“進化計算による最適化”,その内,“近似解探索において優れた性能が報告されている進化的アルゴリズムの1つである遺伝的アルゴリズム(GA)”でした.と言っても”PID制御による最適化”を”進化計算による最適化”に置き換えるという話ではありません.“進化計算による最適化”によって”PID制御による最適化”が効果的に発揮できる範疇まで制御の軸を調整しようということです.具体的には,PID制御の基準線(出力の中央)となる直進走行が可能となる最適な姿勢・出力をGAによって探索し,得た最適値を設定して,PID制御走行を再開すると言うものとなっております.なお,本ミッションでは”度合いが予測できない故障”への対処を目標とはしておりますが,今回は簡単のために,4輪駆動のCanSatにおける片前輪のモータの空転故障を度合いが予測できない故障と見立ててこれに対処するものとしております.
このミッションでは主に以下の内容が要求されます.
片前輪のモータ故障の想定下においては例年の1軸(縦軸)サーボスタビライザ+2(前)輪駆動のローバでは制御が不可能になってしまうため,”スタビライザの横軸駆動の拡張”と”後輪駆動”を追加することによって初めて故障対処の可能性を得られるようになります.合わせて,後輪駆動による草の絡みへの対処・サーボへの出力分岐パーツの制作・重量バランスの調整などハード・回路班の工夫が詰まっている機構となりました.
そもそも,故障状態を把握し最適化を実施するためには「故障検知」の存在が必要です.今回はモータエンコーダを用いた故障検知を搭載し,定期的に実行.対処の必要がある故障と判断された場合に後述の”最適化サブシーケンス”が実行されます.具体的な故障検知のアルゴリズムとしては「片前輪のモータ出力をしている状態で左/右輪のモータエンコーダの値が更新されない場合,左/右輪のタイヤの空転・固定やモータの故障が発生していると判定」するというものです.
上記で述べた”進化計算(GA)による最適化”のことです.GAによって片前輪が故障した状態において,CanSatが直進を可能とする横軸サーボの角度とモータ出力最適値を求め設定し直すことでPID制御の中央である直進走行制御に近い時の直進性を確保し,左右方向への制御が可能になるように調整します.
最適化処理1回目の初期個体は下記で記述するシミュレーションであらかじめ生成した最適値の群を,2回目以降はそれまでの最適化処理で適応度が最小であった順に設定個体数分集め群を,代入し,設定したインターバルで母集団の中から順に個体を切り替えながら適応値を算出します.適応値は,インターバル開始から終了までの機体が回転した角度(低い方が良い)とモータエンコーダから算出した進行した距離(低い方が良い)から算出します.
実機を用いた最適化は膨大な時間と電力が必要となる問題があるため,シミュレーション上の複数地形下でそれぞれ最適化した個体をまとめて初期個体として扱いました.これによって,ミッション下での最適化に要する計算時間の大幅な削減が実現可能です.シミュレーション環境はUnityで実装されており,CanSatはCADデータをそのまま利用しました.初期個体数を30に設定し,1000世代で算出した個体群のうち,適応度が最も高い4個体を初期個体群として実機に搭載しております.