我正在使用linux上最新版本的webots(Ubuntu18)的NAO_demo_python控制器来闪烁LED并打开/关闭双手
但是,仅执行序列的最后一部分,而不是在单个模拟运行中执行
例如,如果我要求只打开手并点亮LED,则在运行1次后,指示灯将点亮,在运行5次主while回路后,指示灯将缓慢打开。但是,如果我询问点亮的LED,打开手然后关闭手未点亮的LED,那么模拟将仅关闭手未点亮的LED。 代码应该在工作,它在另一个人的计算机上。如果您想在这里使用它(它非常基本,只是nao demo python.py的一个轻微修改):
def run(self):
while robot.step(self.timeStep) != -1:
self.setAllLedsColor(0xff0000) #red leds on
self.setHandsAngle(0.96) #open hand
#rospy.sleep(5) #originally i am to use webots and nao with ros
print("done") #to check how many runs are made
self.setHandsAngle(0.0) #close hand
self.setAllLedsColor(0x000000) #red leds off
还有一件可能很有趣的事情:如果我要求打开和关闭手N次,每次打印一些东西,所有的打印都会一次打印出来,模拟时间在每次主循环运行后从0:0:0跳到0:0:20(+每次运行20),否则,即使模拟运行时间不流动,它也会跳
我试图更新我的驱动程序,从模拟中去除所有阴影和东西,正如webots建议的那样。不行。我在软银上找不到什么东西,我再也找不到关于nao和webots的活跃论坛了
我有第9代i5和GTX1050Ti
问题可能是模拟时间不是1.0x?但最多0.05倍?(去除阴影、灯光效果、所有对象后,使用1个线程等,如下所述:https://www.cyberbotics.com/doc/guide/speed-performance)
摘要:只执行控制器的最后一个序列,如果是一个运动,则在完全执行之前需要几个主循环。同时,每次主循环运行后,时间从0跳到+20秒
有人能帮我把所有的序列都放在模拟上吗:)
听起来
setHandsAngle
函数可能是异步的(在运行下一段代码之前不要等待指针移动到该点)?这可能是您遇到的一些问题的原因。在这种情况下rospy.sleep(5)
应替换为robot.step(5000)
,以便模拟器在发送下一个命令之前有时间移动手多亏您的指示,这项工作:
在紧握的手上。动作:
00:00:000为执行时刻,0.00为手的角度(方阵接方阵)
多谢各位!没有你的建议,我不可能意识到这一点
同步webots/ros仍然没有解决,但我最初的问题是。谢谢大家!
相关问题 更多 >
编程相关推荐