在我的项目中,人类跟随Nao机器人的动作,我从深度传感器获得的人类骨骼关节数据的世界坐标为(x,y,z)。现在,我需要机器人的关节坐标来证明人类模仿的合理性。深度传感器无法跟踪Nao机器人。
我已经使用motionProxy.getPosition
功能找到了机器人的传感器位置。我还尝试使用不推荐使用的功能getJointNames
来查找关节名称,但是没有用于获取这些关节的“位置”的功能。
我应该手动测量关节和传感器之间的距离并计算关节位置吗?另外,是否有人尝试在Nao机器人上使用Vicon或其他运动跟踪系统?
答案 0 :(得分:0)
您可以使用ALMotion.getPosition获得笛卡尔世界中任何关节的位置。 例如:
ALMotion.getPosition( RShoulderPitch 0 1)
[-0.627288878,-0.0759276226,0.991154313,-0.000606168585,-0.315976441,0.014949495]
ALMotion.getPosition( HeadPitch FRAME_TORSO 1)
[-0.0248374045,-0.000473844644,0.991121054,-0.000527210592,-0.317508608,-0.0489440858]
...