ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Nao inverse kinematics

asked 2013-03-05 11:47:19 -0600

James Diprose gravatar image

updated 2014-01-28 17:15:32 -0600

ngrennan gravatar image


What options do I have in ROS for controlling a Nao robots body parts using inverse kinematics (e.g. its arms)?

Or would I need to write a wrapper so that ROS can use Naoqi's inverse kinematics solver?

Kind Regards


edit retag flag offensive close merge delete

2 Answers

Sort by » oldest newest most voted

answered 2013-03-08 04:44:27 -0600

AHornung gravatar image

You can use the NaoQI IK solver with a wrapper, but I found it often to inaccurate and it will give a close approx. solution instead of failing in some cases. It's also only possible to execute the trajectory to the IK solution afaik, not to compute/simulate it and then integrate it in some own implementation.

So you can use any kind of IK available in ROS based in the Nao's model in the nao_description package. E.g. using IKFast of OpenRAVE or the iterative IK in KDL. We used both in our implementation for the Nao:

KDL is more general but slower than IKFast. With IKFast and the Nao (lacking a 6DoF arm), you can only set 3D or 5D IK goals.

edit flag offensive delete link more


Cool thanks for your answer, I'll give those a go.

James Diprose gravatar image James Diprose  ( 2013-03-10 11:35:27 -0600 )edit

answered 2013-05-07 22:21:49 -0600

severin gravatar image

updated 2013-05-07 22:22:38 -0600

You could also check NAOKinematics library, that provides an exact analytic solution of the FK and IK of Nao, that also avoid singularities (according to the paper). This should be super fast.

Only issue: it currently only supports Nao H21 (ie, Robocup Edition): no support for wrists.



edit flag offensive delete link more


Thanks, would it work for the H25 if it just didn't do anything with the wrists?

I tried the naoqi cartesian control btw, it breaks when you give it a point outside of the configuration space, you would think it would translate your point to the boundary of the configuration space...

James Diprose gravatar image James Diprose  ( 2013-05-28 14:26:47 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2013-03-05 11:47:19 -0600

Seen: 1,569 times

Last updated: May 07 '13