Main Page

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/hyakuren-soft/www/diary/includes/dateLink.php on line 19

Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/hyakuren-soft/www/diary/includes/dateLink.php on line 20


2008年 9月 1日 (月)  
Luabind の使い方が、正直、よくわからない。


2008年 9月 2日 (火)  
GUI プログラミングは、作成に時間がかかる。
GUI 以外の仕様が明確な場合で、3時間。それ以外だと、1日仕事になったりする。

GUI アプリの例


アプリケーション自体は、単機能なのにね。


2008年 9月 3日 (水)  
作り直している URG ライブラリにおいて、タイムスタンプのあたりを実装する。
何度目の作り直しかは、考えたら負けだ。

ま、だんだんとメソッドもすっきりしているので、良しとする。


2008年 9月 4日 (木)  
明日は、研究発表の会に参加するはずだが、まだスライドを作成していない。
なので、夜になって悲しい気分になりながら作る。

つくばチャレンジへの取り組みを発表する予定だが、あまりその作業も進んでいない。
仕方なくアイディアノートの写真を Power Point に張り付けたようなスライドを作る。

というか、本当に写真を Power Point に張り付けました。
むぅ。


2008年 9月 5日 (金)  
朝に出かけて、昼少し前に研究会の会場に到着。
「岡山、いこいの村」という場所らしい。山の上にあって、風景がよくていい感じ。

んで、発表を聞いていたが、割に興味深いテーマで面白かった。
あと、晩ご飯が大変豪勢だった。

食後は、少しプログラミングをしてから、参加者の懇談に参加。
いい感じ。


2008年 9月 6日 ()  
研究会、2日目。
お昼を食べた後に、敷地内で代われている山羊、エミューを見に行く。

エミューの方は、以外に大きくて、びびった。
間近で見ると、禽獣の顔は怖いです。

で、山羊の方は、糞がぽろぽろしていて、チョコボールのようだと思った。
もちろん、思っただけ。何もしていない。

そんな散歩をしている際、じゃんけんのグーで勝った人が

「ぐーにゅーうーぷーろっとー」

といいつつ階段を上っていくのを見て、時代の流れを感じた。



研究会の撤収準備中に、参加者の1人に、

「8月7日に鶏肉を食べた人ですよね!」

と聞かれて、4秒くらい面食らった。
どうやら、この日記を見た上での発言らしい。

今調べたら、確かに 8/7 の日記で鶏肉について記している。
とりあえず、

「あの日記の中の人です」

と、改めて自己紹介しておいた。
いや、この自己紹介もどうかと思うが、まぁ、よかろ。

とまれ、おもしろい人だ。


2008年 9月 7日 ()  
つくばチャレンジの試走会。

コース全景とコースの地面タイルを撮影した以外は、ネット喫茶でプログラミング。
次回の試走会には、ちゃんと走行したい。



夜、つくばを歩いていて迷子になる。
10年くらい、つくばに住んでいたはずなんだが...。


2008年 9月 8日 (月)  
東京ビッグサイトにて、展示会の準備。
準備日の会場は、冷房が入ってなくて、暑いと思った。

あと、新幹線とかも、ぶっちゃけつらい。


2008年 9月 9日 (火)  
やっと帰宅。
先日のつくばチャレンジ試走会で撮った写真から、タイルが判定できるかを検証してみる。

