V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cocoZombie
V2EX  ›  程序员

关于使用 BNO055 传感器的动作捕捉问题

  •  
  •   cocoZombie · 2022-09-13 16:34:05 +08:00 · 1047 次点击
    这是一个创建于 800 天前的主题,其中的信息可能已经有所发展或是发生改变。

    兄弟萌,我这边有个问题,是关于动作捕捉的开发。
    我个人情况:并没有这方面的基础知识,只能说是赶鸭子上架。

    ##1.具体情况如下
    我们公司决定开发一套动作捕捉的设备,采用的是博世的 BNO055 传感器,并且不采用绑带或者衣服,而是直接贴在身体皮肤表面。目前我在传感器四元数控制 unity3d 模型的旋转方面遇到了一些问题。
    ##2.关于四元数
    我将 BNO055 本身的右手坐标系转换成 unity 的左手坐标系
    Quaternion q_lefthanded = new Quaternion( -bno[3], -bno[1], -bno[2], bno[0] );
    校准和实时运动 ` Quaternion q_calib; // 站立姿势时的四元数(即校准) Quaternion q_curr; // 运动时的四元数(实时)

    Quaternion q = q_curr * Quaternion.Inverse(q_calib); //之后在 update 函数中,将这个四元数 q 赋值给 3d 模型 ` 我将传感器正对前方,运动时,unity 模型的动作中,有一个轴呈现相反的旋转方向。 ##3.求助,想要的回答 我查阅过博世的论坛,Stack Overflow 之类的也查询过,并没有解决我的问题,想问一下各位兄弟姐妹,有没有什么解决办法?

    下面附上问题详情视频,测试时用的是右手

    https://v.youku.com/v_show/id_XNTkwMTM2MjA4NA==.html https://youtu.be/D40jWchqDLI

    4 条回复    2022-09-13 19:00:59 +08:00
    MinQ
        1
    MinQ  
       2022-09-13 17:20:54 +08:00
    https://github.com/curiosity-inc/bno055-unity
    这里有个 Unity 插件,里面的 DataReceiver_OnDataReceived 是用来转换的,你要不试试看?
    cocoZombie
        2
    cocoZombie  
    OP
       2022-09-13 17:25:41 +08:00
    @MinQ 谢谢,这个试过了,结果令人悲伤。😿
    MinQ
        3
    MinQ  
       2022-09-13 17:45:07 +08:00
    如果只是有一个轴反向旋转的话可能把其中某个数的符号修改一下就行了?
    cocoZombie
        4
    cocoZombie  
    OP
       2022-09-13 19:00:59 +08:00
    @MinQ 看起来是,实际上并不是。谢谢 :)
    我刚又搜了下,终于找到了
    https://gamedev.stackexchange.com/questions/182126/sensor-quaternion-to-unity-conversion
    贴出来,顺便帮助以后也遇到同样问题的朋友
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1022 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:34 · PVG 03:34 · LAX 11:34 · JFK 14:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.