2008-02-20[n年前へ]
■Wiiリモコンの加速度センサで姿勢検知
PC+加速度センサを使ったアプリケーションを作ろうとする場合、12インチでSXGA+程度の高解像度ディスプレイを備えたTabletPCを念頭に置いて作ることが多い。手に持つことができて、低解像度のデバイスでなく、姿勢検知センサを積んでいる…つまり、Lenovo(旧IBM) Thinkpad のX60Tか、ToshibaのPortegeという機種である。とはいえ、もちろん、その他のPCでも色々と位置・姿勢検知をして、それに応じた各種処理をして遊んでみたくなったりもする。
そこで、Wiiのリモコンを手に入れた(ありがたいことにハイヨとくれた人がいた)。加速度センサや赤外線センサを積んだWiiリモコン、つまりは、センサの塊であるWiiリモコンを使えば色んなことができる。…というわけで、下に貼り付けたのは、WiinRemote.exeによるWiiリモコンのセンサ取得例である。
こういったWiiリモコンを使った姿勢取得例のように、Wiiリモコンのセンサ取得APIを使うこともできる(もちろんThinkpadの加速度センサなどを使うことも出来る)汎用の加速度・姿勢検知用のクラスを作っておくことにしてみた。これで、Lenovo や Toshiba以外のPCでも使うことができるアプリケーションを汎用的に作る・使うことができるだろう。また、Thinkpadのような2軸加速度センサ搭載機よりも1軸多い3軸加速度(姿勢)を使うことで、色んな計算が楽になるかもしれない。
2008-05-30[n年前へ]
■(加速度センサ対応)体感・実感バストシミュレータを作る
体感・実感バストシミュレータを作ってみました。アプリケーションのウィンドーを揺らしたり、(もしThinkpadユーザなら)PCを揺らしたりすると、その振動に応じた変形を計算・表示するというシミュレータです。下の動画はその(Windows上で動作する)アプリケーションを動かしている例になります。マウスでウィンドーを動かすと、その力(加速度)に応じた複雑な変形が生じたりすることが見て取れると思います。
また、Thinkpadを持ち上げ、傾けてみたり・揺らしてみたりすると、その動きに対応する変形が生じるので、まるでバーチャルリアリティのようにその変形の因果関係を体感できるかもしれません。端的に言ってしまえば、このアプリケーションを動かしつつ胸の前でThinkpadを持って体を動かすと、その動きに応じた変形シミュレーション計算結果を刻々表示(レンダリング)する、なんていう遊びもできるわけです。
不可思議に見える動きでも、案外こんな実験をしているうちに、その因果関係を実感・納得できるかもれいません。それが、「体感バストシミュレータ」だったりすると、ナニな感じは漂いますが、そんなクダらなさがこのサイトの一つの特徴でもあるので、(色々な視点から眺めた下の動画でも)適当に流し見しつつ・楽しんで頂けたら幸いです。
このアプリケーション(バイナリ実行ファイル)はここに置いてあります。計算部はC++で適当・速攻で作り、(皮膚からの表面張力を働く)弾性・塑性的な性質を持つPartcleクラスを多数保持するBodyクラスにより、変形状態が計算される、という具合です。書き飛ばした部分を整理し、C++ Bodyクラスのソースも近々置いてくことにしようと思っています。
2008-06-06[n年前へ]
■体感・実感バストシミュレータの内側(粒子群)を見る
「GPUを使った物理計算プログラム」と「スクリプト言語」で読んだ日経エレクトロニクスの、「粒子が動いて流体を表現するさまを示した図」が見ていて綺麗だったので、先日作ったプログラム、粒子法を使った(加速度センサ対応)体感・実感バストシミュレータにも表面レンダリングだけでなく粒子レンダリングの機能を付けてみました(バイナリはここに置いておきます)。
アプリケーションを実行させて、「皮膚」=表面層の内側を眺めたさまは下の動画のようになります。
2008-10-19[n年前へ]
■加速度P(I)D制御の防振エディタ
列車や飛行機や、あるいは、船の上といった場所でPCを使う人もいる、と思います。そんな人たちは、とりたてて多くはないのかもしれないけれませんが、きっと、そんな人たちもいると思います。つまり、揺れ動くノートPCの液晶を眺めながら作業をする人たちがいると思うのです。
そんな作業は、目を疲れさせ、きっと視力を悪くします。・・・そこで、ノートPCに搭載されている加速度センサを使って、揺れの成分を取り除くようにWindowを動かすエディタを作ってみた。題して、「加速度P(I)D制御の防振エディタ」です。つまり、その瞬間の加速度=位置の差(Propotional)と、その瞬間の加速度の微分=位置の差の差(Differential)をさらに演算した結果を用いて、エディタのウィンドー位置を防振補正し、「揺れ動く環境の中でも目を疲れさせないエディタ」を作ってみたのです。
そんな「加速度P(I)D制御の防振エディタ」を使っているようすを撮影してみました。それが、上に貼り付けた動画です。画面中央右の「加速度P(I)D制御の防振エディタ」が、その他のWindowsパーツと違って、防振の方向に動いている(動かそうとしている)のがわかるだろう、と思います。
ちなみに、その拡大動画が下に貼り付けたものです。画面右が防振エディタで、画面の左後ろにあるのが普通のエディタになります。
ケータイで撮影した動画ではわかりづらいと思いますが、真面目にやれば効果が結構あるように思えるのです。・・・ということは、あと数年もすると、「加速度P(I)D制御のノートPCの防振表示画面」というものも、ごく当たり前になっているかもしれません。
2008-10-20[n年前へ]
■防振エディタ・ソフトウェアのバイナリ
昨日作った「加速度P(I)D制御の防振エディタ」で作った防振エディタのバイナリを/misc/stabilizedEditorに置いておきます。いつものように、アイデア一発・作成20分という大雑把な作りなので、できることはテキストファイルの編集と、Open・Saveだけです。
で、早速「昨夜、こんなソフト作ってみたんだけど」と前置きしながら一発芸ソフトを披露したところ、「プルプル震えて不安定ですね」「全然、綺麗に制御できてないですね」「大体、(位置値でなく)加速度値を使っているのにPD制御って、変じゃないすか?」「もう少し制御工学を勉強した方がいいんじゃないでしょうか?」と実に真っ当な技術論で喝破されていまいました。
そして、それどころか、「それ、老眼促進ソフトですか?」「だから、そんなにフォントが大きいんですか?」とまで言われたてしまったわけです。・・・確かにそうかもしれないなぁと思いながら、誰かが、iPhoneとかで防振エディタ・ブラウザ・画面表示ソフトウェアが作ってくれたらいいのにな、とも思ったのです。

