Science

2014.04.23

INVADERが私たちに見せる”宇宙の夢” vol.03 ─ INVADERと地上局、そして新しいリアリティ

Text by tamura

INVADERに搭載されているMORIKAWAを使って何ができるのか、そして多摩美地上局(ARTSAT TamabiGS)との衛星間通信はどのように行われるのだろうか? INVADERから、ARTSAT APIを通してどのようなデータが取得できるのだろうか? そして、私たちに何を見せてくれるのだろうか。(大内 孝子)vol.01はこちら、Vol.02はこちら

INVADERの機能

衛星には3つコンピュータが入っている。全体を統轄するメインコンピュータ、専用の電源管理用のコンピュータ、実は衛星で難しいのは電源管理なのだ。衛星自身が1つの閉鎖系(完全に独立した環境で外界とエネルギーのやり取りができない)となるため、太陽電池から発電し、バッテリーに蓄積する、それを使って中の機器を動かすといった電源管理が必要になる。そのため専用の電源管理用のコンピュータを積んでいる。

そして、ユーザープログラムを実行できるミッションコンピュータ「MORIKAWA」だ。MORIKAWAはArduino Mega 2560互換ボードで、極限環境用ミッションOBCモジュールという位置づけだ。カメラやデジトーカといった機能を搭載するほか、INVADERの各種センサーのデータの取得、地上から送信するメッセージの受信が可能。また、アプリケーションレベルでバーチャルマシンが搭載されており、地上からバイトコードを送ると仮想マシン上で、指定のユーザープログラムを実行することもできる。10個ほどのユーザープログラムが転送済みで、モード切り替えで動かすという形になっている。たとえば、基本的な動作確認プログラム「Hello, space!」、それに地上から送ったテキストを話す、データを送ると音楽を流す、簡単な会話ができるようなbotであったり……。それがDIYの世界と宇宙をつないでいくこと、Arduinoを宇宙で動かすということが1つのミッションになっているのだと久保田さんは言う。自分の書いたコードが宇宙で動く、コンピュータアートにおいてプログラムは自分の分身であり、分身であるプログラムが自分の代わりに宇宙にいってくれるというイメージだ。

これは、衛星と地上の通信帯域が非常に細いという制約から生まれたともいえる。地上からユーザープログラムを送信し、宇宙で実行する。しかし、Arduinoのコードをそのまま送ると、送るだけで1週間かかってしまう。1日2〜3回のパスはそれぞれ10分間弱、その10分間をフルに使ったとしても1日10KBくらいしか通信ができない。そういう中で地上からユーザープログラムを実行するにはどうしたらいいかということで、学生の一人から「じゃあ仮想マシンを作りましょう」という提案が生まれた。「いわばアンチビッグデータなんですね。超スモールデータ。いま、みんなが目指していることとは逆のことをしているんです。俳句みたいなもの」(久保田さん)。

MISSION_board_HW_layoutFM
MORIKAWA(FM)Hardware layout & Pin Map(ハードウェア設計:中澤賢人、ソフトウェア設計:堀口淳史、橋本 論)

MorikawaFM
MORIKAWA(FM)

もちろん、Arduinoを使うためにはJAXAやNASAの安全審査を通す必要がある。審査を通すために実験をしたり、計算をしたり、書類を用意しなければならないが、産業連携センターの協力もあり、3回ある安全審査は無事に通った。なお、Arduinoではなく互換のボードにした理由は、Arduinoにプラスしていろいろな機能を持たせようとしたということと、大きさの問題だという(10cm角に収まらなければならないので)。

地上局の機能

地球周回軌道を回るINVADERとは、INVADERが地上局の可視範囲の上空を通過する「パス」と呼ばれるタイミングで交信する。地上局は多摩美八王子キャンパスに設置され、屋上に建てられたアンテナが自動でINVADERをとらえる。

地上局のシステムは、基本的にMac OS Xで構築されている(バックアップにWindows PCを併用)。衛星へのコマンドやデータの送信、衛星からのデータ受信、およびそのデータの解析、サーバーおよびARTSAT APIを介したデータの配信などの機能を提供する。

TamabiGS_Diagram-1024x731
地上局ダイアグラム

CIMG2188
屋上のアンテナがINVADERを自動コントロールでとらえ、中央画面上の地図の円の中に入ったら、可視範囲の上空に来たということになる。

ARTSAT APIでは、次のデータが配信予定となっている(追記:4/18から、INVADERのテレメトリデータの暫定公開が開始された)。

・衛星の位置(緯度、経度、高度)
・電池電圧、電池温度
・太陽電池各面の電流
・太陽電池各面と衛星内部の温度
・衛星の姿勢(ジャイロ)データ
・衛星の磁場(磁力計)データ

ARTSAT API

リクエストは、HTTPプロトコルのGETメソッド、パラメータはURLエンコードして送信。レスポンスの形式は、JSON、JSONP、CSV、TSVの4種類。なデータは自由に利用できる(ただし非商用の目的でのみ)。

ARTSAT API から時刻、緯度、経度、高度を取得する Processing のサンプルコード

