SwiftでiPhoneの角度を取得する際のジンバルロックの解消法をご教示ください。

予算
5千
1万
納品希望日
ご相談
募集期限
募集終了 締切日 2021年10月21日 /
掲載日 2021年10月16日
応募状況
応募人数 1
契約人数 1
閲覧数 63
用途・種類
アプリ開発
対応範囲
用意してあるもの
開発言語
Swift

募集内容

依頼の概要・目的・背景
【概要】 SwiftでiPhoneの角度を取得する際のジンバルロックの解消法をご教示ください。 【目的・依頼背景】 プログラミング経験1年程度の初心者です。 現在、SwiftでiPhoneを使用して角度を測定するアプリを制作しています。 9割程度アプリが完成したのですが、本体の傾きを取得するCMMotionManagerで、角度によってはジンバルロックが発生し、正確な測定値が得られない状態です。 この問題を解消する方法がわからず、アプリ制作がストップしています。 上記のジンバルロックを解消するコードをご教示いただきたいと思っています。 【提案の際のお願い】 上記の解決が可能であれば、該当部分のコードのみやコードサンプルのご提示でも結構です。
添付ファイル
参考URL
求めるスキル
特記事項
経験者優遇
継続依頼あり
品質重視

応募者一覧

応募者
応募日時
はにまるお
2021/10/16 21:21

募集内容についての質問

質問と回答の履歴

はにまるお
はにまるお
3年以上前
よくよく考えたら変換関数は要らないですね。 attitudeがEulerとquaternionの値を持っている時点で内部的に変換は実行されているわけですので。 角度差分を取得したいということなのですね。 としますと、オイラー角の差を取るでいいのかなと思いました。
MFcoconala
3年以上前
問題点はご指摘の通りで、ジンバルロックという表現は適切でないのかもしれません。 特定の地点で値が連続しなくなってしまうため、その点をまたぐ動きだと正確な差分が算出できないことが問題で、そこさえ解消できればアプリを完成させられると考えています。 ただ、その方法がどうしてもわからない状況です。
はにまるお
はにまるお
3年以上前
なるほどです。 ジンバルロックを起こすってことは、データを基にオブジェクトを回転させていらっしゃるのでしょうか? その場合、直接Quaternionで回転させちゃえば?という気もしますが、 オイラー角がご必要なのでしょうか? Quaternion -> Eulerは順番に各軸の角度をつけていく形で変換されるはずで、
MFcoconala
3年以上前
製作中のアプリでは、始点の座標と終点の座標の差分を出すことで、3次元平面それぞれの上での移動角度を算出するプログラムを作っています。具体的には、人の関節の運動角度を測定するアプリになります。こういったアプリは既に複数存在しているため、技術的には可能なことはわかるのですが、具体的なコードがわからずにいる状況です。 ジンバルロックという言葉は、SwiftのCMMotionManagerでオイラー角を...
募集終了
ブックマーク
予算
5千
1万
募集終了

募集者情報

MFcoconala
5.0 (1)
1
発注件数
100%
発注率
100%
取引完了率
認証状況
本人確認
機密保持契約(NDA)

この募集内容に似ている仕事

予算
見積り希望
応募者数 89
募集期限 本日終了 (9月20日まで)
user
nomuky
投稿日時:5日前
予算
見積り希望
応募者数 59
募集期限 あと 1 日 (9月21日まで)
user
Bad Monchy
投稿日時:6日前