February 01, 2008MacOSX(10.5) launchdMac miniでサーバをしようと内部を分解したりしていましたが、最近は様々なサーバ系ソフトのインストールに追われています。世の中便利なパッケージがあるようですが、やはりトラブルの際には色々とわかっていたほうがよいと思うので、『漢は黙ってソースからインストール』(笑)を選択しています。現在のところ、プロキシ(squid-cache)とデータベース(PostgreSQL)のインストールが完了しました。その過程で、MacOSXの起動時の挙動がかなり変更されていてサービスを自動起動するのに戸惑ったので、そのことを記事にしたいと思います。 長くなりそうなので、メインページから来られた方は続きをどうぞ。 February 06, 2008XBeeでワイヤレス電力計昨年は、とあるプロジェクトでワイヤレス電力計なるものを作っていました。コンセントにさすだけで、家電製品の消費電力モニタリングを気軽にできるというコンセプトです。そろそろこのプロジェクトは完全に終了となるわけですが、せっかくなので紹介しておこうと思います。 主要な部品は、ZigBeeのモジュール(Maxstream XBee)、電力用IC(Analog Devices ADE7753)、マイコン(Silicon Laboratories C8051F410)、MicroSDです。ケースやCT(Current Transducer、電流測定用のコイル)等は、東急ハンズなどで3000円くらいで買える簡易電力測定器のエコワットという製品を分解して使っています。AC100Vは危ない(←笑えない事件がありました)ので、ケースはとても重要でした。写真左の基板はエコワットに元々入っていた基板で、NE555を使って簡易的に電力の測定をしているようでした。 この電力計は複数台を同時に使用することができます。身近な家電製品にこの電力計を設置したところ、ある日の計測結果は下のグラフのようになりました。 グラフを見る限りではちゃんと計測できているようです。冷蔵庫が間欠動作をしていたりなど、計測をするまでは気が付かなかったことが多数あり非常に楽しめました。この電力計を使うことで省エネへの注意喚起もできるに違いない、ということでプロジェクトの方は大成功でした。 ※その後、この電力計の設計資料を公開しました。 February 11, 2008『GPSのための実用プログラミング』
[Aero & Astro]
[Computer]
最近このサイトへアクセスしてくださる方の傾向を観ると、GPS関係のキーワードで検索エンジンから来られる方が多いようで、特に自作GPSロガーは大人気となっています。そのような流れを受けて、今後もできるだけGPS関連の情報は充実させていきたいと考えています。その長期計画の一環として、GPS参考書『GPSのための実用プログラミング』の紹介、並びに掲載されているC言語コードをC++化したことについて、この記事では触れたいと思います。 僕はGPSの受信機をソフトウェアで構成することに元々興味があったので、以前は『Open source GPS C/A信号の抽出』の記事にもあるとおり、GPSのL1電波(1575.42MHz)から意味のある情報、例えば擬似距離(pseudo range)や搬送波位相(carrier phase)を抽出する、といった信号処理側から攻めていました。ところがこの攻め方はあまりメジャーのようではなく、その意味のある情報から更に計算を行って、現在位置といった測位を行うほうに興味がある方が多いようです。そのような方にお勧めしたい本として、電子航法研究所の坂井先生が書かれた『GPSのための実用プログラミング』という本があります。出版元は東京電機大学出版局です。 この本は上記測位の点に要点を絞って解説された本で、C言語のコードと共に測位計算の手順が紹介されているので非常にわかりやすい本です。GPSの計測データの保存フォーマットとして一般的なRINEXファイルについても触れられているので、たとえGPS受信機を持っていなくてもIGS等のインターネット上に公開されているRINEXファイルを元に測位計算を体験してみることができます。 掲載されているC言語のコード(某所で公開されていますが、本の購入者のみ利用可能ということなのでリンクは控えさせていただきます)は非常に役に立ちましたが、僕自身の理解を深めるにためにも掲載コードの一部(第2章~第4章)を、色々と構造化して僕の好きなC++風に書き換えてみました。せっかくなのでコードを公開しようと思いますが、著作権の問題もあるかと思いますので、現在問い合わせ中です(肩透かしでごめんなさい→その後公開しました、記事末尾参照ください)。 ちなみに本を読み進めるにあたって、いくつか疑問点があり坂井先生に質問したところ、以下のような正誤が第1版ではあることがわかりました。
またさらに以下の疑問点があったので、問い合わせております(→その後、いずれの項目も指摘のとおりという返答をいただきました)。
いずれの問題点も、GPSの仕様書『GLOBAL POSITIONING SYSTEM STANDARD POSITIONING SERVICE SIGNAL SPECIFICATION』(PDF)と付け合せた上での結論です。 ※その後、プログラムを公開を坂井先生にご快諾していただきました。080205_gpsフォルダからダウンロードできます。このプログラムの使用にあたっても、元のCプログラム同様、以下の条件でお願い致します、とのことです。
内容は4章までではなく5章までとしました。実行はVC2005 Express Editionとg++-3.4.4で確認しました。一部別ディレクトリ(commonとnavigation)のヘッダが必要になると思いますが、実行環境に応じて調整を行ってください。 ※(2008/6/27 追記)富士通 近藤様よりプログラムについてご指摘を戴きました。衛星位置の計算の際に、昇降点の経度を求めるのですが、その補正項について解釈を誤っていたようです。この昇降点は『電波が到達した時刻のECEF座標系における値』でなければならないのですが、補正の際には送信時刻ベース(伝播時間を差し引いた時間)の補正であるエフェメリスからの補正、並びに受信時刻ベース(伝播時間を差し引かない時間)の補正である地球自転の2つがあり、それを混同していたようです。これに基づいてプログラムの修正を行いました。修正前の状態は __MISUNDERSTANDING_ABOUT_OMEGA0_CORRECTION__ をdefineすることで再現できるようにしてあります。『理解するためのGPS 測位計算プログラム入門』の質問コーナーにも同等の内容が触れられており、そちらも参考にしました。 February 17, 2008ビットマップ画像をベクトル化するVector Magic
[Computer]
長めの文章を書いていると、本からスキャンしたフローチャートのような図を載せたくなることがよくあります。しかしスキャナで取り込んだ画像というのは所詮ビットマップなので、拡大するとそのクオリティがいまいちです。特にA1やA0といった特大サイズのポスターに使おうものなら、近くで見てくださる方を追い払いたくなるぐらい、細かいところでグチャグチャになっているのが気になってしまうのは僕の悲しい性分です。 そういうわけで今まで本から図を抜粋する際は、スキャナで取り込んだあと、それを下絵にしてイラストレータでeps化してきました。この作業はイラストレータを習熟するのにはとてもよい、言い方を変えればとても時間がかかるので、あまりお薦めはできません。 そこで最近使い出したのが、Vector Magicというサイトです。このサイトにbmpやjpgをアップロードすると、なんと無償で(注:2008/2/17現在の話。その後、有料化されたようですorz)ベクトル変換された結果をepsやsvg形式で受け取ることができます。このサイトのロゴの下絵(fenrir_logo.jpg)をベクトル化するとfenrir_logo.epsのようになりました。パラメータを調整する項目がいくつかありますが、とても丁寧な誘導がついているのでわかりやすいです。 今後はこれでイラストレータ作業から解放されそうです。 February 28, 2008gnuplotで飛行機
[Computer]
最近訳あってgnuplotでグラフを大量生産しています。その中でちょっとした力作ができたので、紹介したいと思います。下のグラフをご覧ください。 飛行機を書いてみました。 背景となっている飛行機の作成方法は単純です。イラストレータを起動、適当な下絵を用意して、できるだけ単純になるよう直線パスでトレースします。そして頂点の座標を読み取って、その座標をgnuplotのplotコマンドでプロットすると、はいできあがり。このようにグラフに背景が挿入されていると、計測データ等が直感的に理解しやすくなります。一度作ってしまえば再利用も可能なので、非常にお薦めです。 飛行機の座標データをさらしておくと、右半分のデータで |
かれんだ~
スポンサード リンク
|