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

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ボードはどれもブートローダーを使わず、オンボードデバッガで直接書き込みを行っている。  ボードを観察してみると、プログラマ・USBCDCとしてATSAMD21が搭載されている(中央の四角いQFNパッケージ)MCU的にはnEDBG

【サボテン】太陽電池の結線

 久しぶりにサボテン計画。 忙しかったり投薬治療直前でだるかったりして、かなり放置していた。 さぼてんも不機嫌そうだ。 せっかくなので、園芸用の水受けに移す。  関節痛で寝込んでる間に、エイプリルフール終わってましたね^^・・・。  太陽電池の展開機構を想像したが、まずは太陽電池の結線を済ませよう。  配線を綺麗にまとめたくていろいろ探していたら、千石電商でぴったりなものを見つけた。 LEDリング基板 というらしい http://www.led-paradise.com/product/629?  本来はチップLEDをリング状にまとめる代物。 イレギュラーな使い道だ。   今度は小径のを買って、GX200のリングライトに仕立て上げよう。   嬉しいことにフレーム径にジャストフィット。 配線を綺麗にまとめられた。   太陽電池の接続部。逆流防止用にショットキーダイオードを入れている。 かなりスッキリ。 蛍光灯下 500ルクスでの実験。 EDLCは10Fを使用。  ちゃんと充電が行われている。 といっても、とてもとてもゆっくりとだけれど・・・。

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となると、複数の周波数のために調整されているセラミックパッチアンテナが有利だと思う。 セラミックパッチア

ATmega4809(megaAVR0)を試す

megaAVR 0という新しいAVRシリーズを試してみた。  小さいパッケージなのに、UARTが4本もあるのが気になったのがきっかけ。 登場すると噂の Arduino Uno Wifi rev2  にも採用されるらしい。  簡単にデータシートを眺めてみると、アーキテクチャはXmegaシリーズを簡素化し、動作電圧範囲を広げたもののようだ。  CPUの命令セットはAVRxtと新しくなっているが、Xmegaで拡張された一部の命令(DESやUSBで使われる命令)が削除されていて、基本的に今までのATmegaとほぼ同じだ。  コンパイラからは、先に登場した新しいtinyAVR0, tinyAVR1シリーズと共にAVR8Xと呼ばれて区別されている。  CPU周りを見てみると、割り込みレベルなど、今までのクラシックなATmegaで足りないなと思っていたものがかなり強化されていた。 ArduinoAPIを再実装するとしたら便利そうなペリフェラルもだいたい揃っている。 データシート P6  DMAは無いけれど、周辺機能にイベント駆動用の割り込みネットワークが張り巡らされているのがわかる。  できるだけCPUを介在させない使い方がいろいろ提案されているので、アプリケーションノートやマニュアルを読み込むことになる。 ピックアップした特徴 ・データメモリ空間(64kB)に統合されたFlashROMとEEPROM ・RAM 6kB ROM 最大48kB (メモリ空間制限のため) ・デバッグ専用の端子 UPDIを搭載 ・優先度付きの割り込み(NMIと2レベル) ・ピン単位の割り込み(かなり複雑になった) ・リセットコントローラ(ソフトウェアリセット用レジスタが実装され、リセット原因が何だったかもリセット後に読み出せるようになった) ・豊富な16ビットタイマ(4809では5基) ・16ビット リアルタイムカウンタ(RTC) ・豊富な非同期シリアル/同期シリアル(USART 4ch、SPI 1ch,TWI 1ch) ・内蔵クロックは最高20MHz(PLL)と32kHzの2種類。外部クロックは発振器と時計用水晶のみ ・ADCは10bit 16ch ・内蔵VREF電圧が5種類と多い(0.55V,1.1V,1.5V.2.5V.4.3V