October 02, 2009

2009 日光 赤薙山 三角点 (女峰山の近辺)

先日、日光の女峰山に登山に行こうとしたのですが、あいにくの天気で登頂は断念しました。紅葉がはじまっていたので、晴天であればとてもいい景色が見れたはずなところ残念です。天気予報では天気がいいと言っていたのですが…。コースは霧降高原から市内への周遊を予定していたところを、霧降高原へのピストンに切り替えました。

ところで前回の北岳同様、自作GPSロガーを持っていっていたので、ごく一部の方に好評らしい(笑)測量データを公開します。女峰山の手前にある赤薙山の三等三角点での測量です。

Nyohou_Akanagi_090927.jpg
測量風景

ubxフォーマットの計測データakanagi2009.ubx、およびRINEX形式のデータ(Observation: akanagi2009.obs.txt, akanagi2009.nav.txt)を公開します。三角点の上は空が一部見えるものの、木がかなり茂っていたので、あまりいい条件での計測ではないと思います。およそ15分間、4HzでL1の搬送波、ドップラー等を取得しています。

09:03 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/723

October 08, 2009

地球シミュレータ

ちょっと前にスーパーコンピュータの『地球シミュレータ』を見てきました。海洋研究開発機構(JAMSTEC)にある、主に地球温暖化などの気候変動をシミュレーションするための凄いコンピュータです。せっかくなので見学に行ったときの写真を張ってみます。

earth_sim_ES2.jpg
ごついです。

earth_sim_ES2_model.jpg
こちらは模型、ちょっとかわいい。

見学の際、色々とお話を聞かせていただいたのですが、その時の話をもとに考えると今回上陸コースを辿っている台風18号の予測も地球シミュレータでされていたんじゃないかと思います。というのも海底に穴を掘って地質調査を行う『ちきゅう』という探査船があるのですが、その船は移動速度が遅いので、台風から逃れるためには気象庁発表の予報を待っていることができず、独自に台風の進路予報をされているとのことでした。

09:51 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/724

October 17, 2009

Ruby::PTYで外部コマンドの起動終了の制御

Rubyでちょっとした処理プログラムを作ったときの話です。プログラムの構造として、Ruby以外の言語で書かれた実行バイナリが既に複数あり、それを起動したり、終了したりしながら制御をするというものでした。いわゆるプロセス制御なのですが、僕が思い違いをしていたこともあり、ちょっと苦労したのでその時の話をまとめておこうと思います。僕がいきついた答えを先に書いてしまうとRuby::PTYでした。

今回の目的に使えるのでは、とまず一番に思ったのが、Rubyで外部のコマンドを起動する最も簡単な方法である、組み込みコマンドのsystem`(str)`execなどです。これらは外部コマンドの実行結果を得ることができるのですが、外部コマンドの終了まで制御が帰ってこない、execに至っては外部コマンドの起動が成功してしまうと起動したRubyスクリプトに制御が戻ってこないというありさまです。

そこでこれらの組み込みコマンドとRuby並行プログラミング機能である、スレッドやプロセスを使って何とかできないかと思いました。組み込みコマンドをRubyのスレッドやプロセスで包んで、それごと終了してしまえば任意のタイミングで外部コマンドを巻き添えに終了してくれるのではないかという目論見です。
しかしうまくいきません。スレッドは外部コマンドを起動した時点で止まってしまい、一方のプロセスは確かに任意のタイミングで終了できるのですが、外部コマンドを巻き添えにはしてくれませんでした。

仕方がないので、色々と調べた結果、擬似端末PTYライブラリに行き着きました。これを使って外部プロセスを起動すると、そのpid (Process ID)を得ることができるので、Process::kill(:KILL, pid)とすれば外部プロセスを任意のタイミングで終了することができました。

以下、途中の過程がうまくいかなかった原因を調べてみた結果です。

Rubyのスレッドで外部コマンド起動時に止まってしまったのは、どうやら実行環境がWindowsだったのが関係しているようです。詳しくは『WindowsのRubyでThread内でプロセス作成すると止まっちゃう』あたりが参考になります。

Rubyのプロセスで外部コマンドを巻き込んで終了してくれないのは、外部コマンドが孫プロセスとして起動されるために、子プロセスが終了したところで、孫プロセスは生き続けているようです。結局のところ外部コマンドのpidがわからないことには埒が明かないということのようです。

また、よくよく調べてみると今回の目的を達せそうな組み込みコマンドspawnというのがあるのですが、残念ながらこれはRuby 1.9からの機能のようで僕の環境では使えませんでした。

18:13 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/725

October 26, 2009

とあるモノに組み込むセンサのデバック環境

以前、とあるモノに組み込む細長いセンサ基板の話を書きましたが、中身を少しずつ作ってデバックしています。ところがこのセンサ基板、組み込む先の事情で、デバック用に線を引き出すコネクタを生やすことができません。そこで以下の写真のような接続でデバックをしています。

bow_sensor_with_XC-1.jpg
4本ケーブルが刺さっている

この写真のとおり、スルホール(メッキ処理された穴)にピンを差し込んで、デバッカと接続をしています。このピンはちょっと特赦なもので色々な変わった部品を作っているMAC8の『コンスルー(型番:XC-1)』というピン付ケーブルを使っています。使い勝手はなかなか良好で、設計の段階でスルホールの穴径さえ間違わなければ、抜き差しにそれなりの力を必要とし抜けにくくなっています。また多少大きめのスルホールで設計してしまって保持力が小さい場合は、半田でスルホール径を小さくしてしまうのがいいかもしれません(僕はそうしました)。

23:09 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (4) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/726