首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ROS图像主题框架非常低

ROS图像主题框架非常低
EN

Stack Overflow用户
提问于 2018-07-08 23:33:28
回答 1查看 1.6K关注 0票数 5

我试图让VREP视觉传感器输出与opencv通过ROS api处理。我确实成功地设置了场景并让脚本运行,但问题是,即使没有实际处理(目前我只是直接将图像推送到输出),但问题是我得到了一些类似于4-5fps的文件。

此问题似乎不依赖于图像分辨率,因为1024*512和128*128捕获的结果完全相同。

这也不是阻塞调用的问题,虽然我发布的是单头代码,但我确实有相当复杂的多线程处理管道,在实际的摄像机中执行得相当好(~50 fps)。

vrep一侧的Lua脚本似乎也不是一个问题,因为我尝试使用vrep提供的视频重译示例,它们似乎实现了相当令人满意的fps。

因此,图像流似乎是一个瓶颈。

下面是我的示例脚本:

代码语言:javascript
复制
# coding=utf-8

import rclpy
import rclpy.node as node
import cv2
import numpy as np
import sensor_msgs.msg as msg

import third_party.ros.ros as ros

class 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()

我还必须提到,我使用ROS1运行它,因为我需要使用python3完成处理,而ROS2只支持这个处理,而VREP似乎只适用于ROS1(尽管我刚刚开始处理这些系统,所以我对这种情况并不有信心)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 13:18:55

我遇到了一个类似的问题,一条慢吞吞的蟒蛇。

我使用了标志-OOhttps://docs.python.org/3/using/cmdline.html#cmdoption-o,它减少了执行时间。

此外,还出现了一个新的问题:python/issues/9展示了如何为python改进消息对象的转换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51236751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档