当前位置:   article > 正文

NAO实验6_nao机器人go to position在哪

nao机器人go to position在哪

基础实验 手臂与头部

整体流程图:

其中,Go to position StandInit的Block由右侧的姿势库拖拽出,而Robot dance的Block类型为时间轴

Dance Block 具体行为层:

中级实验 完成机器人舞

在基础实验的基础上完成.

这两个实验最重要的是知道行为层可以将各个行为分开,并且在不影响其他行为下,改变某一个行为.

高级任务 绕圈走

其中,Walk Python的代码为:

  1. import math
  2. import time
  3. class MyClass(GeneratedClass):
  4. def __init__(self):
  5. GeneratedClass.__init__(self)
  6. self.motionProxy = ALProxy("ALMotion")
  7. def simplifyAngle(self, theta):
  8. while(theta > math.pi):
  9. theta -= 2*math.pi
  10. while(theta < -math.pi):
  11. theta += 2*math.pi
  12. return theta
  13. def updateTheta(self, previousTheta, theta):
  14. nextTheta = self.motionProxy.getRobotPosition(False)[2]
  15. theta += self.simplifyAngle(nextTheta - previousTheta)
  16. return (theta, nextTheta)
  17. def onLoad(self):
  18. #put initialization code here
  19. pass
  20. def onUnload(self):
  21. #put clean-up code here
  22. pass
  23. def onInput_onStart(self):
  24. #self.onStopped() #activate the output of the box
  25. self.motionProxy.setWalkArmsEnabled(True, True)
  26. globalTheta = self.motionProxy.getRobotPosition(False)[2]
  27. theta = 0
  28. rotationSpeed = 0.25 #range from -1 to 1
  29. #Walk in a circle
  30. while(abs(theta) < 2*math.pi):
  31. #Update the rotation odometry
  32. (theta, globalTheta) = self.updateTheta(globalTheta, theta)
  33. #Walk in an arc
  34. self.motionProxy.setWalkTargetVelocity(0.5, 0.0, rotationSpeed, 1.0)
  35. #wait for some time
  36. time.sleep(0.1)
  37. self.motionProxy.setWalkTargetVelocity(0.0, 0.0, 0.0, 1.0)
  38. self.onStopped() #~ activate output of the box
  39. def onInput_onStop(self):
  40. self.onUnload() #it is recommended to reuse the clean-up as the box is stopped
  41. self.onStopped() #activate the output of the box

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/670093
推荐阅读
  

闽ICP备14008679号