リッツパリー

いつもお世話になっているエンジニアライフの皆さんとライトニング大会を開きました。
プレゼンのネタ、実はやりきれなかったネタがもうひとつがあったんだぜい。

当日の模様はこんな感じ
http://www.ustream.tv/channel/engineerlife-lt2010

自己紹介

http://www.ustream.tv/recorded/9803901
17分50秒あたり

ライトニングトーク本編

http://www.ustream.tv/recorded/9805582
9分20秒あたり

パネルディスカッションまとめ

http://www.ustream.tv/recorded/9806749
5分40秒あたり

Javaでシリアル通信

Java Communications API というライブラリがあるがメンテされていない。が、その仕様に準じたRXTXというOSSがある。

http://www.rxtx.org/

配布先からダウンロードして解凍。

RXTXcomm.jar と、各種OS用のドライバをclasspathの通っているディレクトリに置く。

eclipseならプロジェクトごとにクラスフォルダを作ってそこに配置

ちゃんと調べてないけど、多分、JNIで実装されているっぽいので
WindowsならDLL、Linuxなら.soとOSごとに異なるライブラリが必要になのだと。

で、Javaでシリアル通信ができて何がうれしいかというと、ArduinoとJavaでお話ができちゃうのだ。送信のほうは簡単だけど、受信はイベント駆動なので少し手間っぽい。今の段階では送信さえできていればロボットの操作ができるのでOKとしよう。

追記
RXTXcomm.jarのプロパティから、「ネイティブライブラリのロケーション」でdllを置いたパスを指定する

babelを使ってeclipseを日本語化する

eclipse起動後
[Help]-[Install New Software...]からダイアログを開く

Name: Babel
Location: http://download.eclipse.org/technology/babel/update-site/galileo

babel Language Packs in Japanese を選択、から日本語ランゲージパックを取得してeclipseを再起動

OpenCV2.1のインストール

コンパイルが不要のOpenCV-2.1.0-win32-vs2008.exe をダウンロード

インストーラを起動してインストール

デフォルトで

c:\OpenCV2.1\

に展開される。

c:\OpenCV2.1\include\opencv インクルードファイル
c:\OpenCV2.1\lib ライブラリファイル

をVisualStudioのパスに設定。

ライブラリファイル名にバージョンナンバーの追加と
デバッグモード用のライブラリ(~d.lib)が用意されている。

2.0→2.1への移行はヘッダを変更する。

#include "cv.h"
#include "highgui.h"

#ifdef _DEBUG
  #pragma comment(lib,"cv210d.lib")
    #pragma comment(lib,"cxcore210d.lib")
    #pragma comment(lib,"cvaux210d.lib")
    #pragma comment(lib,"highgui210d.lib")
#else
  #pragma comment(lib,"cv210.lib")
    #pragma comment(lib,"cxcore210.lib")
    #pragma comment(lib,"cvaux210.lib")
    #pragma comment(lib,"highgui210.lib")
#endif

はじめての電子工作

モーターの制御がわかったので、TA7291をarduinoと連携できるように組み込んでみた。
ここらへんとか参考にする。

違いといえば、ノイズ対策にコンデンサを追加したぐらい。

で、適当なメモをで書くぐらいで電子工作ができちゃった。意外と敷居が低い。

Fritzingというソフトを導入して、モーター制御のブレッドボードを整理。実際のボードとは違うけど、テキトーな感じで

2つ、モータが制御できれば、戦車が作れるのだ。

SimbadをEclipseで使う場合のメモ

simbad実行中

Java3Dをインストール

Simbadをダウンロード

Eclipseプロジェクトにjarを登録
j3dcore.jar
j3dutils.jar
vecmath.jar
simbad-1.4.jar

ビジョン

数名ほど、ロボット関係者にお会いしてみた。

具体的な名前はだせないけど、
個々の要素技術は素晴らしい。

どうやら、足りないのはそれらをまとめ、具体的なコンセプトとしてまとめることみたいだ。
ロボットの難しいところは、それが複合技術であること。要素技術の組み合わせでひとつのロボットで作られる。それが組み合わさったときにどういう形を見せるのか。

エンジニアが自前でWebサイトを作ると、原色バリバリ使っちゃったり、妙にヘンな動きをするJavaScriptを実装してがっかりすることがあったりする。それと似ているのかもしれない。

エンジニアとデザイナが分業としているように、ロボットの要素技術を作ることと、要素技術を組み合わせてロボットを作ることは、まったく別のスキルなのだろう。

ロボットを作りたくなってきた

レスキューロボットには大きくわけて2種類のタイプがある。

ひとつは、作業タイプ。瓦礫除去を目的とするパワー型。もうひとつは、調査タイプ。瓦礫の中にもぐりこんで要救助者の発見というミッションが与えられる。どちらも、試験的に現場に投入されることはあっても実用化にはいたっていない。

探索型ロボットは、1台のロボットが高機能、大型化していく傾向にあるようだ。

ここで仮定。

もし、低コストで安価な探索型レスキューロボットが作れるとしたら?100台ぐらいのロボットを使って探索エリアを網羅的に探索することができるかもしれない。

次は、キミを狙う

基本→応用と順調にクリアできている。
そろそろ次を決めなければならない時期にきた。

春の情報処理試験。
締め切りはもうすぐそこだ。

応用までは一本道だから迷う必要はない。

これから先は、レベル4の高度試験。
選択科目が一気に増える。

春の実施予定でも5種類。
その中で受けれる科目は、ひとつでだけ。

とはいえ、仕事と学業を両立させている身。
あんまりチャレンジャーなことをして失敗するわけにはいかない。

そんなの時間がもったいない。

手持ちの武器で射程範囲内。

データベーススペシャリストなんてどうだろう。

うん。これにする。

追記

今、学んでいるものはまだ血となり骨とはなっていない。
次の楽しみに取っておく。待っていろ。

ナンバー1を目指さないとオンリー1にもなれない。

スパコンのお話を聞く。

前半の高速化の手法なんてのは、
並列化時の考え方にそのまま使えるかもしれない。

また後でまとめなおそう。

台風の発生メカニズムなんてことを
シミュレーションして延々と解析しているそうだ。

よく、赤道で温められた空気が云々というが
アレを計算でつくる。

進路の予測とか、台風一過のあとに何がおこるかとか。
シムアースを本気でやっているのか。ふむ。

世界地図に広がる演算結果をみると、
地球もひとつのシステムなんだと思う。

スケールの大きさに触れた一日。