ホーム » 2010 » 11月 (ページ 3)

月別アーカイブ: 11月 2010

2010年11月
 123456
78910111213
14151617181920
21222324252627
282930  

検索・リンク

ARToolkit拡張現実感プログラミング入門…

卒研でARToolkitが使えないかと、試したりしているんだけど、 外部カメラの解像度指定方法しらべてたら、参考にしている 『ARToolkit拡張現実感プログラミング入門』の一番最初の部分が、 そのままWebに載っているじゃないの…

ほっほぉ、OpenGLの解説のいい本も紹介してある。 さっそく発注するあるね。

Mac OS Xでカメラ解像度指定

simpleTestあたりの実験で、USB外部カメラが使えるのはいいんだけど、 iSight なら丁度いいサイズ(max?)なんだけど、外部カメラは最大解像度で ムダに大きい動画を取得している。調べてみると、 main で arVideoOpen( vconf ) を呼び出す際の vconf がプログラム先頭で、 以下のように宣言されてるのね。

  //
// Camera configuration.
//
#ifdef _WIN32
char   *vconf = "Data\\WDM_camera_flipV.xml";
#else
- char   *vconf = "";  // デフォルトそのままだとダメ。
+ char   *vconf = "-width=640 -height=480";
#endif

使える設定は、プログラムの "ARToolKit/doc/video/index.html#VideoMacOSX" に説明が書いてある。

秋の遠足にてバーベキュー

3年生の工場見学旅行中に例年実施されている 秋の遠足にて、4EIでは「ふくい健康の森」にて バーベキューをしました。

朝は、雨が降っていて心配でしたが、 集合時間には晴れ、バス停から健康の森までを ウォーキング。参加費1000円にて昨日購入した 食材が足りるかなと心配でしたが、調度良い量で きれいにすべてなくなりました。

1011111656_320x240.jpg
1011111656-1_320x240.jpg

晴れているとはいえ、季節的にも寒いバーベキューでしたが、 楽しめました。

2分木で式を表現

2分木の応用として、2項演算子と数値を表現する方法を説明した。

式と表記法

木での表現の前に、式を演算子の優先順位のカッコ無しで表現する手法として、 逆ポーランド記法などを説明する。また、逆ポーランド記法で表記されたデータを 処理する場合にはスタックなどが便利であることも説明する。

中置記法: 1+2*3
逆ポーランド記法: 1,2,3,*,+  (後置記法)
前置記法: +,1,*,2,3

スタックを使えば、逆ポーランド記法データから値を求める処理が簡単。 数値ならスタックに積む。演算子なら2つデータを取って計算し、結果を再びスタックに積む。

| | | | |3|               +
| | |2| |2| |6|         / \
|1| |1| |1| |1| |7|    1     *
-------------------        / \
1 , 2 , 3 , * , +        2     3

2分木で式を表現

struct Expr {
int          value ; // left,right==NULLの時は数値
char         op ;
struct Expr* left ;
struct Expr* right ;
} ;
struct Expr* Integer( int v ) { // 数値の木を作る
struct Expr* ans ;
ans = (struct Expr*)malloc( sizeof( struct Expr ) ) ;
if ( ans != NULL ) {
ans->value = v ;
ans->op    = ' ' ; // dummy
ans->left  = ans->right = NULL ;
}
return ans ;
}
struct Expr* Operator( char op , // 式の木を作る
struct Expr* l , struct Expr* r ) {
struct Expr* ans ;
ans = (struct Expr*)malloc( sizeof( struct Expr ) ) ;
if ( ans != NULL ) {
ans->value = 0 ; // dummy
ans->op    = op ;
ans->left  = l ;
ans->right = r ;
}
return ans ;
}
int eval( struct Expr* e ) { // 木の式を評価
if ( e->left == NULL && e->right == NULL ) {
return e->value ;
} else {
int l = eval( e->left ) ;
int r = eval( e->right ) ;
switch( e->op ) {
case '+' : return l + r ;
case '*' : return l * r ;
}
}
}
void main() {
struct Expr* exp =
Operator( '+' ,
Integer( 1 ) ,
Operator( '*' ,
Integer( 2 ) ,
Integer( 3 ) ) ) ;
printf( "%d" , eval( exp ) ) ;
}

Moodleネットワーク機能

現在福井高専で運用している Moodle サーバへの機能拡張をするための、 打ち合わせに同席した。現在、f-leccsではシングルサインオンにより、 県立大学に設置されている f-leccs の Moodle サーバは、関係学校より 自由に使える。 こういう2重のMoodleサーバを運用している中で、機能拡張で、 Moodle ネットワーク機能と、携帯でアンケートを取る機能を、見せてもらった。

Moodleネットワーク機能は、他のMoodleサーバにも接続できるようになる機能みたい。 シングルサインオンで使える f-leccs があるから、 必須ではないが、将来的にシームレスに Moodle を連携するときには便利かな。

家庭用向け太陽光発電システムって…

今年度は、福井県機械工業会の方々との連携事業に関係しているけど、 エコがキーワード。講習会では、太陽光発電などの話を聞いているけど、 実際家庭で使う太陽光発電の話が家電Watchで記事になっているので、 メモを残す。

