python程序控制NAO機(jī)器人行走
最近重新學(xué)習(xí)nao的官方文檔,寫點(diǎn)簡(jiǎn)單的程序回顧一下。主要是用python調(diào)用api,寫下來保存著。
'''Walk:small example to make nao walk''' import sys import motion import time from naoqi import ALProxy def StiffnessOn(proxy): #we use the 'body' to signify the collection of all joints pName="Body" pStiffnessLists=1.0 pTimeLists=1.0 proxy.stiffnessInterpolation(pName,pStiffnessLists,pTimeLists) def main(robotIP): #init proxies try: motionProxy=ALProxy("ALMotion",robotIP,9559) except Exception,e: print "could not create proxy to ALMotion" print"error was",e try: postureProxy=ALProxy("ALRobotPosture",robotIP,9559) except Exception,e: print"could not create proxy to ALRobotPosture" print "error is ",e #set nao in stiffness on StiffnessOn(motionProxy) #send nao to pose init postureProxy.goToPosture("StandInit",0.5); #eable arms control by walk algorithm motionProxy.setWalkArmsEable(True,True) #foot contact protection motionProxy.setMotionConfig([["ENABLE_FOOT_CONTACT_PROTECTION",True]]) #target velocity X=-0.5 #backward Y=0.0 Theta=0.0 Frequency=0.0#low speed motionProxy.setWalkTargetVelocity(X,Y.Theta,Frequency) time.sleep(4.0) #target velocity X=0.9 Y=0.0 Theta=0.0 Frenqency=1.0#max speed motionProxy.setWalkTargetVelocity(X,Y,Theta,Frenquency) time.sleep(2.0) #arms user motion #arms motion from user have alwalys priority than walk arms motion JoinNames=["LShouderPitch","LShouderRoll","LElbowYaw","LElbowRoll"] Arm1=[-40,25,0,-40] Arm1=[x*motion.TO_RAD for x in Aram1] Arm2=[-40,50,0,-80] Arm2=[x*motion.TO_RAD for x in Aram2] pFractionMaxSpeed=0.6 motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed) motionProxy.angleInterpolationWithSpeed(JoinNames,Arms2,pFractionMaxSpeed) motionProxy.angleInterpolationWithSpeed(JoinNames,Arms1,pFractionMaxSpeed) #end walk X=0.0 Y=0.0 Theta=0.0 motionProxy.setWalkTargetVelocity(X,Y,Theta,Frequency) if __name__=="__main__": robotIP="192.168.1.155" if len(sys.argv)<=1: print "useage pyhton motion_walk.py robotIP,default is 127.0.0.1" else: robotIp=sys.argv[1] main(robotIP)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PyCharm如何設(shè)置Console控制臺(tái)輸出自動(dòng)換行
這篇文章主要介紹了PyCharm如何設(shè)置Console控制臺(tái)輸出自動(dòng)換行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解
Mixin模式也可以看作是一種組合模式,綜合多個(gè)類的功能來產(chǎn)生一個(gè)類而不通過繼承來實(shí)現(xiàn),下面就來整理一下使用Mixin設(shè)計(jì)模式進(jìn)行Python編程的方法講解:2016-06-06Python中判斷語句入門指南(if?elif?else語句)
if elif else語句是Python中的控制語句,用于根據(jù)條件執(zhí)行不同的操作,下面這篇文章主要給大家介紹了關(guān)于Python中判斷語句入門指南(if?elif?else語句)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05Python函數(shù)之iterrows(),iteritems(),itertuples()的區(qū)別說明
這篇文章主要介紹了Python函數(shù)之iterrows(),iteritems(),itertuples()的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05使用Keras構(gòu)造簡(jiǎn)單的CNN網(wǎng)絡(luò)實(shí)例
這篇文章主要介紹了使用Keras構(gòu)造簡(jiǎn)單的CNN網(wǎng)絡(luò)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06pytorch實(shí)現(xiàn)多項(xiàng)式回歸
這篇文章主要為大家詳細(xì)介紹了pytorch實(shí)現(xiàn)多項(xiàng)式回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04Python中棧、隊(duì)列與優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于Python中棧、隊(duì)列與優(yōu)先級(jí)隊(duì)列的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06