以下、OpenCV のハフ変換のサンプルを適用した例。
(サンプルプログラムは、http://opencv.jp/ を利用。このサイト、便利)




まぁ、いい感じかと。

あとは、これがロボットに搭載したカメラで実現できるかの確認と、
取得した直線から、どうタイルの向きを検出、信頼するかどうか、というあたり。



引き続き、URG の点群から線分検出をするあたり。

ハフ変換でもよいが、それだと取得した点の順番が無視されるので、順番に点と点の角度を
評価して、角度が近ければ同じ直線を構成する点として認識するようにした。
(点と線の位置は、比較のために意図的にずらしてある)



うーん、線分検出を行う前に、点データ位置の平滑化をすべきかも。
あと、線分を直線にするあたりも、作るべきかと。

まぁ、そのあたりは明日。


2008年 9月 10日 (水)  
手持ちの Logicool のカメラから画像を取得するための作業を行う。

まずは、linux-uvc を取得してインストールするあたり。
svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc

が、カメラが動作しないので、断念。
Windows だと動作するので、modprobe すべきドライバが足りないらしい。
明日、再チャレンジ。


2008年 9月 11日 (木)  
Lua とゲームプログラミングの連携方法がよくわからないので、
英語は苦手だが、洋書を買うことにする。

「Game Development with Lua」
「Programming Lua」

届いたら、とりあえずソースを読んで、ゆっくりと内容を読む予定。
英語が得意でないせいで、プログラミングについての理解が遅れるのは嫌なので、
がんばって読もうと思う。

まぁ、C/C++ との連携を考えずに、単にスクリプト処理するだけなら
Lua よりも Ruby が楽なので、あまり困ってないが。


2008年 9月 12日 (金)  
ヨドバシカメラにて、つくばチャレンジ用の Web カメラを買ってくる。
購入前のカメラを持ったまま書籍コーナーに行こうとして、警報が鳴ったりしたが、
まぁ、無事購入。

買ったのは、Logicool 社製の "Qcam Pro for Notebooks" という製品。
UVC (USB Video Class) 対応なのを確認してから購入。



帰宅してから、動作確認すると、あっさりと動作。
いい感じじゃないか!


2008年 9月 13日 ()  
買ってきた Web カメラが OpenCV でも動作するのを確認。
で、カメラから指定ファイルで画像キャプチャをするための関数を OpenCV をラップして作る。

しかし、OpenCV は便利に作られている。

「ラップの必要がないのでは?」

と思う程度。まぁ、ラップしたが。

#ifndef CAMERA_CTRL_H
#define CAMERA_CTRL_H

/*!
  \file
  \brief カメラ制御

  \author Satofumi KAMIMURA

  $Id$

  http://opencv.jp 参照
*/

#include <memory>


namespace qrk
{
  class CameraCtrl {
    CameraCtrl(const CameraCtrl& rhs);
    CameraCtrl& operator = (const CameraCtrl& rhs);

    struct pImpl;
    std::auto_ptr<pImpl> pimpl;

  public:
    CameraCtrl(void);
    ~CameraCtrl(void);

    bool connect(void);
    void disconnect(void);

    void setCaptureSize(int width, int height);
    bool capture(const char* fileName = "capture.jpg");
  };
};

#endif /* !CAMERA_CTRL_H */


いい感じ。

つくばチャレンジでは、取得画像から地面のタイルの向き検出をしたいので、
あとは、そのあたりの仕組みを考えて実装するあたり。

画像の端から端までの直線が、垂直に交わっていたら、タイルと見なすとう風に実装するつもり。
まぁ、その実装はまた今度。

がんばろう。



午後、ダイソーに買い物に行き「ハンマーポケット」という商品を買ってくる。


(画像は、ここから拝借 http://www.ne.jp/asahi/wk/wk/iroiro/iroiro035.htm)

そして、ビニールテープで室内用の木刀に取り付け、Wii を装着したものがこれ。


我ながら、色々と間違っている逸品です。


基本的に、ビニールテープでぐるぐる巻き。

これから、素振りカウンターを作る予定なんだが、それに先だって、
Wii リモコン自体に記載してある注意書きをここに抜粋する。
・必ずストラップをつけて、しっかり握って下さい。
・手から離したり、投げたりしないでください。ストラップが切れる原因となります。
・必要以上に振り回さないで下さい。軽く振るだけで反応します。
うーん。まぁ、よく気を付けて遊べってことかな?
とりあえず、素振りをしたときの加速度を、WiiState で表示させるあたりからかと。

がんばろう。


2008年 9月 14日 ()  
Wii リモコンの加速度データを細かく取得するために、ライブラリを改めて調整中。
Wii からの加速度は、実測値で、だいたい 10〜13 [msec] 間隔で取得できる。

まぁ、木刀を振り降ろす速度は 0.2 秒くらいなので、それでも少し足りない。


2008年 9月 15日 (月)  
木刀に取り付けた Wii リモコンの加速度を元に、
素振りの状態を取得するソフトウェアの作成中。

が、計算する角度が合わない...。
物理の計算式が、私を苛みます。

とりあえず、問題を共同開発者に相談するメールを出してから、休憩。



その後、加速度データの処理方法などについて、メールで数回やりとり。
適切な考察付きで、大変助かった。

まぁ、問題が大変なのが確認できた。
ゆっくりと片付けましょう。

あと、"Wii Motion Plus" っていうのが、いずれ販売されそうなので、
それを待つのもありかもしれない。


2008年 9月 16日 (火)  
そろそろ、つくばチャレンジ用に、走行制御モジュールの開発を始めた。
がんばろう。


2008年 9月 17日 (水)  
「最小二乗法」と入力して変換したつもりが、

「最小次女湯法」

になった。
...今、すごくダメな気分でいっぱいです。


2008年 9月 18日 (木)  
「扉の外」といライトノベルがやばい。
明日も出勤日なのに、ついつい夜遅くまで読み耽ってしまった。


2008年 9月 19日 (金)  
やはり、朝一番に行うタスクは、すらすらと進む。
いい感じだ。



そして、定時直前に行うタスクは、だれ気味だ。
とりあえず、眠い。

私には、7時間の全力疾走は、無理っぽい。


2008年 9月 20日 ()  
トム・デマルコの「デッドライン」を読み終える。
ソフトウェア開発プロジェクトについての話なんだが、物語形式になっていて、面白い。

あと、一緒に買った「熊とワルツを」(トム・デマルコ、ティモシー・リスター著)っていう本も
残っている。そっちを読むのも楽しみだ。
(こっちは、物語形式でなく、普通に書かれているが。)



午後からは、惰眠をむさぼったり、TCP/IP まわりのコーディングをしたりして過ごす。
運動が室内での素振りだけ、というのを除けば、今日もいい感じだった。


2008年 9月 21日 ()  
作り直すロボット用ライブラリでは、制御パラメータなんかを Lua スクリプトで
変更できるようにする予定。

で、以下がそのサンプル。(ヘッダの宣言なんかは省略)

struct person_t {
  int id;
  int age;
};


int main(int argc, char *argv[])
{
  lua_State *lua = lua_open();
  luabind::open(lua);

  // 使用する構造体の情報を Lua に知らせるあたり
  // 自動生成すべき
  luabind::module(lua) [
    luabind::class_<person_t>("person_t")
      .def_readwrite("id", &person_t::id)
      .def_readwrite("age", &person_t::age)
  ];

  // 実際は、以下が1つのテキストファイルになっているはず
  // ユーザが変更したいパラメータのみ追記すればよい
  luaL_dostring(lua,
                "function initialize_person(person)\n"
                "person.id = 100\n"
                "person.age = 3\n"
                "end\n");

  // 参照渡しで、パラメータ情報をテキスト(Lua)ファイルの内容で更新する
  // これは、ライブラリ側のお仕事
  person_t person;
  luabind::call_function<void>(lua, "initialize_person", boost::ref(person));

  std::cout << "id: " << person.id << std::endl
            << "age: " << person.age << std::endl;

  lua_close(lua);

  return 0;
}

これが動くあたり、Lua は、とても妙な感じがする。
というか、素晴らしい。

実際のロボットライブラリで使う際には、person_t 構造体の情報を
lua に渡しているあたりを、自動で生成するようにすべきかと。

まぁ、ゆっくりと作る予定。


2008年 9月 22日 (月)  
早朝から「ぶり大根」を作る。

ちゃんと下ごしらえをしたおかげで、大根はおいしく仕上がった。
ただ、ぶりの方は、味が不足気味。

あら熱を取りながら、味が染み込むのを待つべきだったかも。


2008年 9月 23日 (火)  
今日は、やる気がしないので、だらだら。

昼に起きて、「熊とワルツを」を読んだり、Luabind のドキュメントを読んだりしていた。
あぁ、そろそろ走行制御モジュールの作成をしないとなぁ...。

午後は、Wii リモコンを用いた木刀素振りシステム用のツール作成などを行った。
だらだらしつつも、プログラミングだけはしてる気がする。



あと、超久しぶりに、日記にスパムでないコメントが来ていた。
昨日の日記を受けてのことだと思われる。
> こんどは「9月22日にぶり大根を食べた人ですね」って
> 言われるんですね。わかります。
言われちゃうらしい。
それはそれで、面白そうだ。

思えば、2002/12/29 に日記を書き始めて、5年以上が経過。
ちなみに、その日は「肉じゃが」について書いていた。

変わってない...、のか?


2008年 9月 25日 (木)  
ぐっすり寝て起きた日が、寒すぎるくらいの空気だと、とても気持ちがよい。
なんというか、集中できる気がする。

がんばろう。


タイミングチャートを、ちゃちゃっと書く。
などと、素でつぶやいた。


2008年 9月 26日 (金)  
帰宅後、食事を作りつつ、だらだら。
やはり、働いた後しばらくは、集中できる気がしない。

私に残業は無理♪


2008年 9月 27日 ()  
Wii リモコンの加速度情報を記録、再生するアプリが、とりあえず動作した。
「Wii Blade」と命名。

Wii リモコンを木刀に取り付けたときの、素振り状態を
PC 内で再生させるための評価アプリ。



角度計算を Lua スクリプトで行わせており、コンパイルなしの調整が可能。
というか、Lua スクリプトの作りこみは、これから。

しかし、本気で木刀を振ると、Wii リモコンの加速度測定限界の 5[G] を越えてしまう。
むずかしいね。

Wii Motion Plus というデバイスの発売を待つ方が利口な気がしてきた。



で、昼過ぎに、つくばへの移動を開始。
途中に秋葉原に寄って、SH7045F の評価ボードとピンセットを購入。




夕刻、つくばに到着。
宿泊させてもらう会社のオフィスまで、車に載せてもらって移動。

載せてもらった車が、カメラ等がいたるところ装着されており、
世間一般でいう改造車とは違った意味の改造車になっていた。
がんばってるなぁ...、と思った。


んで、オフィスに到着後、UHF アンテナを取り付ける、ということで
アンテナを組み立て、身の軽い私が屋根に登ることになった。


組み立てたアンテナを構える私。攻撃力は、ひのきの棒以上はあるに違いない。


ノリノリで屋根の上に居る私。
屋根の角がお尻に食い込んで痛かったが、がんばった。

まぁ、そんなこんなで、楽しいひと時を過ごした。


2008年 9月 28日 ()  
起床し、研究室のバーベキューに参加すべく出発。
バーベキューは、割と楽しかった。

ただ、肉質にはもう少しこだわっても良いのでは? と思った。
量より質にこだわるべきかと。



夕刻、再び泊めてもらう会社のオフィスに。

そのオフィスには、ライブカメラが取り付けられており、部屋の状況が分かる。
で、以下が、カメラ越しに私を見た人と、その部屋に居た人とのチャット。



ちがいます!

素でこのような会話をするあたり、なんというか頭おかしい。
でも、これはこれで面白いので、むしろあり。


夜は、流れている後藤邑子の動画を見つつ、URG センサのプログラミングを
したりしていた。

動画が流れていると、プログラミングしないといけない気がするのは、
「パブロフの犬」状態なのかもしれない。

むつかしいね。


2008年 9月 29日 (月)  
新幹線の中で、「ミミズクと夜の王」を読みつつ、昼すぎに帰宅。
いい感じだった。



つくばチャレンジの計画を書き出しつつ、ふと思う。

正直、つくばチャレンジが重荷になっていたが「楽しもう」と思い直した。
私はどちらかといえばマゾだが、どうせなら、楽しい方がよい。

そんな感じで、今日はゆっくり寝た。


2008年 9月 30日 (火)  
昨日のうちに受け取った、amazon からの書籍を読む。
「ライトついてますか?」という本と、「(なんとか)の階段」というライトノベル。

「ライトついてますか?」の方は、エンジニアに対して、
問題の確認と解決するための考え方を述べたような本。すらすら読めて、面白かった。

割と、いい感じだった。


本人へのコメント送信



Main Page