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

物語駆動開発


※脈略のない話です。

組立中の本物の人工衛星を見る機会に恵まれていたこともあり、時々、「陸にあるときの衛星ってなんて呼べばいいんだろう」というロクでもない思考を始めることがあった。 
人工衛星という単語自体は、まず天文学的な定義がある。惑星をまわる物体を衛星といい、中でも人が打ち上げたものが該当する。 速度的には第一宇宙速度に達したものとなる。(速度を得るのはロケットの仕事だけれど)

 冒頭のどうでもいい疑問については、宇宙機(SpaceCraft)という上位の言葉が用意されている。手のひらサイズのキューブサットから、大型衛星、惑星探査機まで含まれる。人工衛星の制作現場では、単に「衛星」と略されるため、はじめは混乱する。地上でいえば、携帯電話とその携帯基地局くらい規模の違うシステムが含まれている。

 衛星って一般的にどう理解されているのか。その思いはMAKE会場で展示に興味を持ってくれた人の衛星観を見聞きしてきた中でだんだん育っていった。 普段衛星技術そのものを考えたことのない人が衛星について抱くイメージを知るチャンスってなかなか無い。 大学衛星も時折ニュースにはなるが、それほど数は多くないので、まったく知らない人が多いだろう。
 軌道には決して投入されない模擬衛星実験や高層気球でも衛星と混同するような説明の文章をたまに見かける。(これは英語でも見かける)、広報媒体で採用される言葉には公報用語的な飛躍が見え隠れすることも多いので、さらに混乱を招いているかもしれない。

 話を交わした中で、特徴的な誤解には以下のようなものがあった。

・ロケットが打ちあがった姿でそのまま回っている
・地上から昇っていく
・静止衛星の一種

衛星の立場から見て、上の誤解の中でやや懸念したのが、「地上から昇っていく」という認識だった。
実際には第一宇宙速度を稼ぐロケットがあってはじめて、衛星は軌道を巡ることができる。
ウェブではしばしば高高度気球がバルーンサットと紹介され、そこに載せた搭載カメラのHD映像が大手ブログサイトなどでも取り上げられて結構有名になった。 メディアの書き方をみると、気球と衛星を混同している人は結構いるらしい。
ということで、低軌道衛星というものはどうもスルーされている気がする。(その事実は家族に説明を試みた場面ですでに直面済みであったけど)

人工衛星の活動は一言で言い表すのが難しい。

ISSから撮った地球の動画のバリエーションが増えており、軌道からの眺めが纏っていた神秘性は減りつつあるが、衛星自体は一度打ち上げたら回収もできず、衛星の視点を見る機会はほとんどない。限られたリソースの中で、衛星自身が高画質な画像や映像をたくさん撮って下ろすということも難しい。

 対してバルーンサットの場合は、まず高高度からの地球の映像や写真というわかりやすいアウトプットから話が始まるので、そこに技術的な理解はなくても良い。必要な技術もDIYの延長で、殆どの場合高性能な民生モバイル機器を寄せ集めて搭載したシンプルなものだ。しかも安価で、高ビットレート。 これは後で物理的にデータを回収すること前提だからできる割り切りでもある。

 アメリカみたいに広大な土地がある場所だと、少人数とわずかな投資で綺麗な写真という成果が得られるし、プロジェクトとしては個人でも始められるので、ブログやメディアの記事を見るととても楽しそうだ。
(日本でやる場合は土地も空も狭いために、許可が取れる場所がかなり限られるのがネック)

同じ(ような)成果でも、アプローチが違えば技術的難易度も違う。 でも、人は使われた技術よりもわかりやすい成果やストーリーを求めるものだ。 バルーンはまだ地球大気圏内での話だから、そこも連想を呼びやすい。自分の身体感覚でわかる範囲から想像しやすいからだ。

 衛星の運用方法、打ち上げ後の動作や降りてくるデータまで頭に入ってくると、電波を聞くだけで、その衛星が宇宙にいる様子(信号の強弱から姿勢と自転速度が、電波波形の歪みから電源の調子が)を思い浮かべることができるようになる。
心眼を磨き、軌道上の状態を人力拡張現実感で運用していくには、現場でそれなりの下積みが必要になる。こうして個人が獲得した感覚体験/経験を言葉に翻訳するのは難しい。
 自分の中でも、携わる中で、衛星という概念はどんどん変化している。 ビーコンを発する小さな機械から、電波の司令で結果を返す遠隔機械へ。これはキューブサットでの話だから、大きな衛星になってくるとまた違うのかもしれない。

