我是ROS的新手。我的应用程序是在Qt+OpenCV中开发的,它是跨平台的。它连接到摄像头并显示图像和来自车辆总线的CAN信号。现在我想将图像和CAN信号实时传输到ROS系统。在谷歌上搜索了几个小时后,似乎有几个选项:
-
使用ros_bridge:http://wiki.ros.org/rosbridge_suite这种方法需要一个websocket并使用JSON格式传输数据。需要ROS侧运行网桥服务器。然后,我的qpp需要运行一个webbroswer,并打开使用带有roslibjs JavaScript库的websocket的HTML页面。我还没有弄清楚如何传输iamage对象以及如何在ROS端接收。任何帮助都将不胜感激。
-
我发现:http://wiki.ros.org/web_video_server但它通过HTTP将图像从ROS流式传输到网站。相反。
我的问题是,哪种方式最好、最快地实现对将图像传输到ROS的支持?
我不能使用ROS Qt插件来重新编译我的应用程序,因为这是一个太大的项目,不适合我的情况。
谢谢你的帮助。
我有一个类似的项目,我们最终使用OpenCV读取图像,然后只使用cv_bridge将其转换为ROS消息并发布到主题中。这真的很简单,但我们必须小心图像大小/数据速率,以避免网络容量过大。
在Qt应用程序中启动ros节点是很简单的,即使没有ros Qt。也许像这个例子中的一样?很明显,一旦你有了节点,只需创建合适的发布者并将其发送到ROS就很简单了。使用cv_bridge
包很容易,只需遵循C++或Python的教程即可。
如果有帮助,请告诉我。