2014-02-20 81 views
1

我正在參與一個涉及NAO機器人嘗試製作圖紙的項目。通過wholeBodyMotion控制機器人手臂

整個項目都是用Python編寫的,但是使用Python控制NAO機器人的Aldebaran文檔並不是那麼完整。

我正在使用的是一種全身運動,它本身實現了逆運動學,所以我不需要照顧它。文檔是herehere有一個使用左臂或右臂的示例。

我遇到的問題是運動控制中左臂在水平和垂直方向上的直線運動。或多或少,我管理如何控制水平直線運動,但垂直直線運動實際上並不奏效。在這種情況下,它所做的是傾斜運動,這並不是我所期望的。

從我鏈接的文檔中,「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 

不幸的是,垂直方向不做垂直直線運動,而是做一個斜直的運動,我不明白爲什麼。

任何幫助是apreciated。提前致謝。

回答

2

如果您想製作IK,您應該查看笛卡爾控件而不是wbControl。看看ALMotion.setPosition方法。

+0

我已經完成了。我正在使用函數angleInterpolationWithSpeed(),它給了我很好的結果。謝謝你的回答;) –