我可以加快OpenCV的'raspicam_node'发布速度吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (17)

我们正在尝试使用ros和turtlebot开发自动驾驶。我正试图从raspicam_node获取一个图像并通过一个车道仪式来驱动,但是从turtleBot3上的raspicam_node发布它太慢了。当然,从远程PC获取它的速度很慢,因此很难获得图像。

因此,我们通过仅存储图像并将“已接收”打印到控制台中来测试它以减慢速度。但是,我们已经验证控制台中的文本每10秒输出一次。因此,我认为这不是我们实现的代码的开销。

TurtleBot和远程PC之间的连接连接到100Mbps的'IpTime'无线网络机器。

是因为这种慢速无线连接还是我必须设置TurtleBot3的raspicam_node?

提问于
用户回答回答于

答案是不在Raspberry PI中对OpenCV或ROS进行任何处理/发布。这是一个非常慢的平台,不允许你做复杂的操作。

我的建议是在处理大图像数据时,通过Raspbeery PI上的所有ROS和OpenCV。

(1)如果你真的必须使用ROS,至少要使用来自的压缩流

请看这里了解它是如何完成的http://wiki.ros.org/image_transport

rosrun image_transport republish [in_transport] in:=<in_base_topic> [out_transport] out:=<out_base_topic>

(2)另一种低成本的发送方式是使用v4l2驱动程序,所以它的任何一个

sudo modprobe bcm2835-v4l2
cvlc v4l2:///dev/video0 --v4l2-width 1920 --v4l2-height 1080 --v4l2-chroma h264 --sout '#standard{access=http,mux=ts,dst=0.0.0.0:22322}'

或直接使用ffmpeg发送

ffmpeg -f v4l2 -framerate 30 -video_size 800x448 -i /dev/video0 -i /home/pi/Desktop/sound/logo.png -codec:v h264 -r 30 -s 800x448 -bf 0 -g 30 -bufsize 8000k -maxrate 8000k -filter_complex "[0:v][1:v] overlay=(W-w)/2:(H-h)/2:enable='gte(t,1)'" -preset ultrafast -tune zerolatency -f h264 udp://192.168.5.10:23003

你必须保持-PRESET超快-tune zerolatency

通过这种方式,滞后应该是最小的,因为你不做任何处理,而只是通过互联网转发。在GCS中,您可以使用opencv或从http或udp服务器地址获取所需的其他工具

然后,您可以使用地面控制站上的图像流执行任何操作。例如单眼深度估计,物体检测,定位。

如果需要,将摄像机流的尺寸减小到640 * 480,它将加快输出速度。即使是质量最低的无线也应该能够处理压缩的640 * 480流。

ros只需要在低更新频率下处理控制命令

热门问答

在serverless中,我能否自己host 一个express(nodejs)的服务?

Tina

腾讯云 · 产品经理 (已认证)

Go Serverless!
推荐
您好,可以这样的。您可以参考如下文档,申请下http function 您可以使用常见的 WEB 框架(如 Nodejs Web 框架:Express、Koa)编写 HTTP 函数。而 WEB 框架内置的一些中间件(如cors)也会极大的方便您的业务编写 文档链接 https:...... 展开详请

使用有过期时间的签名往Cos存储桶中上传文件,若上传还在进行中签名过期,上传是否会终止?

galenye

腾讯 · 工程师 (已认证)

对象存储专业搬砖工
推荐已采纳

如果你是使用的简单上传,它能接收5g以内的文件,那签名过期的文件还在上传的话,是没影响的,因为签名判断是在cos接受到请求时。

如果你是使用的sdk等封装的分片上传,那其实是多个请求去上传文件,如果签名过期了,那上传到某一刻,后面的请求都会返回403

存储桶的默认加速域名 cdn 如何更改业务类型, 即把静态加速改成下载加速?

Jinqn

腾讯 · 高级工程师 (已认证)

腾讯云COS前端开发
推荐

我理解你意思是,浏览器打开的时候要下载,不要直接显示。

通过存储桶的文件 Content-Type 来控制

为何我使用.Net API 生成的临时密钥无法进行文件操作?

推荐
cos有自己的密钥系统,应该是在控制台上,访问管理,API密钥,项目密钥那里,或者去看看cos的文档是如何说明的吧。 你通过ms接口创建cos临时密钥,也许的确会被限制一些,这个需要ms这个产品的人回答下比较好。 生成临时密钥和哪个SDK无关,可以直接在线调用也可以生成,通过AP...... 展开详请

tencentcloud-sdk-php-master github代码上没有vendor文件夹?

推荐
因为和composer冲突,因此导出时没有包含vendor目录。如果需要,可以考虑git clone方式拿到,或者到https://cloud.tencent.com/document/sdk/PHP#.E9.80.9A.E8.BF.87.E6.BA.90.E7.A0.81.E5...... 展开详请

织云安装包在哪里下载?

使用织云,必须要满足1、2步骤1、机器要同步到c.isd.com系统。简单讲,就是在c.isd.com上有这台机器(如果c.isd.com没有,而公司的cmdb【cmdb.oa.com】有,则需要同步到c.isd.com即可,同步需要联系zhiyunhelper同步,而没有的话,...... 展开详请

扫码关注云+社区

领取腾讯云代金券