*****************************

一般的なイメージと現実が違うのに、その差をお互いに見ていないということはよくある。「ロボット」も震災後のイメージはだいぶ変わった。高度なロボット技術という物語と現実のすれ違いがニュースで取り上げられていた時期があった。

衛星よりも、単語の包括範囲が広くて面倒なのがロボットという言葉だ。 人によって解釈が異なるが、文化の影響でたいていの人はヒューマノイド・ロボットを思い浮かべるらしい。
 しかし、実際には人型である必要は無いものが大半で、今は産業ロボットのUIとして実装される動きがあるほかは、研究、展示用途でしか見当たらない。  伊藤計劃氏の言うように、最初に実用化されるとしたらアメリカ軍が配備するだろう。

 工場のロボット生産ラインが正確で精密な作業を行えるのは、環境のほうをロボットに合わせて構築してあるという側面が隠れている。 たとえば、いきなり未知の瓦礫の中を単独行動するロボットというのは難しい。自然環境は、無視していい情報と、無視してはいけない情報が区別なく存在していて、極めて曖昧だ。
 センサの多重化、処理能力の向上などが続けばいいのかというと、処理能力さえ増やせばAIができる、というのと同じくらい怪しい。 実際にはロボットだろうと人だろうと、危険個所の除去や、情報支援、兵站によって環境のほうを改変し単純化していく過程が存在する。

 ソフトウェアと同じように、知的に見えるロボットも人間の組織の課題設定や課題解決が具現化したものだ。
 現実にハードウェアを持つがために、優れたロボット技術は八面六臂の活躍を期待されるものの、初めに設定されたルールの外では役に立つとは限らない。ロボットも設計したとおりに動くが、意図したようには動かない。

 人にかわって、人にできることの一部を効率良く繰り返すロボット。人にかわって、人の出来ないことをこなすロボット。 人と機械の間のインターフェースになろうとするロボット。

人間社会は例外だらけであり、例外は人の数ほど存在する。ありとあらゆる事態を想定することは不可能だし、ロボットの可塑性を増やせば増やすほど、安全率の面で設計すら不可能になってゆく。人がある程度歩み寄ることを前提とするか、あくまで人をコアとして、動作を補助する分野での開発例は多い。

*****************************

Spinnerの動画をとっていて感じたのが、編集では隠れてる背後でのロボットの制御の様子や、カット無しの動作の様子を見せずに、いい場面だけ公開することはそのロボットの性能を過大評価させるだけだなあということだった。ストーリーのある映像作品としては面白くなるかもしれないけれども、そのあたりがおもちゃの域を出ない理由なのかもしれない。

物語の発信者は理想を現実の言葉と技術に包んで語る。 ただ、その理想像を技術者が現実に落としこもうとしても、物語の目指す理想を実現する手段がしばしば存在しなかったり、解釈を誤ったりする。
 ロボットSFでは特に頭脳―制御システムが架空のブラックボックスとして導入されるし、宇宙SFではすでに宇宙進出した世界で物語が進行していたりする。ナノマシンという便利アイテムも使われるが、よくできた物語ほど、そうした前提を意識させることがない。

もともと物語は何かを語り継ぐ流れの中で生まるものだと思う。
満身創痍ながら帰還した探査機が運用者チームの活動とともに擬人化され、魂とストーリーを付加されたように。 

 既に開発された技術とそれにまつわる人間ドラマを語る時、物語化は便利なのだが、物語(構想)を現実に外挿するには、物語を選ぶセンスと使う手法の理解が必要になる。トップダウンとボトムアップの接点を運任せにするか、ある程度考えてから狙うか。 だんだんと話がヒット商品開発秘話みたいになってきた。

視野を身近に戻せば、生活に密着したデバイスに纏わせることができる「万能感」は、日常というもののなかですぐすり減ってしまう。  実際は、デバイスのおかげで日常が底上げされているのだけれども。 大企業は、常に自分たちが底上げした「日常」に追われながら、巨大な資本で明日の万能感を手探りしている。

 自動車はドライバーを補助する電子装置の塊だし、ヒトの個体は成長とともに電波による通信能力を獲得するのが当たり前になった。
この記事もどこかのサーバーに蓄えられているけど、その所在はまったく知らない。
 過去の人間からみた未来を今の人間は日々消費しているわけで、今の文学に登場する装置は100年前の人間から見れば全部SFだということを簡単に忘れてしまう。 日常の海で踊るうたかたの物語たち。

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