我尝试使用python来读取webots摄像头图像,并将其发布到ros主题。但是,当我在主循环中编写: Img = camera.getImageArray()时,模拟世界将非常慢,速度类似于0.1x。我的程序是这样的:
from controller import Robot, Camera
robot = Robot()
timestep = int(robot.getBasicTimeStep())
camera = Camera('camera')
camera.enable(100)
while robot.setp(timestep) != -1:
img = camera.getImageArray()
pass
如果我从主循环中删除这段代码"img = camera.getImageArray()“,那么模拟速度就会提高到正常速度。我的webots版本是Webots R2020b-rev1,操作系统是Windows10 64位。我也尝试在Ubuntu16.04lts中运行这段代码,它是一样的。有人能帮我解决这个问题吗?
发布于 2020-12-18 21:17:22
您应该使用getImage()
方法而不是getImageArray()
方法。documentation说:“在Python语言中获取相机图像的另一种方法是使用getImageArray方法,该方法返回一个list。这个三维列表可以直接用于访问RGB像素值。然而,该方法的运行速度比getImage方法慢得多。”
此外,Webots的最新版本是R2021a,运行速度可能比R2020b-rev1更快。
https://stackoverflow.com/questions/65352493
复制相似问题