[iOS][AR]七夕にちなんで天の川の位置を探すiOSのソースコードを公開しました!〜HAPPY BIRTHDAY!Classmethod〜
はじめに
こんにちは、モバイルアプリサービス部の田中孝明です。
7月7日は弊社クラスメソッドの創立記念日です。
あとは七夕ということで天体観測をされる方もおられるのではないでしょうか?
そこでAR(拡張現実)という技術を使って天の川(アルタイル)を探すiOSのソースコードを公開しました。
ARとは?
拡張現実(Augmented Reality)という、スマートフォン等のデバイスを通して現実の空間情報を拡張する技術です。
スマートフォンの各種センサー(方位、位置情報、加速度)の値からデバイスの方向を検出し、カメラにオーバーレイさせるというのが一般的な実現方法になります。
今回は自分がAR関係のプロジェクトに携わった際に利用した技術類のサマリーとソースコードを展開いたします。
ソースコード
ソースコードはGitHubに公開しています。
コード自体は昔Objective-Cで組んだものをSwiftで作り直したものです。
※シミュレータには対応していませんので、実機(iPhone、iPod touch)でお試しください!
Event Handling Guide for iOS
デバイスの角度(方位、仰角)の算出には電子コンパスと加速度とジャイロスコープを利用しています。
Location and Maps Programming Guide
Event Handling Guide for iOS
The Balance Filter
加速度とジャイロスコープを統合的に利用することで端末の動作に追随させるThe Balance Filterという技術を利用しています。
この技術を適用することで、デバイスの向きがPortraitやLandscapeに限らず対象物を追随させることができます。
OpenGL
目的の座標に描画するためにカメラの画像の上にOpenGL ES 1.1を利用しています。
GLKitやMetalが出ていない時期に組んだものですのであまり参考にならないと思います。
星座の座標計算
目的の星(アルタイル)の座標計算(赤道座標→地平座標変換)には下記のサイトを参考にさせていただきました。
最後に
最近はVRが話題に上ることが多く、ARが話題に上ることも少なくなりました。
それでもスマートフォンに搭載されているセンサー類を駆使した技術でもあるので、プログラミングするお題としては楽しいと思います。
自分も技術者として新しい技術に積極的にチャレンジし、アウトプットできるようにしてまいります!
HAPPY BIRTHDAY!Classmethod!!