2017年11月29日水曜日

電磁石がほしい

 久しぶりにFSXで遊んだ(って、定期的にどっかに書いてるな。長続きしない)。

 やはり視点操作が結構面倒。気軽にやろうとするとFreeTrackだけど、FreeTrackが入ってるとArma 3を起動できない。三日坊主の自分には、TrackIRはコスパが悪い。
 SDKを使えば、FSXの視点を変更することができるが、そのためのソースをどうするか。
 前々から気になってた、OpenPoseを試してみようと思ったが、かなり要求リソースが高い。調べてみると、どうやら機械学習を使っているらしい。さもありなん。4kでフライトシミュをやりながら、その裏で機械学習の処理も行う。無理ゲーっぽい。

 自分で画像処理を作るのは、マーカーを使ったとしても、結構面倒な気がする。あと、画像処理はCPUリソースが大量に必要になる。
 ってことで、CPUリソースをあまり使わない方法が必要になる。
 一番手っ取り早いのは、加速度・角速度センサを使って頭の位置を計算すること。ただし、これだと積分する際に誤差も積み重なる。

 本物ではどうやっているのか。
 例えばJHMCSでは交流磁界を使った位置・角度の検出を行っている。ただし、この方式では磁界を邪魔する物が無い環境でしか使用することができない。F-22では、磁界を邪魔する物があるためにJHMCSが使用できないらしい。
 JHMCS IIでは別の方式となり、ジャイロやら光学系やらを使うらしい。
 ユーロファイター・タイフーンの場合は、ヘルメットに大量の赤外線LEDが埋め込まれて、これを画像解析するらしい。

 JHMCSでは、環境が良ければ交流磁界の周波数でリフレッシュレートが制限されると思われる。
 JHMCS IIでは慣性を使ってるので、慣性センサのサンプリングレートに制限される。ただし、戦闘機では最大10G程度の重力加速度があるから、高G環境でも正確にサンプリングできる慣性センサが必要になる(MEMSジャイロは高Gに弱い)。また機体自体の運動と、頭の運動を切り分ける必要もある(結局角度は機体の外に対してだから、切り分けは不要?)。
 タイフーンの場合はカメラのフレームレートと、画像処理の速度に制限される。

 タイフーンはかなりゴリ押し感がある。
 JHMCS II方式は、固定された椅子に座って使う分には、電子工作的に作りやすそう(ドリフトを考えなければ)。
 JHMCS方式の場合は、積分が無いので、誤差が少ない。ただし磁力を扱ったりとか、いろいろ面倒な気がする。


 気軽に作れるとなると、JHMCS II方式かなぁ。ドリフト対策をどうするか。角度の誤差は地磁気で補正できるかもしれないけど、位置の補正は9DoFでは不可能。数-数十Hzの交流磁界を外部で作って、加速度角速度で位置を計算し、地磁気センサで誤差を補正する、みたいな折衝案はできるかも。

 拾い物のPDFによると、送信コイルが直径5cm、受信コイルが2cmで、距離80cmにおいて位置誤差2cm、角度誤差2.5度くらいらしい。10年以上前のPDFなので、信号処理部が結構でかい。今だと手のひらサイズだろうなぁ。

 固定側で送信、ヘッドセットに受信コイルをつければいいかな、という気がするけど、すぐ横でヘッドセットのスピーカーが動くから、磁気式は厳しいかもしれない。ヘッドセットを送信にすれば、スピーカーからの磁気の影響は防げるかもしれないけど、逆に異音が聞こえてくる可能性もある。
 件のトラッカは100Hzで出るそうで、9軸(3x3軸)の計測を時分割で行うらしい。1msec以内に検出しなきゃいけないから、周波数は少なくとも50kHzから200kHzくらいだろうか。となると超音波の領域だから、スピーカーへの干渉は問題にならないかな?

 もしかしたら、ヘッドセットの入力から外部においた受信コイルの波形と相関を取って、送信コイルレスで6軸検出ができるようなソリューションがあるのかもしれない。このあたりはVRのトラッキングで使われそうな技術だから、調べれば出てきそう。


 で、結局どの方式を使うか。いまいち決めきれない。
 まぁ今回もFSXはすぐ飽きるだろうから、頭の体操程度にもうちょっと考えてみる。

0 件のコメント:

コメントを投稿