本文实例为大家分享了python实现nao机器人手臂动作的具体代码,供大家参考,具体内容如下
这些天依然在看nao公司文档的东西,把读过的代码顺手敲了出来。代码依然很简单,但是为什么我要写博客呢?这其中有很大的原因在于,代码是死的,可是读着读着就感觉代码活了,而且,每次读都会有不同的感受。咱就直接看正题吧。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#-*-encoding:utf-8-*-
import sys
import motion
import almath
from naoqi import alproxy
def stiffnesson(proxy):
#we use the body name to signify the collection of all jionts
pname = "body"
pstiffnesslists = 1.0
ptimelists = 1.0
proxy.stiffnessinterpolation(pname,pstiffnesslists,ptimelists)
def main(robotip):
''' example showing a path of two position
'''
try :
motionproxy = alproxy( "almotion" ,robotip, 9559 )
except exception ,e:
print "could not create a proxy to almotion"
print str (e)
try :
postureproxy = alproxy( "alrobotposture" ,robotip, 9559 )
except exception ,e:
print "could not create a proxy to alrobotposture"
print str (e)
#set the nao stiffness on
stiffnesson(motionproxy)
#set the nao to standinit
postureproxy.gotoposture( "standinit" , 0.5 )
effector = "larm"
space = motion.frame_robot
# axis_mask_vel=7
axismask = almath.axis_mask_vel
isabsolute = false
#since we are in relative, the current position is zero
currentpos = [ 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 ]
#define the changes in relative to the current position
dx = 0.03 #translation axis x
dy = 0.03 #translation axis y
dz = 0.00 #translation axis z
dwx = 0.00 #rotation axis x
dwy = 0.00 #rotation axis x
dwz = 0.00 #rotation axis x
targetpos = [dx,dy,dz,dwx,dwy,dwz]
#go to the target and back again
path = [targetpos,currentpos]
times = [ 2.0 , 4.0 ] #seconds
motionproxy.positioninterpolation(effector,space,path,axismask,times,isabsolute)
if __name__ = = "__main()__" :
robotip = "127.0.0.1"
if len (sys.argv)< = 1 :
print "use default :127.0.0.1"
else :
robotip = sys.argv[ 1 ]
main(robotip)
|
接下来是另一个:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#-*-encoding:utf-8-*-
''' cartesian control :arm trajectory example'''
import sys
import motion
import almath
from naoqi import alproxy
def stiffnesson(proxy):
pname = "body"
pstiffnesslists = 1.0
ptimelists = 1.0
proxy.stiffnessinterpolation(pname,pstiffnesslists,ptimelists)
def main(robotip):
'''showing a hand ellipoid
'''
try :
motionproxy = alproxy( "alproxy" ,robotip, 9559 )
except exception,e:
print "could not create a proxy "
print "error was " ,e
try :
postureproxy = alproxy( "alrobotproxy" ,robotip, 9559 )
except exception ,e:
print "could not create a proxy"
print "error was" ,e
#send nao in stiffness on
setstiffnesson(motionproxy)
#send nao to pose init
postureproxy.gotoposture( "standinit" , 0.5 )
effector = "larm"
space = motion.frame_robot
path = [
[ 0.0 , - 0.05 , + 0.00 , 0.0 , 0.0 , 0.0 ], #pose1
[ 0.0 , + 0.00 , + 0.04 , 0.0 , 0.0 , 0.0 ], #pose2
[ 0.0 , + 0.04 , + 0.00 , 0.0 , 0.0 , 0.0 ], #pose3
[ 0.0 , + 0.00 , - 0.02 , 0.0 , 0.0 , 0.0 ], #pose4
[ 0.0 , - 0.05 , + 0.00 , 0.0 , 0.0 , 0.0 ], #pose5
[ 0.0 , + 0.00 , + 0.00 , 0.0 , 0.0 , 0.0 ]
] #pose6
axismask = 7
times = [ 0.5 , 1.0 , 2.0 , 3.0 , 4.0 , 4.5 ] #seconds
isabsolute = false
motionproxy.positioninterpolation(effector,space,path,axismask,times,isabsolute)
if __name__ = = "__main__" :
robotip = "127.0.0.1"
if len (sys.argv)< = 1 :
print "usage local ip "
else :
robotip = sys.argv[ 1 ]
main(robotip)
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u011181878/article/details/21392201