hirax.net::Keywords::「加速度センサ」のブログ



2007-12-29[n年前へ]

未来の立体ディスプレイが目の前にいる 

 Head Tracking for Desktop VR Displays using the WiiRemoteを見た。 Wiiリモコンの先端には赤外線カメラがついていて、赤外光を発する点の座標などを検出して、BluetoothでPCに送信することができる。その機能を使い、赤外レーザーダイオードをメガネにとりつけたユーザの顔位置をWiiリモコンで検出し、その位置に合わせた画像を描画するというシステムだ。結構面白い。

 前に『「未来の立体ディスプレイ」を作る』で遊んでみたディスプレイも類似のテクニックを使った立体表示法だ。Head Tracking for Desktop VR Displays using the WiiRemoteがディスプレイが固定されていて、そのディスプレイに対して動くユーザ視点を検地するのに対して、Thinkpadの加速度センサを使った立体ディスプレイの方は、固定されているユーザ視点に対して(位置を変える)ディスプレイが動く、という違いである。Wiiリモコンでなく普通のビデオカメラで同様なことをした例であれば、「ViewFrame2-マーカレス顔部検出手法を利用した“ViewFrame”-」などがある。

 誰もが携帯電話や、人によっては、PDAを持ち歩いている。そして、それらの機器には加速度センサや小型カメラといった各種センサが搭載されている。つまり、上にリンクしたような「立体表示」が可能な機器を私たちは持ち歩いている、ということだ。だから、未来の立体ディスプレイがもうすぐ手に入るような気がする。

 そして、「視差がないのに立体を表示するディスプレイ」の課題を解消するための鍵は、実は「遠山式立体表示法」の効果原理にあるかもしれない、と素人考えをすることがある。遠山式立体表示法の大きな効果は(そういう発表記事を見たことはないのだが)目のピントが合う領域をごく限られた部分だけにすることができるところに実はあったりするのではないか、と思うことがある。だとしたら、傾けたディスプレイ・デバイスで立体表示すると非常に効果的ではないだろうか、と妄想したりするのである。

Thinkpadユーザで作る「地震警報システム」 

地震ハザード・ステーション  何年か前から、気象庁の情報を元に地震情報をメールで送信するサービスが色々立ち上がっている。そういえば、前にThinkpadの加速度センサを使ったアプリケーションのネタ出しをした時、気象庁でなく自前の「地震警報システム」を作るのはどうか?というアイデアが出てきた。ハードディスク保護や向き検知を目的として、Thinkpadのように加速度センサが搭載されているデバイスで「○×ガル以上の加速度が検知されたら、サーバにその揺れ情報を送信するソフトウェア」を動かす。そういったデバイスが日本中(世界中)で動いていれば、自分たち自身が動かす「地震警報システム」ができるかも、というアイデアである。

 Thinkpad加速度センサ取得用C++クラスのようなものを使えば、簡単に「○×ガル以上の加速度が検知されたら、特定動作をさせるソフトウェア」を作ることができる。たとえば、試しに作った ThinkpadEarthquakeDetector.exeは一定以上の大きさの揺れが生じるとフォームの色が(10秒間だけ)変わるアプリケーションだ。このアプリケーションの場合、わかりやすく色を変えるだけだが、実際にはサーバに加速度・揺れ方向情報などを送れば良いだろう。

 サーバを立ち上げ、PCユーザからの情報をもとに、リアルタイムで全国の震度情報をリアルタイムでマッピングするサービスなど、簡単に作ることができそうだ。

2008-01-07[n年前へ]

「加速度センサ」でカメラ制御を切り替えたい!? 

 「ケータイで体験できるローレンツ収縮モドキ」は方向性がある。真っ直ぐな棒を動かしてみると、その異方性がよくわかる。ある方向Aでは「棒の太さが変わるだけ」だが、それと90度直交する方向Bでは「棒はグニャグニャ曲がって」見える。

 ケータイで実際の景色を撮影するシチュエーションを考えたとき、たいていの物体は縦に長い。そして、それらの物体は左右にしか動かないのが普通だ。歩く人や走る車も、カメラを左右にパンする時の背景のビルや木々も、ほとんどのものが縦に長く左右にしか動かない。ということは、それらの物体に対して、「カメラの向き=ある方向A」になるようにケータイなどのチープなカメラを作ってやれば、「物体がグニャグニャ曲がって」見えることはなくなり、単に「太さが変わるだけ」にすることができる。

 しかし、ケータイやデジカメの向きを本来の向きとは違う向きに構えられた場合には、どうすればいいだろうか? …そうだ、今のケータイやデジカメには加速度センサが搭載されていて、ケータイやカメラの向きを検知する製品も多い。だとしたら、その鉛直に対するカメラの方向に応じて、駆動・読み出しの制御を切り替えてやれば、どんな場合でも左右に動く縦長の物体や人に対してGood!な「ある方向A」にすることができそうだ。特許風に言うのなら、「加速度センサを具備した撮像機器の固体撮像素子の駆動方法及び撮像装置」という感じだろうか。

 おや?もしかしたら「太さが変わって見える」と「グニャグニャ曲がって見える」では、「グニャグニャ曲がって見える」の方が好ましいと思う人もいるのかもしれない…?

2008-02-16[n年前へ]

X61 Tablet で加速度センサを使ったアプリが動かない件 

 X61 Tablet で加速度センサを使ったアプリが動かない件

2008-02-18[n年前へ]

新しいThinkpad にも対応した加速度センサ値取得プログラム 

 (新しいThinkpadにも対応したバージョンが「Thinkpad加速度センサ取得用C++クラスの手直しをしました」にあります)


 新しいThinkpad(T61,X61など)にも対応(しているはず)の「加速度センサ値取得プログラム」を作成しました。少し前に、Thinkpad T60pで加速度センサ値が取得できない(意訳)」とメールが来たことをきっかけに調べてみたところ「 X61 Tablet で加速度センサを使ったアプリが動かない件」というような情報がありました。そこで、ShockMgrデバイスを直接開くのでなく、Sensor.dll中の"ShockproofGetAccelerometerData"を使うようにAccelerometerのC++クラスを書き換えました(C++ クラス ソース)

 使い方はこれまでと同じように

Accelerometer anAccelerometer;
anAccelerometer.GetAccelerometerData();
std::cout << pAccelerometer.X << ", ";
std::cout << pAccelerometer.Y << "\n";
という具合になります。コマンドラインから傾斜(加速度)を取得するためのサンプルプログラムおよびソースも付けておきます。サンプルプログラムの使い方は、200msごとに100回計測を行う場合には、下記のようになります。 AccelerometerCommand.exe 200 100

 これまで作った三次元画像表示プログラムなどは、順次新しいバージョンに作り直し・入れ替えなおしていこうかと思います。



■Powered by yagm.net