日記的「駄目」プログラミング Yet Another Hacking Life

最近のお勉強いろいろ

11.13.2010 · Posted in Matcha, 日記

Matchaは行列ライブラリとグラフライブラリで遊んでるところ。参考書読みつつ、既存のライブラリのインターフェースも参考にしようと思う。IPCまわりは棚上げ。まじめに設計しないといけない。 マイコン熱が盛り上がっててAVRの環境を整備中。小規模なものはAVR、大掛かりなものはARM Cortex-M3をメインに使っていこうかと思う。 ドキュメンテーションツールSphinxの勉強も始めた。Doxygenと勝手が違うので慣れるまで大変そう。とりあえずUbuntu 10.10に入ってるバージョンが古い...

Harris Corner Detectのヘッセ行列の固有値の符号の話というかSIFTの話

10.23.2010 · Posted in ビジョン, 日記

SIFTでキーポイント候補からエッジ上に存在する候補を取り除く際にHarris Corner Detectと同等の手法でエッジ判定を行っているそうな。と、いう話を『第6回「コンピュータビジョン最先端ガイド」勉強会』に行って聞いてきた。 追記(2010/10/26):追加の考察および思い違ってたことがあったので「続Harris Corner Detectのヘッセ行列の固有値の符号の話というかSIFTの話」という続きを書いてみた。

Matcha進捗

10.04.2010 · Posted in 日記

忙しかったり、リフレッシュを優先してたりしてなかなか進んでいません。壁にぶつかっているところもあります。 IPCのフォーマットはMessagePackを全面的に採用しようと思います。Pack-Unpackのクラス設計で滞り中。ユーザ定義の構造体を簡便にPack-Unpackするかが課題っぽい。もっとC++の勉強が必要。あひるの鳴き方の問題。 IPCの伝送路はあまり決まってない。非同期ブロードキャストはRAMディスク上のファイル経由でいいとして、同期通信とプライベートな非同期通信はSocketにな...

引っ越しました

10.04.2010 · Posted in 日記

先月9月の17日に引っ越しました。横浜くらしです。頑張っていい部屋を探したので快適に過ごせています。気軽に筑波にいけないのは難点ですが。

引っ越します

09.12.2010 · Posted in 日記

去年の6月から千葉の実家から横浜へ通勤しています。さすがにそろそろ体力の限界なので横浜に引っ越します。引っ越しは9月17日。ちゃんと生活できるかなぁ。かしこ。

Matcha合宿、秩父でだらだらしている話

08.12.2010 · Posted in C++, Matcha, 日記

現在、秩父市の夢庵でこの日記を書いている。3泊4日でホテルに泊まり、一人勉強するという一人合宿である。今日は3日目。 勉強と言ってもやれたことはC++ Coding Standardsを読み直しただけだが。適当な場所がなくてほとんどドライブになってしまった。まあ休養も兼ねてるからいいんだけどさ。 Matchaの数学ライブラリに手をつけ始めていて、行列クラスの近代的なデザインに悩んでいた。上記の本を一通り読んで妥協すべきところと、実装できるところの落としどころが見えたのが収穫。 いわゆるC++の定...

7月と8月前半とかiMacを買った話とか

08.12.2010 · Posted in 日記

仕事が非常に忙しくプライベートのプログラミングができない状態だった。横浜に居を移すべく不動産屋に通ったりもしている。あとは清水の舞台から飛び降りて27inch Core i7のiMacを購入したりもした。 iMacのメモリは12GBに増設した。Windows 7をBootcampで導入し、Civirization 4がサクサク動くのに感動したり、VMWare fusionでLinuxの仮想マシンがサクサク動くのに感動したりと一通り楽しんだ。LinuxもBootcampで入れたかったがブートローダ...

Matcha進捗

07.04.2010 · Posted in 日記

自分の中で画像処理がいま熱いので画像処理ライブラリをどうにかしようかと思ったが、画像処理には行列演算が必須なので数学ライブラリを考える。 行列クラスで異なる数値型を格納するのをどうしようかというところ。テンプレートだと実装が見えちゃうし、型指定だとチェックコードがだるいし。なんかスマートな手がないかな。 type_infoから型に変換できると面白いんだが。 ゴリゴリ書けば書けてしまうところに時間をかけられるのが長期プレイのいいところ。

Matchaの進捗と言語の話

06.30.2010 · Posted in C++, Matcha, プログラミング, ロボット

相変わらず週末だけのコーディング。先週末は本格的に体調を崩してキーバリュークラスのコピーコンストラクタを書いただけだった。 最近悩んでるのが言語とコンパイラ。現在はC++・GCC 4.4で開発している。 で、C++0xを使いたい。Matchaが形になるのは今年の秋か冬だし、そのころにはC++0xの仕様も確定してるだろう(?)。GCC 4.6ならかなりの仕様が実装されるだろうし。長期プレイで作っていくなら未来に普及する現在の最新を取り入れたいところではある。 フリーなコンパイラでいうとGCCとLL...

ROSの話・Matchaの話

06.25.2010 · Posted in Matcha, プログラミング

Willow GarageがROSというロボット開発用ミドルウェア(ROSではメタOSと呼んでいる)を去年から公開していて最近になって話題になりはじめている。俺も最近知って、ドキュメントを流し読みしたりしている。 RTMがコンポーネントのデータ仕様を規定しなかったのに対し、ROSでは規程しているのがアーキテクチャの面での大きな違い。さらに「ロボット作るならこのデータいるよね」っていうロボットのコンフィグなどについてもファイル仕様(XML)を決めたりしている。大きいのはそうやって規定したデータ仕様...

