平面上の端末の位置を取得するテスト


[Android] 平面上の端末の位置を検出して表示制御するテスト02 - YouTube

 

平面上の端末の位置を取得するテストをしてみた。

方法はいくつか思いついたけど、今回は天井にマーカーを貼り、

端末のフロントカメラでマーカーを検出、その位置や角度で自分の

位置、回転を調べるという方法。

 

 

マーカー検出は普段VuforiaでARアプリ作ってるのでVuforiaで。

開発環境はUnity。

マーカー検出した時のARCameraのlocalPosition、localEulerAnglesを取得。

それを使って計算する。

 

端末が回転しない場合は簡単。

 

最初に端末を机の左上と右下の両方の位置に置いてARCameraの位置を保存。

それを使って端末を動かした時のARCameraの相対位置を計算すればOK。

 

端末が回転すると複雑に。。

 

回転するとXY座標の方向も回転する。

カメラが端末の真ん中に無いことによるズレ。

端末ごとに全然違う。

 

XY座標の方向が回転しちゃうのは、localEulerAnglesで端末の回転は結構正確に取れるので、その分回転させてあげてみた。

 

カメラが真ん中に無いので同じ場所で回転した時のズレが生じる。

これはとりあえず力技で。。

 

そして力技でやってるので、端末ごとに設定が違ってしまう。。

決まった端末だけならいいんだけども。

このへん計算でなんとかいけないものか。。

 

これで何をやったらおもしろいかが思いつかないので、そこが思いついたら何か作ろうと思います。