【发布时间】:2020-05-07 11:21:44
【问题描述】:
我正在使用 linux (ubuntu 18) 上最新版本的 webbots 的 NAO_demo_python 控制器来闪烁 LED 并打开/关闭手。
但是,仅执行序列的最后一部分,而不是在单个模拟运行中。
例如如果我要求只打开手并点亮 LED,则在 1 次运行后,灯将亮起,在主 while 循环运行 5 次后,它将打开 - 非常缓慢 -。但是,如果我问点亮的 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),否则,即使模拟运行时间不流动,它也会跳转。
我尝试更新我的驱动程序,以消除模拟中的所有阴影和东西,正如 webbots 建议的那样。没办法。我在 Softbank 上找不到任何东西,我再也找不到关于 nao 和 webbots 的活跃论坛...
我有一台 i5 第 9 代和一台 GTX1050Ti。
问题可能是模拟时间不是 1.0 倍?但最多 0.05 倍? (在去掉阴影、灯光效果、所有对象、使用 1 个线程等之后,如下所述:https://www.cyberbotics.com/doc/guide/speed-performance)
摘要:仅执行控制器的最后一个序列,如果是运动,则需要几个主循环才能完全执行。同时,每次主循环运行后,时间从 0 秒跳到 +20 秒。
请有人帮我完成所有序列的模拟工作:)
【问题讨论】:
标签: python controller nao-robot webots naos-project