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

Archive for the ‘Matcha’ Category

最近のお勉強いろいろ

11.13.2010 · Posted in Matcha, 日記

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

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

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

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

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は分散プロセスを念頭においており、イベントはプロセス間で透過的...

Redmineを導入した

05.23.2010 · Posted in Matcha, 日記

Matchaのチケット管理にRedmineを導入しました。はじめTracにしようかと思ったんだけど、なんだかRedmineの方が評判がよろしいので。 導入は「Redmineのプロジェクトページ」で概ね足りたけど、Apacheで動作させるのは「サクッとCentOS 5.4にRedmine + Passenger環境をインストール」を参考にしました。 CentOSのRubyをアップデートしたり、Railsを入れる方が慣れてなくて困ったけどなー。 私生活もチケットドリブンにしようかしら。Googleカ...