为了账号安全,请及时绑定邮箱和手机立即绑定

ROS图像主题帧率极低

ROS图像主题帧率极低

弑天下 2021-04-09 14:15:08
我正在尝试通过ROS API使用opencv处理VREP视觉传感器输出。我确实设法设置了场景并使脚本运行,但是问题是即使没有实际处理,我的速度也达到了4-5 fps(目前我只是将图像直接推送到输出)。这个问题似乎并不取决于图像分辨率,因为1024 * 512和128 * 128捕获都可以得到完全相同的fps。这也不是阻塞呼叫的问题,尽管我发布的是单头代码,但我确实有相当复杂的多线程处理管道,该管道在实际摄像机(〜50 fps)下表现良好。VREP方面的Lua脚本似乎也不是问题,因为我尝试使用vrep提供的视频重新翻译示例,并且它们似乎达到了令人满意的fps。因此,图像流似乎是一个瓶颈。这是我的示例脚本:# coding=utf-8import rclpyimport rclpy.node as nodeimport cv2import numpy as npimport sensor_msgs.msg as msgimport third_party.ros.ros as rosclass TestDisplayNode(node.Node):    def __init__(self):        super().__init__('IProc_TestDisplayNode')        self.__window_name = "img"        self.sub = self.create_subscription(msg.Image, 'Vision_sensor', self.msg_callback)    def msg_callback(self, m : msg.Image):        np_img = np.reshape(m.data, (m.height, m.width, 3)).astype(np.uint8)        self.display(np_img)    def display(self, img : np.ndarray):        cv2.imshow(self.__window_name, cv2.cvtColor(img, cv2.COLOR_RGB2BGR))        cv2.waitKey(1)def main():    ros_core = Ros2CoreWrapper()    node = TestDisplayNode()    rclpy.spin(node)    node.destroy_node()    rclpy.shutdown()if __name__ == "__main__":    main()我还必须提到我是用ros bridge运行的,因为我需要使用python3完成处理,而python3仅受ROS2支持,而VREP似乎仅与ROS1兼容(尽管我刚刚开始使用这些系统,所以在那种情况下,我没有信心)。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信