StereoPi-我们用于研究计算机视觉,无人机和机器人的硬件

大家好!

今天,我想向您介绍我们基于Raspberry Pi计算模块的新硬件,该模块旨在研究计算机视觉并安装在机器人和无人机上。 实际上,这是一个“智能”立体摄像机-它支持同时使用两个摄像机,并具有真正的树莓作为“心脏”,最重要的是,它可以与Raspbian的普通版本一起使用。
组装后的解决方案如下所示,安装了两个摄像头和一个Pi Compute模块。

图片

该设备可与Raspbian的普通版一起使用。 您只需要复制我们的dtblob.bin文件即可启用双摄像头支持。

这意味着您可以使用常用的raspivid,raspistill和其他实用程序来处理图像和视频。

作为参考,在2014年Raspbian中已经出现了对立体声模式的支持,同时发布了第一版Raspberry Pi Compute。 您可以在Raspberry论坛上查看立体声支架开发的历史

在描述技术细节之前,让我向您展示一些有关设备工作原理的真实示例。

1.图像捕捉


代码:

raspistill -3d sbs -w 1280 -h 480 -o 1.jpg 

您会得到以下信息:

图片

您可以在此处下载原始捕获的图像。

2.视频拍摄


代码:

 raspivid -3d sbs -w 1280 -h 480 -o 1.h264 

您会得到以下信息:

图片

您可以从此链接下载原始视频文件(转换为mp4)。

3.使用Python和OpenCV构建深度图


图片

在这种情况下,我使用了先前3Dberry项目( https://github.com/realizator/3dberry-turorial )中经过稍微修改的代码。

为了获得这些图片和视频,我们使用了这对相机:

图片

在无人机上安装时,我们通常使用广角(160度),它们是:

图片

现在更多关于铁片本身




技术细节


前视图:

图片

顶视图:

图片

主要特点:
尺寸: 90x40毫米
相机: 2 x CSI 15通道电缆
GPIO: 40个经典的Raspberry PI GPIO
USB: 2 x A型USB,1个针脚上的USB
以太网: RJ45
内存: Micro SD(用于CM3 Lite),其余NAND(闪存)
显示器: HDMI输出
电源: 5V DC
支持的Raspberry: Raspberry Pi计算模块3,Raspberry Pi CM 3 Lite,Raspberry Pi CM 1
支持的摄像机类型: Raspberry Pi摄像机OV5647,Raspberry Pi摄像机Sony IMX 219,HDMI输入(单模式)
对于NAND固件: MicroUSB连接器
电源开关:是的,就是这样。 不再需要用于电源重启的MicroUSB插件!

一点历史


总的来说,这个想法本身早在2015年就出现了。 第一个版本于2015年底诞生。 有人知道我们的团队对各种机械小玩意的遥控有一种“时尚”,因此在第一个版本中,板上安装了附加芯片,该芯片为我们提供了16个PWM输出-用于转向,电机和其他有用的东西。

图片

那时,市场上只有第一个版本的Compute模块,它是第一个树莓派的旧处理器。 一块铁片在捕获,压缩和流式传输视频方面做得很好,但是最后我们遇到了处理器。 例如,将h264流同时提供给飞行员和将RTMP流同时提供给服务器已经不够了。 对于机器人制造商来说,主要的愿望是使用深度图和SLAM来构建空间图-这里完全没有处理器。

图片

在这里,您将看到Compute Module 3版本,它们立即从第一个版本“跳”到了第三个版本,从而使处理器从第三个Raspberry中移出。 现在,它的功能已经足够快速计算。

但是,事实证明,这些世代似乎是兼容的,但事实并非如此。 计算模块3宽了一毫米的事实并没有困扰我们。 但是营养要求已经严重改变。

此外,我们已经积累了有关使用第一个版本的结果的评论,我们决定发布一个新版本,其中进行了所有累积的更改。

第二代修复了什么


增加了对计算模块3的支持

我们有一个可切换的电源方案,因此,如果需要,您可以使用第一个覆盆子。 这里的选择很简单:如果只需要广播视频,那么第一个覆盆子就足够了。 另外,它的功耗和散热量几乎减少了三倍。 而且您需要计算一些更严重的内容(一些视频或计算机视觉)-将第三个。

部署模块“板上的芯片”

在第一个版本中,板上的SoDIMM连接器类型混杂在一起,结果,计算机模块起了“母”的芯片的作用。 在计算模块1上,这没有引起问题-百分比略有变暖,并且板之间有足够的瓶颈来进行正常冷却。 对于第三个,这种技巧将无法解决,因此我们“转动”了连接器,这需要从头开始重新布线整个电路板。

本机microSD支持

默认情况下,第一个计算机模块在板上具有内置的FLASH,并且不能与microSD一起使用。 我们试图在此处添加MicroSD作为第二个驱动器,但是遇到了一个大麻烦。 在树莓论坛上与内核工作人员进行的通信表明,此问题并不容易(加载时,模块会随机选择NAND或MicroSD进行引导)。 结果,在当前版本中,我们按照参考树莓开发板上的方式进行了接线。 如果是Compute Module Lite (不带内置NAND),我们将像普通树莓一样使用microsd。 如果版本不是Lite或第一个模块,则microsd不可用。

向上移动相机接口,并使其间隔65毫米

在第一个版本中,连接器沿电路板平面定向。 一件小事,但在该案例中进行了许多安装之后,几个问题变得很明显。

  • 摄像机的一个环从连接器中伸出,建议不要弯曲(尤其是蓝色增强部分)。 这愚蠢地占用了机壳中不必要的空间并阻止了安装。
  • 连接器非常紧密-从而无法使用电缆。
  • 在这种情况下,摄像头通常位于65毫米立体声底座上,并且板上的电缆也在附近。 事实证明,每个环必须弯曲得不自然-断裂,撕裂,从连接器中弹出。

卸下芯片和附加的16 PWM

分析了许多最近的项目后,我们意识到此功能无关紧要。 大多数情况下,软件Raspberries PWM就足够了。

增加了电源开关

那些至少与覆盆子打交道的人了解它的含义:-)

在侧面的引脚上添加了第三个USB

在我们的树莓项目中,我们经常需要板载USB软件狗。 如果它们卡在板上的连接器中,则有一个模块向外伸出。 尝试使用USB延长线会加剧该问题。 只有一种选择-将导线直接焊接到覆盆子。 我们添加的侧面引脚使我们能够制作一条简单的延长线,并将USB加密狗(通常为WiFi或4G)直接沿电路板放置,整个经济性非常适合紧凑的外壳。

今天我想告诉你这样的故事。 感谢您的关注,随时准备回答问题。

Source: https://habr.com/ru/post/zh-CN415587/


All Articles