MatchaのIPCのフォーマットはMessagePack(多分)

06.25.2010 · Posted in Matcha, プログラミング, ロボット

ロードマップではIPCはまだ先なんだけど、実装方法はちまちま調べてる。 RAMディスク上のファイルで共有ロック・排他ロック・inotify・epollを活用してブリテンボードを作るというのもその一環。 で、そのブリテンボードにどんなフォーマットのデータを載せるかという話。RTMの場合、(ブリテンボードではなくデータポートという呼び名だが)データフォーマットに規定がないっぽい(流し読みしかしてないが)。データポートの設計者がバイトフォーマットを(多くはC/C++の構造体として)定義する。ROSの場...

MatchaのGUIはGTK+

06.21.2010 · Posted in Linux, Matcha, プログラミング

移動ロボットのプログラムをしていると動作中のセンサデータをモニタしたいというシチュエーションは多い。で、GUI。 Matchaはフレームワークなのでアプリケーションのモデルを縛ることになる。一方で低レベルの部分でIPCの実装を提供する。やろうと思えばMatchaアプリケーションのモデルを離れて自前でイベントループを回すことができる(ようになる予定)。 ここでGUIにからんで二つの選択肢がある。ひとつはMatchaフレームワークでGUIを提供する方法。もうひとつは既存のGUIフレームワークからMa...

Linuxでファイルをepoll?その2

06.21.2010 · Posted in Linux, Matcha, プログラミング

epollって時点でLinux限定だよな。 ってのはともかく方法が分かりました。inotifyを使用すればファイルへの変更などのファイルシステム上のイベントをselect系で監視することができます。当然read()でもできます。Linuxにどっぷりですが、どのOSでもファイルの監視くらいはできるだろうから採用してもいいでしょう。 inotifyはかなり便利でディレクトリを監視すればディレクトリ以下で起きるファイルの生成など多くのイベントを監視することができます。ちょろりと活用方法を企み中です。 ...

Linuxでファイルをepoll()?

06.19.2010 · Posted in Linux, Matcha, プログラミング

そろそろMatchaのIPC実装の目処をつけようかと、実験コードを書き始める。 Matchaの基本コンセプトとしてユーザスペースでのポーリングを極力抑えるというものがある。で、デバイス関係はデスクリプタをまとめてepoll()で待つという実装をしている。 IPCにはメッセージパッシングやブリテンボードなどいくつかのモデルがあるが、ブリテンボードについてはRAMディスク上のファイルで実装しようかと思ってた。epoll()のトリガでflock()でRCUなら楽勝だろうと。 で、実験コードを書いたが動...

Matchaの進捗

06.13.2010 · Posted in C++, Matcha, プログラミング, ロボット

相変わらず週末に数時間という状況が続いている。そのうえ最近は週末にイベントが立て込んでてコーディングが進まない。 イベントクラスに乗せるデータはキーバリューベースで実装することにしたのは前に書いたっけ?とりあえずキーバリューのクラスを実装して、タイマイベントポートのイベントをキーバリューベースで取得するサンプルソースが書けるようになった。キーバリューのディープコピーが実装されていないところがバグとして残っている。スレッディングとスレッド間のイベント送受信まで実装するのがマイルストーンになるかな。...

Matchaを作る理由

06.06.2010 · Posted in Matcha, プログラミング, ロボット

徒然と書く。 趣味です。と、言ってしまえばそれまでなんだけど、センサドリブンな自律ロボットのフレームワークに必要な仕様を見極めたいという動機もある。それはつまり何かというと、センサドリブンな自律ロボットのソフトウェアの理想型を追求するという問題でもある。アプリケーションごとに問題は異なるし、異なる問題に対して最適な設計をするのがエンジニアリングなのかも知れないが、それでも何かしら問題に共通する設計の本質というものがあると思う。 もうひとつ実際的な面では2011年度のつくばチャレンジに参加するにあ...

Matchaのイベントデータ構造

05.28.2010 · Posted in Matcha, プログラミング

Matchaアプリケーションはイベントドリブンな動作モデルが基本です。複数のイベントポート(イベントポートという名称は暫定)からのイベントを共通のハンドラで補足します。そのためイベントクラスは抽象クラスで表現されます。 シングルプロセスで完結しているアプリケーションモデルであれば、またデバイス等の拡張の要求が少ないライブラリであれば特殊イベントクラスを実装、dynamic_castでデータの参照でもよかったでしょう。しかしMatchaは分散プロセスを念頭においており、イベントはプロセス間で透過的...

SheevaPlugを買いました

05.28.2010 · Posted in ロボット

eBayで注文。届いたのは5月の25日くらいだったかな。 とりあえずUSBシリアルからログインしてIPアドレスを設定してSSHで入れるようにしました。結構発熱があるのがきになるところ。GPIOを使いたい気分ですが、どうも面倒くさそう。とりあえず最新カーネルをSDカードから起動できるようにするのを目指します。SDカードを調達しなきゃなー。8GBくらい欲しいな。eSATAがついてないのは地味に痛かった。1500円くらい増せばついたんだからつけておけばよかった。