スキップしてメイン コンテンツに移動

RFIDと惑星探査

空想宇宙機シリーズ。 とはいえ今回は少し現実路線から・・・



<遠い道のり>
1輪探査ローバー "Spinner" を作って1年以上。手元においておくといろいろ思考が進んで楽しい。
"Rover" という語源からして、放浪する探査機械というものを夢想して製作してみたが、今のところ、この機械が運用できるのは何もないグラウンドや広場に限られる。

現実を見ると、XBeeは打ち上げ角の関係上、地上間では数十メートルしか交信できないし、バッテリは数時間しか持たない。 車輪に貼りつけた太陽電池は全電力を賄うには(数日の充電期間が許されないなら)足りないし、なによりもセンサ不足なのでちょっとした地形の変化に対応できない。そもそも探査してない。
これが現状。そもそも大きさとコストを限定した時点で、いろいろと物理的にできることが限られている。動画ではいいところばかり編集できるので、つい自分も騙してしまいがちだけれど。

色々あって実機の開発は中断状態だが、こうした単純なロボットを活かすための枠組みを幾つか考える中で、すこし面白そうな手法を思いついた。

<ヘンゼルとグレーテル>

何の変哲もない砂漠に降り立ち、GPSなどの航法システムも存在しないとき、周りを探検しろと言われたらどうするか。

人間なら(生命の危険を感じないとして)、まず降り立つ場所を基準として、道しるべを求めるだろう。周りに目立つものがなければ、何らかの目印を置くことにする。(天文学をかじっていれば、日時計と星座により方角と現在地もわかるがここでは省略)   

この道しるべだが、人間でなくロボットが置くとすると、ロボット自身が迷いなく認識できるものが望ましい。 視覚では対象の環境が単純すぎたり、逆に特徴が多すぎたりすると使えないので、あくまでサブシステム。

<一寸の虫にも五分の魂>

そのお手本となりそうなのが、蟻の行動。

行動生態学の領域や、知能ロボットの分野では、蟻の探索行動が研究、応用されている。その行動にはフェロモン、太陽の偏光、触覚などの知覚が関与しているらしい。 フェロモンだけと思っていたら、巣周辺の地表を荒らして初期化しても、蟻は他の様々な感覚を併用して巣を探索して帰還できるらしく、読めば読むほど巧妙さに感心するほかない。 子供の頃に巣を破壊する以外の学術的な探究心(特に、システムを探求する方面)を育んでおきたかったと思う。

<数値平原>

話が脱線したが、まずはローバーにフェロモンを実装する方向で考えてみる。 とはいっても分子を追わせるのはまだ難しいし、真空では揮発してしまうので、アクティブな電波灯台のようなものを考える。ローバにも運搬できて、バラまけるような単純で量産可能なもの・・・ 
最近流行りのRFIDタグなら、これらの条件を満たしそうだ。 数cm~数十cmの範囲なら、RFIDリーダーの電磁誘導で単純なデータを返すものが多い。ローバーにリーダーを搭載して、タグを敷設しながら進む。タグにIDを割り振って記憶しておけば、それが道しるべとなるだろう。 

道しるべだけでなく、たとえば地表での探査範囲を限定するために、フィールドをRFIDで囲むというのもありだと思う。 むしろ現実の工場、路上、室内での研究例としては囲ったり、進路を指定したりするために使われているわけで・・・。
RFIDを利用した探査

SF的なインパクトを考慮すると、以下のようになる。
・地球から遠隔操作可能な規模の着陸機(ランダー)に、複数の超小型ローバー、大量のRFIDタグを艤装する。
・ランダーにはある程度の機能を(画像探査、サンプル分析器)をもたせ、ローバーは単純なセンサ群で済ませる。

ランダーは着陸前後にタグを地上に散布しておく。ローバーはそのフィールドを走りながら、まずタグのIDをマッピングするという形態である。

LIDERやカメラで周囲を数値化するのはランダーにまかせ、ローバー自身は周囲をIDタグの分布で数値化し、物理的な障害は単純な接触や圧力センサで対処する。 明らかに危ない箇所はランダーが着陸前にマッピングしているはずなので、ランダーの眼とローバーの協調でだいたいの罠は回避できるはずだ。 

着陸地点周囲のマッピングが完了すれば、ローバーへの指示も楽になる。

ローバーに搭載するリーダーには、指向性(遠方RFIDの探索)と現在地決定(車体下部での読取り)の2つがあると理想的かもしれない。 ここらへんの設定はRFIDによりけり。

地面自体にIDが割り振れると、他にも便利になることがある。 

現在検知しているタグの番号が変わらないのに、一定速度で行動中であれば、地面に対して進んでいないこと(障害物にあたったとか、穴にはまったとか)を検知できる。 これはタグ自己散布型のローバでも、一定速度で散布しているはずのタグの複数干渉を検知できれば可能になる。 何もない平地で足をとられると、その検知が難しいので、道しるべはシンプルな解決法の一つだろう。

