僕ならばここにいる
〜GPS、携帯電話、そしてUNIX〜
法林 浩之
日本UNIXユーザ会
hourin@suplex.gr.jp
Powered by ... mgp2html.pl
(page 1)
私の近況
- 3月末でソニーを退職
- いわゆる充電期間中
- そろそろ再就職に向けて活動開始
(page 2)
僕ならばここにいる
- 自分の居場所を記録し、表示するシステム
- 充電期間突入に前後して作った
- 名前は稲垣潤一の歌から取った
- でもGoogleの検索では、このシステムが上位に…
- システムの構築と運用から得た知見を体験談的に紹介
- できるだけ自分の思考過程をたどる形で説明
- 体験談なので、体系的にまとまった話ではない
- 改善の余地多数あり → 皆さんから意見/提案を募集
(page 3)
動機
- 自分の居場所を示すことに興味があるらしい
- 「俺はここにいるぞここにいるぞ」
- Webで行き先表示盤とか作ったことがある
- 居場所を継続的に記録、表示したいと思った
- リアルタイムで記録
- 全国各地、どこにいても(屋内でも屋外でも)記録
- 自分のたどった経路が表示される
- 結果は誰でもWebで閲覧可能
(page 4)
自分の生活に合わせた要望
- 移動手段は徒歩/自転車/公共交通機関
- ノートPCのOSはUNIX
- 新しいデバイスの導入は最小限に
(page 5)
調べもの
- 「物体(自分)の位置を他人が見るシステム」について調べる
- 「自分の位置を自分だけが見るシステム」ではない
- カーナビ
- パソコンの地図ソフト
- 携帯電話やPHSを使った位置情報システム
(page 6)
位置情報配信システム
- 基本的なシステム構成
- 物体の現在位置を測定
- 位置情報をサーバに送信
- 閲覧者がサーバにアクセス
- 物体の位置が地図とともに表示される
- すでにいくつかのシステムが実在
- 車両の動きを監視するソフトに多い
- ココセコム
- IPCar
(page 7)
ココセコム
(page 8)
IPCar
(page 9)
位置情報配信システムに必要な道具
- 現在位置の測定: 今回はGPSを使用
- 位置情報をサーバに送信: ノートPC + 携帯電話もしくはPHS
- 位置情報を閲覧者に表示: Webサーバ
- 物体の位置を地図とともに表示: 地図データ(を提供するWebサイト)
(page 10)
GPS(Global Positioning System)
- 地球を周回する衛星(24個)から電波を受信して位置を特定
- 条件が良ければ誤差10m未満
- 時刻情報も精度が高いのでNTPサーバに使われる
- メーカー
- 受信機
- センサーのみのものは、データをPCに送って処理/表示
- 液晶画面がついているものは単体で使えるが、PCに接続も可
- データ転送
- シリアル4800bpsが多いが最近はUSB接続の機器もあり
- データフォーマットはNMEA0183が標準だがメーカー独自形式も多い
(page 11)
Webで閲覧できる地図データ
(page 12)
野望
- GPSで現在地を測定し、シリアルでノートPCに転送
- ノートPCをインターネット接続し、位置情報をサーバに送信
- サーバにて、位置情報から地図サイトのURLを作成
- 自分のホームページに、そのURLへのリンクを置く
- これを定期的かつ自動的に(たとえば5分おきに)実行しよう
(page 13)
カベに当たる(その1)
- 対策: 自動運転をやめて、拠点に着いたときだけデータ入力
- 経路表示はあきらめる
- データ入力時だけ電源を入れればいい
- 丸1日ぐらいならバッテリーも持つだろう
(page 14)
道具を用意(1)
- ノートPC: VAIO PCG-C2GPSを使用
- C1に似た機種
- 携帯型GPSが付いてくる(PCQ-HGR1)
- 反射型液晶画面
- シリアル端子がないので、シリアルPCカードを用意(RATOC REX-5056)
- GPS付きの機種である必要はない
- 携帯電話: ソニー C406S (au)
- IDO PacketOneカード(C081NDB) でPCと接続
- PHS: セイコー MC-P200 (DDI Pocket、PCカード型)
- PCカードはいずれもFreeBSDで使える
(page 15)
道具を用意(2)
- GPSは3種類使ってみた
- エンペックス GPS65 EZ(単体型)
- ソニー PCQ-HGR1(PC接続型)
- GARMIN eTrex(単体型)
- GPSに求める性能
- 比較検討
- GPS65 EZはバッテリーが持たない
- PCQ-HGR1は測定してくれない
- eTrexが圧倒的に高性能 → 常時使用
- eTrexは英語モデルを使用
- 日本語モデルは、データをPCでうまく扱えないらしい
(page 16)
道具を用意(3)
- サーバ: front.suplex.gr.jp (www.suplex.gr.jp)
- 自分のPCをハウジングサービスに入れている
- 必要なソフトを自由にインストールできる
- 地図サイト: とりあえずMapFanWebを使用
(page 17)
システム作り開始
- サーバへのデータ送信、サーバでの処理を先に実装
- サーバに送信するデータ
- 北緯/南緯、緯度、東経/西経、経度、コメント(場所など)、パスワード
- 時刻はサーバで取れるので入力しない
- 送信プロトコルはHTTPを使用
- サーバでの処理
- 受け取ったデータはPostgreSQLに蓄積
- ブラウザから閲覧リクエストが来たら、PostgreSQLからデータを取得して地図URLを生成、表示
- 処理プログラムはPHPで記述
(page 18)
データベース
- データフィールド
- UNIX時刻,南北(S/N),緯度,東西(E/W),経度,コメント(場所など)
- データの例
987654321,N,35.37.46.3,E,139.41.50.9,虎の穴
(page 19)
PostgreSQLで書くと…
- DB作成
create table koko (
unixtime int4,
nanboku text,
ido text,
touzai text,
keido text,
comment text
);
- データ入力
insert into koko values (
'987654322','N','35.37.46.3','E','139.41.50.9','home'
);
(page 20)
カベに当たる(その2)
- データ送信に手間がかかりすぎる
- GPS電源ON
- ノートPC電源ON(ハイバネーション)
- PCとGPSをシリアルカードで接続
- GPSで位置を測定
- 位置情報をPCに取り込む
- シリアルカードを外す
- PCに携帯電話/PHSカードを挿す
- インターネット接続
- データ送信
- ノートPC電源OFF(ハイバネーション)
- GPS電源OFF
- しかも移動中にやるのは難しい
(page 21)
対策: 携帯電話Webの利用
- C406SはEZWeb利用可能
- EZWeb用の入力フォームを用意
- GPSからPCにデータ転送せずに、携帯電話に手で入力して送信
- GPS電源ON
- 携帯電話電源ON
- GPSで位置を測定
- 携帯電話に入力して送信
- 携帯電話電源OFF
- GPS電源OFF
- GPSと携帯電話さえあれば入力可能
(page 22)
携帯電話のWebページ
- 私が持っているのはauの携帯電話
- サービス名: EZWeb
- プロトコル: WAP
- Webページ記述言語: HDML
- 参考までにi-modeの場合
- サービス名: i-mode
- プロトコル: ???(独自)
- Webページ記述言語: コンパクトHTML(独自)
- 携帯電話用に作ったもの
- WAP用入力フォーム(HDML)
- WAP用フォームから来たデータをPostgreSQLに蓄積するプログラム(PHP)
(page 23)
WAP用Webページ作成時の注意点
- HDMLはHTMLとタグが全然違う
- PC用ブラウザで見ることができない
- 普通はシミュレータでテストしてからサーバに載せる
- UNIX用シミュレータが見つからなかったので、いきなりサーバに載せてテスト
- WebサーバにWAP用設定が必要
- Apacheの場合は、.htaccessもしくはsrm.confに以下を追加
AddType text/x-hdml;charset=Shift_JIS hdml
- HDML独特の用語
- カード: ほぼ1画面に相当
- デッキ: カードの集合、1400byte以内という制約あり
(page 24)
WAP用入力フォーム
- 1画面につき1項目ずつ入力
- パスワード(文字列)
- コメント(文字列)
- 北緯/南緯(選択、デフォルトは北緯)
- 緯度(数字7けた、例: 3437463)
- 東経/西経(選択、デフォルトは東経)
- 経度(数字8けた、例: 13941509)
- 入力結果を表示し、確認してから送信
- 途中で「戻る」に相当するボタンを押すと、前の項目に戻って訂正可能
- 最初はコメントを後ろにしていたが、順番を変えた
(page 25)
テスト使用開始
- ひとまず順調に動作
- 野外では快調に入力できるようになったが…
(page 26)
カベに当たる(その3)
- 屋内ではGPSが使えない
- とにかく屋根の下では全く測定できない
- 屋外でも高いビルの下では苦しい
- つまり市街地では苦しい
- GPSが使えない状況でどうやって位置を測定し入力するか
- 対策
- ほとんどの場合、どの辺にいるかわかっている
- ノートPCをインターネット接続
- MapFanWebで現在地の地図を表示
- URLに含まれる緯度経度をWebフォームにcut&pasteして送信
- もう少し賢い方法を用意したい
(page 27)
入力したデータの修正/削除
- 入力ミスなどへの対策
- 管理用表示を別に用意
- ある1回の入力を選ぶと編集画面に移動
- 修正
- 緯度、経度、コメントは修正可
- パスワードを付けてsubmit
- 削除
- 自主的に設けた制約
- 時刻情報は変えられない
- ある時刻のデータを後で入力することはできない
- 「その場で入力しないと記録に残らない」という制約を自らに課した
(page 28)
本運用開始
- 一通り動くようになったので旅に出た
- 四国88ヶ所霊場めぐり
- 寺に到着するたびに入力
- ついでに奈良、高野山、鳥取(jus関西シンポ)にも
- 4/26〜5/23の約1ヶ月間にわたって旅行
- Networld+Interop 2001 Tokyo
- ShowNet構築メンバーとして参加
- 5/31-6/9、10日間幕張の旅ご招待
- ずっと幕張メッセと近隣ホテルの往復
- その後も継続運用中
(page 29)
意外な効果
- 能動的に入力するので、気に入った地点のデータがピンポイントで入る
- 忘れなければ、だが…
- その場所にいることを知られたくない場合は入力しない:-)
- 野原で道に迷ったときに使える
- 携帯電話で入力してから自分のホームページを見る
- 携帯電話の位置情報システムでは正確な位置が出ない
- なんか見ている人が多いらしい
- 知人に会うとよく言われる
- 親兄弟まで動向を激しくチェック
- 海外からもメールが…
- 何が面白いんだろう
(page 30)
気がついたこと
- au、DDI Pocketは思ったより使える範囲が広い
- 四国88ヶ寺中、圏外だったのは1ヶ所だけ
- おかげでたくさん使って金かかった
- 地図サイトはリンクポリシーがうるさい
- 一旦地図だけのページを表示してから、
アイコンを押して周辺地域も見られる地図に飛ぶ
ようにリンクを張らないといけない(MapFanWeb)
- フレーム内にマピオンのページを表示してはいけない(マピオン)
- もうちょっと自由に使わせて欲しい
- WAP用ページの日本語入力ではPOBoxが使えない
(page 31)
今後の展開
- 当初考えていた、連続運転による記録は当面(ずっと?)棚上げ
- 入力方法、表示方法を改善したい
- 関連技術動向
(page 32)
表示方法の改善
- 「一覧→地図」を「一覧→詳細→地図」に
- 次のデータ、前のデータへのリンクも用意
- 地図は別フレームで出力するかも
- 条件付けによる出力
- 特定の日(期間)のデータを出力
- コメントの文字列で検索
- 他の地図サイトの利用
- 蓄積されたデータを何かに使えないか
(page 33)
入力方法の改善
- 現在地の緯度・経度を割り出す手段を増やす
- 住所、郵便番号などから算出
- すでにいくつかシステムが存在
- 例: モーバイルインフォサーチ実験(NTTソフトウェア研究所)
http://www.kokono.net/
- 地図を見ながら微調整が必要なことが多い→手間減らない
- 他の機器での入力、閲覧
- PDA(Palmなど)、i-modeなど
- そのうち携帯電話とJavaで全部できるようになる?
- 入力できるデータの種類を増やす
(page 34)
関連技術動向
(page 35)
まとめ
- 「僕ならばここにいる」の実態を紹介
- できるだけ製作過程、思考過程に沿って紹介した
- 改善できそうな所はいっぱいあるので、皆さんからの意見/提案を歓迎
- システムのURL
- 今日の資料
(page 36)
参考文献
- UNIX MAGAZINE 1999年3月号「インターフェイスの街角」
- 「PHP4徹底攻略」ソフトバンクパブリッシング
- 「PostgreSQL完全攻略ガイド」技術評論社
- 「ケータイで見るWebページの作り方」アスキー
- 「パソコンカーナビを始めよう!」インプレス
(page 37)