1

我正在从事一个涉及 NAO 机器人试图制作图纸的项目。

整个项目是用 Python 编写的,但是关于使用 Python 控制 NAO 机器人的 Aldebaran 文档确实不是那么完整。

我使用的是一个全身运动,它自己实现了反向运动学,所以我不必照顾它。文档在这里这里有一个使用左臂或右臂的示例。

我遇到的问题是左臂在水平和垂直方向上直线运动的运动控制。或多或少我设法控制了水平直线运动,但垂直直线运动并没有真正起作用。在这种情况下,它所做的是一个倾斜的运动,这不是我所期望的。

从我链接的文档中,“LeftArm 和 RightArm 被控制在位置(X、Y、Z)(米)”。

这是控制手臂的一小部分代码(适应我的需要):

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".
]

可行的动作是:

# 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

不幸的是,垂直方向没有做垂直直线运动,而是做斜直线运动,我不明白为什么。

任何帮助都将不胜感激。提前致谢。

4

1 回答 1

3

如果您想制作 IK,您或许应该查看笛卡尔控制而不是 wbControl。看看 ALMotion.setPosition 方法。

于 2014-04-16T10:04:30.467 回答