你觉得这篇文章怎么样? 帮助我们为您提供更好的内容。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
你觉得这篇文章怎么样?
加速了强大的,感官的电脑应用的进程
在以前的一篇文章里,我第一次看到了Intel Joule 570X的开发工具包, 它包含了令人印象深刻的微小的、非常强大的Joule 570X模块、配套的突破板和参考Linux O/S。在这篇文章中,一个Interl RealSense R200相机被加入到这个组合中,连同支持库和示例一起,看看在这样的组合能带来什么样的成果。
Intel RealSense R200
Intel RealSense R200 是一个轻量级的USB 3.0外设,带有一个RGB传感器、两个红外传感器、红外激光投影仪和一个用于机载处理的ASIC。这是一个长范围深度/3D相机开发工具包,用于平板电脑和多功能设备。它并不是针对终端用户,而是作为工程师在创建新的应用程序和硬件平台时使用的工具。
这是英特尔的另一款令人印象深刻的设备,从文件中可以引用:
“R200是一款具有70毫米基线的有源立体相机。在室内,R200使用了一种一级激光装置,将额外的纹理投射到一个场景中以获得更好的立体效果。R200在视差空间中工作,最大搜索范围为63个像素,最终结果是以72cm的最小深度距离为628x468分辨率。在320x240中,最小深度距离可降至32厘米。来自多个R200设备的激光纹理产生了建设性的干涉,使得R200可以在相同的环境中被找到。双红外相机是全局快门,而1080p的RGB成像器是滚动快门。共3个图像传感器作为一个组在这个内部时钟触发,为这个库提供匹配的帧集。.”
图形化桌面
有twm窗口管理器的Windows X系统
在此之前,我首先通过突破板的USB UART访问了Joule模块,然后配置了无线网络,随后通过SSH访问它。出人意料的是,已经被写入到Micro SD卡的引用的Ostro Linux发行版的XT版本中包含了一个X服务器,甚至桌面软件来支持这个版本的发布
如果我输入:
startx
X Windows服务器启动,我们只需与twm窗口管理器进行一个基本会话,它具有一定的回溯性,甚至可能会受到更为苦行主义的程序员的青睐,但显然缺乏我们所期望的现代桌面所具备的那种特性。通过在终端窗口中键入 pkill X
,可以终止这段会话。
要获得一个更熟悉的现代桌面环境,我们只需输入:
startxfce4
随后我们会获得一个文件管理器和其他有用的工具。
建设Librealsense
近期GitHub提交了librealsense
Intel表示,Joule确实支持对RealSense摄像头的支持,如果我们看一下 /usr/lib, 这里肯定会有一个名为librealsense.so的支持库.然而,在撰写当前参考Linux映像的时候是v1.0,这是在今年早些时候发布的,而 GitHub上的librealsense开源项目 似乎经常更新。.
有一点要注意的是,参考Linux O / S不包括包管理器,虽然这样可能看上去很奇怪甚至有些倒退,但是在当你考虑创建使用项目的必要工具时它非常行得通,那么对于包含所需应用程序和库的大规模市场设备,使用定制的Linux映像很容易就可以实现,而对于它来说只有这些要求。
正如所发生的那样,提供的Linux映像完整地包含了我们需要克隆的所有工具和软件依赖项,并从源代码构建一个新的librealsense。
首先,我们需要确保相机没有被插入,以此我们可以得到最新的来源,建立和安装。
# git clone https://github.com/IntelRealSense/librealsense.git
# cd librealsense
# mkdir build
# cd build
# cmake .. -DBUILD_EXAMPLES:BOOL=true
# make && sudo make install
通过udev配置USB子系统,还需要另外两个步骤,这样,在插入和配置适当的配置时,就可以识别RealSense摄像头。
# cp config/99-realsense-libusb.rules /etc/udev/rules.d/
# udevadm control --reload-rules && udevadm trigger
当摄像头被插入时,我们现在应该看到消息,表明它已经被检测到被打印到控制台。
[ 4923.102810] usb 2-2: new SuperSpeed USB device number 3 using xhci_hcd
[ 4923.124075] uvcvideo: Found UVC 1.10 device Intel RealSense 3D Camera R200 (8086:0a80)
在Linux、Windows和Mac OS X上安装librealsense的指南可以在GitHub上使用, 但是请注意,在使用参考Linux时,没有必要更新或修补内核,因为支持已经内置到提供映像的版本中。
蓝牙键盘
早些时候,我们使用了USB无线键盘和鼠标,但由于我们现在使用USB接口连接RealSense摄像头,需要一个键盘和指向设备来控制桌面,因此它决定使用一个带有轨迹点的蓝牙键盘。蓝牙设备的配对 很简单.另一种选择是使用一个带有键盘、鼠标和SR200的USB集线。
运行的例子
来自librealsense枚举设备程序的部分输出
由于库被安装到/usr/local/lib64,我们需要定义一个环境变量,这样它就会被链接器拾取:
# export LD_LIBRARY_PATH=/usr/local/lib64
如果在启动X Windows之前完成此操作,则意味着在Xfce中打开的任何终端会话都将设置环境变量。
这些示例安装到/usr/loca/bin,并且都以cpp-*开头。
cpp-headless
生成的文件:cpp-headless-COLOR
这个简单的示例 捕获了30个框架并将最后一个写到磁盘,结果在运行时创建了4个文件。上面可以看到彩色摄像机的图像。
生成的文件:cpp-headless-INFRARED
下一个是来自第一个红外摄像机。
生成的文件:cpp-headless-INFRARED2
第三个是来自第二个红外摄像机。
生成的文件:cpp-headless-DEPTH
最后的图像有计算的深度。
cpp-tutorial-1-depth
前面的例子被命名为“无头”因为它不需要安装监视器。 但是,这个例子和它同样可以通过SSH会话或UART连接运行,因为深度是通过使用ASCII字符表示的。
cpp-pointcloud
这个 point cloud 示例只显示在一定深度内的对象。
cpp-stride
这个例子是一个低延迟,多线程的演示与回调,并显示视频从RGB和两个红外摄像机,加上深度合成。
还有其他的一些例子,但是我不会让每个人都看到其中的一个,我至少会留下一些惊喜!
总结
让Intel Jouel和运行的RealSenseR200根本没有时间和例子运行顺利,提供了几乎即时的经验,与硬件平台的能力。有趣的是,所有的例子都只有100到200行代码,在较厚的一端包含一个GUI窗口和多个视频流。
当使用这种硬件组合时,我们很容易忘记,不可思议的微小Jouel模块正在完成所有的重任——而且它也做了令人钦佩的工作,提供了非常棒的性能。与Intel RealSenseR200配合使用,这提供了强大的感知计算能力,可用于开发下一代的物联网应用、增强现实应用,以及更多的功能。