緊急連絡システムのメールでの確認

緊急連絡システムでは、システム全体の利用状況を見るために、 全学校で緊急メールが出されると、管理者用のメールアドレスにも メールを送るようにしてある。 でも、もう一人の管理者の先生から、最近管理者用のメールが届かないとの連絡。 (私は熊の季節には、あまりにも数多いメールが来るので、自分宛ははずしておいた)

確認してみると、最近情報処理センターのメールシステムの更新で、 管理者用のメールアドレスから、実際の管理者へのメール転送機能が設定されていなかったのが 原因だった。 ということで、センターの方に転送の設定方法を聞いて設定。 実際は、usermin(webmin)で、.forward ファイルを編集する。 usermin には、.forwardファイルを直接書き込む設定があったので、 .forward ファイルの書き方を確認しながら、転送設定を行った。

メモリ階層とネットワークの基礎

先週の授業で、OSに関係する部分の説明を終えていたが、 メモリ階層の話が抜けていたので補足。

メモリ階層

コンピュータで利用するデータには、局在性があり よく利用するデータと利用頻度の低いデータがある。 これに応じてコンピュータでは、高速・高価なメモリと、低速・安価なメモリを うまく使い分けることで、「見かけ上、高速なメモリが大容量あるようにみせる」 メモリ階層は、 (a)もっとも速く利用頻度の高いCPU内部の汎用レジスタ(多くても数百バイト)と、 (b)キャッシュメモリ(数キロバイトでS-RAMを使う)、 (c)主記憶(数ギガバイトでD-RAMを使う)、 (d)補助記憶装置(ハードディスクの仮想メモリ)で、遅くて大容量。 を使い分けている。

ネットワークの基礎

計算機システムのOSネタの後半は、ネットワークについて説明を行う。 最初に、ネットワークの利用目的として、共有・分散をキーワードに、説明を行う。

資源共有(資源分散)

ハードウェア資源を共有。プリンタサーバ(ハードウェアの共有)、 ファイルサーバ(データの共有・ハードディスクの共有)。 アプリケーションサーバ(アプリケーションの共有,ライセンスであんまり使われていないけど)

負荷分散

ムーアの法則で、コンピュータ処理速度は限界に達している。 さらなる高速化のために、計算処理を複数のコンピュータで分散して実行する。 グリッドコンピューティングクラウドコンピューティングなど。

リスク分散

ネットワークの歴史的には、Internetの元のARPANETなどは、軍の中央コンピュータが核ミサイル破壊で、全体が動かなくなるリスクを、別なコンピュータで代用できるようにした所が始まり。現在でもコンピュータの故障リスクをなくすために、複数台で処理することが普通。 クラウドもリスク分散を兼ねている。

ネットワークの歴史として、 (1)TSSによる端末・サーバ間通信、 (2)ARPANETによるネットワーク基礎の確立、 (3)LANの発達、 (4)LAN間接続でWANの発達、 (5)WWW(World Wide Web)の発達 を紹介。

ネットワーク物理層

パソコン・周辺装置インタフェースとして、パラレル接続(高速・ケーブル配線が手間)・シリアル接続(低速・ケーブル配線が容易)がある。 シリアル接続の中で、Ethernetは接続の代表格で、 10BASE/2,5 では、同軸ケーブル接続が基本。 しかしターミネータの必要性から、接続機器の追加削除が不便だった。 10BASE/Tで、間にHUBを置いて分岐する。 10BASE/Tは、100BASE-TX、1000BASE-??と発達している…

2010年11月7日(第189回)

  • 福井高専の工場見学旅行と就職活動の関係
  • 学内合同企業説明会について

Apache+SSL起動でパスフレーズ入力を…

学科のサーバでは、UPKIオープンドメイン証明を使用しているが、 登録時にパスフレーズを埋め込んでいるために、サーバ起動時に いつも入力待ちになっていた。 ちょいとググったら、技が載っていたので、メモ&設定。
# うほ、便利…

MacでARToolkit、UVCカメラNGだった

来年のプロコンや、画像処理関係の卒研のテーマの導入に使えないかと、 ARToolkitを使おうと準備中。 手元のMacでいつでも実験…と思い環境を整備するけど、まだまだ準備段階。

参考資料

ARToolKit on Mac OS X(特にVRML)

この資料に沿って、OpenVRMLをインストールしてコンパイルをかけてみたけど、 以下のようなエラーメッセージで止まるなぁ。 jpegのライブラリが見つけられていないみたい。

Directory 'sw/lib' following -L not found Library
not found for -ljpeg

UVCカメラNGだった

また、動かしてみたサンプルプログラムで試しているけど、 MacのiSight だと、カメラを好きな方向に向けられないので、 USB接続の手持ちのUVCカメラ "Creative Labs VF0280 Live! Cam Optia AF"を接続してみた。 カメラの認識確認で、iChat を起動するけど、普通に認識してカメラは動いた。 しかしながら、ARToolkit のサンプルプログラムを動かして、Source を切り替えるのだが、 どうもサンプルプログラムでは認識してくれない….
# どうももう少し実験の手間がかかりそうだ…

システム

最新の投稿(電子情報)

アーカイブ

カテゴリー