/*
** ARTSAT API Sample Program
**
** Original Copyright (C) 2014 KUBOTA Akihiro.
** All rights reserved.
**
** Version 1.0
** Website http://artsat.jp/
** E-mail info@artsat.jp
**
** This source code is for Processing2+.
**
** ARTSAT_API_JSON_Sample.pde
**
** ------------------------------------------------------------------------
**
** GNU GENERAL PUBLIC LICENSE (GPLv3)
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License,
** or (at your option) any later version.
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU General Public License for more details.
** You should have received a copy of the GNU General Public License
** along with this program. If not, see .
**
** このプログラムはフリーソフトウェアです。あなたはこれをフリーソフトウェア財団によって発行された
** GNU 一般公衆利用許諾書(バージョン 3 か、それ以降のバージョンのうちどれか)が定める条件の下で
** 再頒布または改変することができます。このプログラムは有用であることを願って頒布されますが、
** *全くの無保証* です。商業可能性の保証や特定目的への適合性は、言外に示されたものも含め全く存在しません。
** 詳しくは GNU 一般公衆利用許諾書をご覧ください。
** あなたはこのプログラムと共に GNU 一般公衆利用許諾書のコピーを一部受け取っているはずです。
** もし受け取っていなければ をご覧ください。
*/

/*
** Get Time, Lat, Lon, Alt Data from ARTSAT API (JSON)
*/

JSONObject json, sensors;
JSONArray results;

long time;
float lat, lon, alt;

void setup() {
noLoop();
}

void draw() {
json = loadJSONObject("http://api.artsat.jp/invader/sensor_data.json?sensor=lat,lon,alt");

results = json.getJSONArray("results");
sensors = results.getJSONObject(0).getJSONObject("sensors");
time = results.getJSONObject(0).getInt("time");

lat = sensors.getFloat("lat");
lon = sensors.getFloat("lon");
alt = sensors.getFloat("alt");

String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss z").format(new java.util.Date (time*1000L));

println(date + ", " + lat + ", " + lon + ", " + alt);
}

INVADERと地上局の衛星間通信

INVADERが可視範囲に入り交信が可能となると、地上局では、衛星が出しているCWビーコンを受信することができる。CWビーコンは衛星が常時出している信号で、いわば生存信号だ。このCWビーコンの受信によって、地上局側では「衛星が無事に動いている」と判断できる。そして、衛星のステータス情報や履歴情報の取得、ユーザープログラムの切り替えやMORIKAWAの動作などのコマンドを送ることで、インタラクティブにINVADERの動作を切り替えることができる。

前述のように、衛星と地上局の衛星間通信はアマチュア無線を使って行われる。データはモールス信号で送受信される。このデータのフォーマットも公開する必要があるのだという。このようにARTSAT APIでのデータの配信もそうなのだが、データが(フォーマットも含め)公開され、アマチュア無線という公開された通信上で展開されるということは、この「ARTSAT project」をより広い、オープンなものにしているといえる。

つまり、地上局以外にも、世界のどこからでもINVADERにアクセスすることができるのだ。受信機器があれば、アマチュア無線の免許の有無にかかわらず、いますぐにでもINVADERからのデータを受信することができる。実際、さまざまなアマチュア無線家の人たちからのデータ受信協力があるという。場所が異なれば衛星の高度など受信状態も変わるので、INVADERからのデータをより多く取得でき、INVADERの状態をもっとよく知ることができる。

久保田さんに、MORIKAWAへのデータ転送などアマチュア無線であることがデメリットなのではないかという質問をぶつけたところ、「むしろアマチュア無線は使いたかった」という。電波帯でいえば商業帯なども使う可能性はあるが、INVADERは「みんなの衛星」というのがコンセプトの1つ。だから、使わざるを得ないというより、むしろアマチュア無線を使いたかったのだと。ちなみに、MORIKAWAが積んでいるユーザープログラムもすべてGithubに上げてオープンソースで公開されている。INVADERは「みんなの衛星」なのだ。

https://github.com/ARTSAT

「僕らがいつも考えているのは、アマチュアリズムというものをもう一度再定義して実践したいということ。それは決してプロになるための練習じゃないと。プロがやらないことを攻める。つまり、専門家になるための練習としてこのプロジェクトがあるわけじゃなくて(もちろんそういう意味を否定はしていないが)、むしろ逆に専門家になるとできないことを積極的にやっている。芸術プロジェクトというのは、国の予算のように、大規模なプロジェクトになればなるほどやりにくくなると思います。そういう意味で、むしろアマチュアスピリットからこそ生まれるイノベーションを探求したい」(久保田さん)

オープンであること、アマチュアであることが、このARTSAT projectにおいても重要なキーワードで、それはMakerムーブメントと共通しているのだ。

今後、ARTSAT APIから配信され始めているデータを使っていろいろな人がさまざまな作品を作っていくだろう。メディアアーティストの平川紀道さんをリーダーとする多摩美の作品制作チームは、すでに6月の東京都現代美術館での展示に向け、作品作りを始めた。「10cmの四角いキューブが毎秒8キロで90分で地球を回るというリアリティってなんだろうと。小さいものが音もなく、ものすごく速く動いている。なかなか想像できないけれど、その一部だけでも知覚、体感できるものを作りたい。宇宙に対する、新しいリアリティを表現したい、という話をしています」(久保田さん)

ARTSAT projectはすでに2号機「ARTSAT2 : DESPATCH」の開発を進めている。これは地球脱出軌道によって深宇宙に放出される、人類初の芸術作品となる。

ARTSAT2 : DESPATCH

morikawa01
morikawa02
morikawa03

Morikawaが4月8日に初めて撮影した、INVADERの地球およびアンテナ自画撮り写真。JA1GDE(花清)さん、JA0CAW(佐藤)さん、JA6PL(井地)さん、JI1IZR(眞田)さんら、多くのアマチュア無線家の方々に協力していただいたデータから復元中。