nao-robot

How to move arms according to a certain angles and block it


I am using motionProxy.angleInterpolation(chain_id, angle_list, timeLists, True,_async=True) from http://doc.aldebaran.com/2-8/naoqi/motion/control-joint.html#control-joint to move the arms toward a certain direction based on the angles of the joints. But as soon as the call to the mentioned function terminates, the arm slowly returns to its initial resting position, my question being to prevent it from returning to its initial resting position?


Solution

  • this is because of the "background movement" autonomous ability, that is designed to do that so the robot's movements stay natural.

    One way of disabling it is to disable autonomous life (from Choregraphe, or by double-clicking on NAO's chest) - note you should then call ALMotion.wakeUp() if you want to be able to control the joints.

    If you're doing this inside an application run by autonomous life, you can also call ALBackgroundMovement.setEnabled(False) (doc here), and it will stay disabled until you turn it back on or your application exits.

    (in many cases you might also want to disable listening movements and basic awareness, they also make the robot move, tho if you're just moving the arms and not making the robot listening, background movement should be enough)