あとは・・・
・タグの所在とサンプル採取の地点情報とを結びつけて、着陸機に搭載した分析器で地点ごとのサンプル分析に活用する。
・複数のローバーを自動運転させる。
・タグを補給しつつ、遠くまで旅をさせる。
・タグに機能を追加。太陽電池を付けて簡単なセンサロガーとし(温度、日照など)を記録させてローバーにデータを回収させる。

・・・といった展開が考えられる。小型ローバーのセンサとコストを無駄に増やすことなく、システムとして面白いことができそう。

もちろん、うまく広範囲にタグをばらまく方法などの課題がたくさんある。

RFIDを見失ってもランダーへの帰還は可能だろう。 遠距離なら電波のRSSIで、近場ならローバーからの画像をランダーで画像処理しながら進むことで。 複数のセンサを活かすにしても、電波が届く範囲なら外部の処理能力(ランダー)を使えばローバーは単純で済む。  
というわけで、着陸機からアリみたいにぞろぞろローバーがでてきて、周囲の探査とタグ敷設、サンプル採取を行う様子を想像してみるのであった・・・。

<おまけ:着陸機設定集>

小さめの月面着陸機。名前はアリの巣一号。(推進系が多分小さすぎるだろう疑惑)
Spinner Xを8台ほど運べる。

着陸前後にRFIDをばらまく散布機能付き。
着陸時は普通に降りてくる。底部の3脚で着陸後、ローバーの作業支援がしやすいように、横倒しにさせ、パネルを展開する。

作業形態。 なにかに似ている・・・
中からSpinnerがぞろぞろと出てくる形。 Spinnerは周囲を探検するほか、サンプル回収を行い、着陸機の分析器に運ぶ。


Popular posts

Arduino Nano Everyを試す

 秋月で売っていたAtmega8と、感光基板でエッチングしたArduino互換ボードを製作してみて、次に本家ボードも買って…  と気が付いたら10年が経過していた。  ハードウェア的な観点では、今は32bitMCUの低価格化、高性能化、低消費電力化が著しい。動作周波数も100MHz超えが当たり前で、30mA程度しか消費しない。  動作電圧範囲が広く、単純な8ビットMCUが不要になることはまだないだろうけど、クラシックなAVRマイコンは値上がりしており、価格競争力は無くなりつつある。 そしてコモディティ化により、公式ボードでは不可能な値付けの安価な互換ボードがたいていの需要を満たすようになってしまった。     Arduino Nano Every https://store.arduino.cc/usa/nano-every https://www.arduino.cc/en/Guide/NANOEvery  そんな中、Arduino本家がリリースした新しいNanoボードの一つ。  他のボード2種はATSAMD21(Cortex-M0+)と無線モジュールを搭載したArduino zero(生産終了済み)ベースのIoT向けボードだが、 Nano EveryはWifi Rev2と同じくAtmega4809を採用していて、安価で5V単電源な8ビットAVRボードだ。  Atmega4809はATmegaと名がついているが、アーキテクチャはXMEGAベースとなり、クラシックAVRとの間にレジスタレベルの互換性は無い。   https://blog.kemushicomputer.com/2018/08/megaavr0.html  もちろん、ArduinoとしてはArduinoAPIのみで記述されたスケッチやライブラリは普通に動作するし、Nano Every用のボードオプションとして、I/Oレジスタ操作についてはAPIでエミュレーションするコンパイルオプション(328Pモード)がある。 公式のMegaAVR0ボードはどれもブートローダーを使わず、オンボードデバッガで直接書き込みを行っている。  ボードを観察...

GPSアンテナをつくる

GPSアンテナを作ってみた。 1575MHzの波長は約19cmなので、半波長で9.5cmとなる。 GHz帯とはいえ、結構長いものだなぁ。 セラミック等の誘電体がなければ、平面アンテナで真面目に半波長アンテナを作ろうとすると手のひらサイズの面積が必要になってしまう。 普通のダイポールだと指向性があるので、交差させてクロスダイポールにする。 屋外地上局のアマチュア衛星用アンテナの設計をそのまま縮小したもの。 水平パターンはややいびつ 92.2mmの真鍮の針金(Φ=0.5mmくらい)を2本用意して、42.3mmで90°に曲げる。 長さの同じ素子同士を並べて配置する。 (全長が半波長より長い素子と短い素子が交差した状態) 片方をアンテナ信号線、もう片方をGNDにつなげば完成。 実際5分くらいでつくったけれど、果たしてどうだろうか。 今回は、道具箱に眠っていた表面実装タイプのMT3339系モジュールに取り付けた。 アンテナはもともと3x1.2mm程度のとても小さいチップアンテナで、 LNAが入っているけど感度が悪かったのでお蔵入りしていた代物。 最近の携帯機器はみなアンテナに厳しい。 さて・・・ クロスダイポール版モジュールをPCでモニタしたウインドウ(左)と、QZ-Rader画面 東側に建物遮蔽があるので、そちら側の衛星はSNが悪い。 とりあえず補足できた衛星数はシミュレーションされたものとほぼおなじだった。 アンテナの角度をいろいろ振って、逆さまにしてもロストすることはなかった。 セラミックのパッチアンテナレベルにはなったかな・・・。 簡単にできてそれなりに測位するけれど、携帯性は皆無になった。 あと、近接周波数の干渉を受けやすいかもしれない。 GPSアンテナのDIY例としては、QFHアンテナもある。 ラジオゾンデなどで使われている例がある。 いつもお世話になっているQFHアンテナ計算シートのサイト https://www.jcoppens.com/ant/qfh/fotos_gps.en.php ヘリカルアンテナは加工精度の難易度が上がるので、今回はクロスダイポールにした。 GNSSとなると、複数の周波数のために調整されているセラミックパッチアンテナが有利だと思う。 セラミックパッチア...

