Как получить совместные координаты робота Нао?

В моем проекте человек следует за движениями робота Нао, и у меня есть данные скелета человеческого сустава в мировой координате в виде (x,y,z) от датчика глубины. Теперь мне нужны совместные координаты робота, чтобы оправдать имитацию человека. Датчик глубины не может отследить робота Nao.

Я нашел положения датчика робота, используя motionProxy.getPosition функция. Я также попытался найти совместные имена с устаревшей функцией getJointNames но нет функции для получения "позиции" этих суставов.

Должен ли я вручную измерять расстояние между суставами и датчиками и рассчитывать положение сустава? Кроме того, кто-нибудь пробовал использовать Vicon или другую систему отслеживания движения на роботе Nao?

1 ответ

Решение

Вы можете иметь положение любого сустава в декартовом мире, используя 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]

...

Другие вопросы по тегам