I am working on a project involving NAO robot trying to make drawings.
The whole project is made in Python, however the Aldebaran documentation about controlling NAO robot using Python is really not that complete.
What I am using is a whole body motion that implements Inverse Kinematics by itself, so I don't have to take care of it. The documentation is here, and here there is an example for using the left or right arm.
The problem I am encountering is in the motion control for a straight movement of the left arm in horizontal and vertical directions. More or less I managed how to control the horizontal straight motion, but the vertical straight motion does not really work. In this case, what it does is an oblique movement and that's not what I was expecting.
From the documentation I linked, "LeftArm and RightArm are controlled in position (X, Y, Z) (meter)".
Here is a small part of the code for controlling the arm (adapted to what I need):
targetCoordinateList = [
[ +0.00, +0.00*coef, +0.00], # starting point, "origin".
[ +0.12, +0.00*coef, +0.00], # targetting the arm to the whiteboard
[ +0.10, -0.061*coef, +0.02], # targetting the arm in the horizontal direction
[ +0.09, +0.00*coef, +0.043], # targetting the arm in the vertical direction
[ +0.00, +0.00*coef, +0.00], # back to "origin".
]
And the feasible movements are these:
# X Axis LArm Position feasible movement = [ +0.00, +0.12] meter
# Y Axis LArm Position feasible movement = [ -0.05, +0.10] meter
# Y Axis RArm Position feasible movement = [ -0.10, +0.05] meter
# Z Axis LArm Position feasible movement = [ -0.10, +0.10] meter
Unfortunately, the vertical direction does not do a vertical straight movement, but rather makes an oblique straight movement and I don't understand why.
Any help is apreciated. Thanks in advance.