CANトランシーバーを使わずにCAN通信をする

 CANバスの物理層は差動通信で、RS485の様にマルチドロップ接続が可能。  自動車におけるノイズ環境でも通信が成立するように、トランシーバICには様々な対策が施されている。  一方で、基板にマイコンを複数載せて、例えばブロードキャストメッセージを含んだ通信をさせたいとなったとき、ハードウェアとしてデータリンク層にあたるコントローラが実装されていて、メッセージフィルタ等が可能なCANバスは魅力的だ。しかし、長くても1m未満の配線長で差動ドライバのバスを駆動するのは電力的なペナルティが大きい。 CANバスの構成  トランシーバーには5Vレベルと3.3Vレベルの製品があり、車載以外だと省電力化のために3.3Vバスを採用する例があるらしい。(電圧が低いほうがドミナント時の電流は下がるので)製品によってはフォールトトレラントのための様々な機能が付加されている。    トランシーバーをつかわず、UARTの様に単純に接続することもできる。過去にはこのようなアプリケーションノートがあった。 On-Board Communication via CAN without Transceiver https://www.mikrocontroller.net/attachment/28831/siemens_AP2921.pdf CANコントローラの入出力を1線式マルチドロップバスとしてつなぐことで、トランシーバーが無くても通信が可能になる。規格外の使い方ではあるけれど、大幅に単純、かつ省電力になる。 コントローラのみでの接続 R4 MinimaにはCANコントローラーが内蔵されているため、上記アプリケーションノートの様に接続してみた。ダイオード2個と数kΩのプルアップ抵抗だけでサンプルコードの通信ができた。 https://docs.arduino.cc/tutorials/uno-r4-minima/can  とりあえず1Mbpsでも通信できていたけれど、Lowレベルの電位が下がり切っていないので、OD出力のバッファをTXに挟むとよいかもしれない。  R4 Minimaのコントローラのみで通信させている様子(250kbps) https://github.com/sandeepmistry/arduino-CAN/blob/master/API.md ライブラリの実装は以下で確認...

UNO R4 Minimaの仕様を眺める

CANバス内蔵Classicボードたち。 しかし割高になってしまった… Uno R4 Minimaを入手したので遊びつつ、どのような実装になっているのか、仕様を眺めてみた。 UNOは現在のArduino製品の中ではClassic Familyというカテゴリに入っており、歴史的なフォームファクタを継承している。ルネサス製MCUの採用で話題だけれど、5V単電源動作可能なARMマイコンとしては高機能だ。 要点としては、初学者向けのClassicファミリにCortex-M4が降りてきて、内蔵RTC、DAC出力、CANバスといった機能にもAPIレベルで対応しているという点になる。  スペックだけ見ると、反射的に3.3Vで動いてほしいとかいろいろ要望が湧いてくるが、ターゲットはあくまで初心者なのを忘れないようにする。 (いい感じの互換ボードに期待) ボードとピンマップを眺める 公式サイトのボード紹介ページでは、回路図と基板図をAltium365ビューワーで見ることができるようになっていた。回路図で抵抗を選択すると詳細が表示されるし、基板図上の実装と連携して位置をハイライトできたりする。 Minimaの実際の基板には16MHzの水晶は空きパターンとなっている。内蔵オシレーターで動いているようだ。 Minima 回路図 https://docs.arduino.cc/resources/schematics/ABX00080-schematics.pdf Wifi R4回路図 https://docs.arduino.cc/resources/schematics/ABX00087-schematics.pdf MinimaとWifi R4ではソケットに引き出されたSPIバスのマッピングが異なっている。これに伴いCANで使うピンも位置が変わっている。APIが用意されてるのにピンマップ表で表記していないのはボード依存のためかもしれない。 CANを使いたければシールド設計で対処するしかなさそう。  他にも、Minimaのソケットの3.3V出力は、Minimaのデータシートに書いてある通りMCUの内部電圧を生成しているLDOの出力を引き出している。そこまでやるのかというくらい割り切っている。  内部レギュレータから引き出せる電流量はArduinoとしては表向き載っていないけれど、ルネサス...