Pepper 和 NAO 机器人的远程视频流
Posted
技术标签:
【中文标题】Pepper 和 NAO 机器人的远程视频流【英文标题】:Remote video streaming with Pepper and NAO robots 【发布时间】:2019-07-08 18:02:04 【问题描述】:我正在尝试将视频和图像从 Pepper 和 NAO 机器人的摄像头远程传输到我的笔记本电脑。
首先,我使用了一个while循环从NAO的相机中重复捕获图像并通过opencv处理图像。但是,正如您可以想象的那样,这只为我提供了大约 1 fps 的帧速率。
然后我尝试通过opencv的videocapture访问摄像头,但无法正常工作。
接下来,我尝试在 Windows 上使用 gstreamer 1.0 for python,但 Windows 版本似乎缺少一些元素,即使我拥有所有必需的插件(基本、好、坏、丑)。
另外,我试图避免使用 ROS,因为我在使用 Pepper 和 NAO 机器人的 python 2.7 naoqi SDK 时遇到问题。
任何帮助将不胜感激。谢谢
【问题讨论】:
gstreamer 与 mjpeg/jpegenc 或 H263 是最好的解决方案。如果你想要更少的压缩,使用 naoqi 传输灰色的 QVGA 也不错。 我已经尝试使用以下解决方案,它们都使用 jpegenc,但 NAO 的摄像头仍然没有流式传输。流处理是否需要一段时间? 我忘记准确必须要求naoqi释放相机才能手动使用gstreamer。所以停止 naoqi(shell 命令“nao stop”)或只是停止 ALVideoDevice(python 或 qicli api 调用“ALVideoDevice.exit()”) 【参考方案1】:gstreamer 应该已经安装在机器人上,因此您可以使用如下命令在机器人上运行它:
gst-launch-0.10 -v v4l2src device=/dev/video-top !视频/x-raw-yuv,宽度=640,高度=480,帧率=30/1! ffmpeg色彩空间!杰佩根!多部分复用! tcpserversink 端口=3000
...然后您可以从您的计算机打开流,例如使用 vlc:
vlc tcp://ip.of.the.robot:3000
【讨论】:
更新:我通过将设备更改为 /dev/video0 来修复错误,但它仍然没有显示 NAO 的摄像头流 更新:意识到我必须运行 vlc 才能真正查看流。新手移动我的一部分。它在我的计算机上显示流,但有很大的滞后。有关如何解决此问题的任何想法? 当我尝试 gstream 时,所有插件都没有安装,比如 x264 和 hlssink。任何想法都可以在 nao 上安装 gstream 插件。在标准发行版上,它很容易从源代码编译。 naoqi os上有如何从源代码编译的资料吗?【参考方案2】:您可以查看此site 作为方向:
它描述了如何使用 Pepper 实现 25fps VGA 的相机流:
gstreamer 创建一个 UDP (+RTP) 流的前端 (/dev/video0) 和来自 Pepper 的底部 (/dev/video1) 摄像头,然后是流 使用 gscam 在 PC_HOST 上检索并重新映射 /pepper_robot/相机树。
重要提示是禁用自主生活!
【讨论】:
我按照链接中提供的 SSH 命令进行操作,但没有加载摄像头流。好像被卡住了一样。你知道加载流是否需要一段时间吗? 获取流并不需要很长时间。在 nao6 上,如果有两个摄像头,那就太好了。上面的摄像头被其他进程挡住了,但下面的底部立即工作了。以上是关于Pepper 和 NAO 机器人的远程视频流的主要内容,如果未能解决你的问题,请参考以下文章