(Intel® RealSense™ Computer Vision - Depth and Tracking cameras (intelrealsense.com))
将鼠标移动至 PRODUCTS , 然后点击Depth Camera D435i .
进入下一个界面,移动到图示的部分,点击OpenCV或者C/C++,进入下一个界面内.
点击左上角的SDK 2.0
点击 那只企鹅.(Between Windows and Android )
然后你会进入图示界面.
然后按着Realsense SDK 2.0 Build Guide 进行操作(一定要按着里面的顺序来,并且里面的代码占了 配置 Realsense 环境的大部分);
注意:检查更新还有后面根据不同版本选择不同方式是很重要的。
可以点击Linux Ubuntu界面右上角,然后选择Linux 系统,查看该系统的版本.
这部分并不清楚具体应该安装哪个版本,主要依据后续开发.
安装和修补程序相关问题疑难解答( 可参考)
| 错误 | 原因 | 更正步骤 | |
|---|---|---|---|
| git.launchpad... access timeout | 防火墙后面 | 配置代理服务器 | |
| dmesg:... uvcvideo: module verification failed: signature and/or required key missing - tainting kernel | 自内核 4.4-30+ 以来发出的标准警告 | 仅通知 - 不影响模块的功能 | |
| sudo modprobe uvcvideo生产dmesg: uvc kernel module is not loaded | 修补的模块内核版本与常驻内核不兼容 | 使用 验证实际的内核版本。 还原并继续从"使 Ubuntu 保持最新"步骤uname -r | |
| 的执行失败./scripts/patch-video-formats-ubuntu-xenial.shfatal error: openssl/opensslv.h | 缺少依赖项 | 从Video4Linux后端准备步骤安装openssl包 |
如果安装插件,脚本后,出现异常,可在终端执行完毕后重新开机。
更新内核运行代码(4.4.0-50以上)
uname -r
更新cmake(需要3.22及以上版本)
cmake -version
可以在Ubuntu商店直接搜索Cmake下载:
是置顶的那个Cmake .
安装gcc-c++(gcc 5.00以上):
gcc -v
安装依赖
sudo apt-get install libusb-1.0-0-dev pkg-config libgtk-3-dev sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
下载安装包
https://github.com/IntelRealSense/librealsense/tags
建议在上述网址选择合适的版本进行安装,测试2.49.0跑ros点云很卡,卸载安装2.48.0
sudo git clone https://github.com/IntelRealSense/librealsense
添加驅動(不插設備)
(1)x86运行
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules && udevadm trigger ./scripts/patch-realsense-ubuntu-lts.sh
(2)arm运行
./scripts/patch-realsense-ubuntu-L4T.sh ./scripts/setup_udev_rules.sh
安装Openssl库:
sudo apt-get install libssl-dev安装编译
cd librealsense/ sudo mkdir build cd build
(1) x86運行cmake(程序中有很多例子,若想編譯example,如無例子添加可省略,编译点云-DBUILD_PCL_EXAMPLES=true)
cmake ../ -DBUILD_EXAMPLES=true sudo make && make install
(2)jeston 带有cuda加速
cmake .. -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DFORCE_RSUSB_BACKEND=false -DBUILD_WITH_CUDA=true && make -j$(($(nproc)-1)) && sudo make install
输入:
realsense-viewer
OpenCV安装及环境配置先跳过,先看Open3D与Realsense的配合使用.
开放3D
采用 Open3D 的英特尔实感
Open3D是一个开源库,支持快速
开发用于3D数据处理的软件,包括场景重建,
可视化和3D机器学习。
英特尔实感 ( SDK 2.0) 已集成到 Open3D (v0.12+) 中,您可以通过
C++ 和 Python API 使用它,
而无需在 Linux、macOS 和 Windows 上安装单独的 SDK。旧版本的 Open3D
通过单独安装 SDK 1.0 和
.librealsenselibrealsenselibrealsensepyrealsense
在 GitHub 上的位置在这里
获得支持英特尔实感的 Open3D
有关更多
详细信息,请参阅Open3D文档,例如:
- 获取 Open3D 源代码并从源代码构建。
- 使用 Open3D 库构建C++项目。
- 教程和示例。
- C++和Python API文档。
从源代码编译 (C++)
要使用英特尔实感支持从源代码构建 Open3D,请在 CMake 配置步骤中进行设置。您也可以添加其他配置选项(例如:并且可能很有用)。
BUILD_LIBREALSENSE=ONBUILD_GUI=ONBUILD_PYTHON_MODULE=ON
cmake -D BUILD_LIBREALSENSE=ON -D/path/to/Open3D/source/
读取英特尔实感包文件
英特尔实感包文件示例
您可以使用此脚本下载英特尔实感包数据集示例(在 Open3D 存储库中):
python examples/python/reconstruction_system/scripts/download_dataset.py L515_test
检查脚本以获取更多 RS 包数据集。
下面是一个C++代码片段,显示了如何读取
使用 Open3D 或 .请注意,不支持常规 ROSbag
文件。在RSBagReader
文档中的 C++ API
中查看更多详细信息和可用功能(例如获取
时间戳、将深度流与颜色流对齐以及获得内部校准)
realsense-viewer
#includeusing namespace open3d; t::io::RSBagReader bag_reader; bag_reader.Open(bag_filename); auto im_rgbd = bag_reader.Nextframe(); while (!bag_reader.IsEOF()) { // process im_rgbd.depth_ and im_rgbd.color_ im_rgbd = bag_reader.Nextframe(); } bag_reader.Close();
例子
C++ RS 包文件查看器
此C++示例,用于播放英特尔
实感包文件中的颜色和深度流。它还会打印出有关文件中视频流的
元数据。按 [空格键] 暂停/恢复,按 [ESC] 退出。
make RealSenseBagReader wrappers/open3d/RealSenseBagReader --input L515_test.bag
英特尔实感摄像头配置、实时捕获、处理和录制
英特尔实感摄像头发现
您可以列出连接到系统的所有英特尔实感设备,并通过下面的代码
片段获取其功能(支持的分辨率、帧速率等)。
#includeopen3d::t::io::RealSenseSensor::ListDevices(); import open3d as o3d o3d.t.io.RealSenseSensor.list_devices()
以下是仅连接一台L515相机时的示例输出:
[Open3D INFO] [0] Intel RealSense L515: f0141095 [Open3D INFO] color_format: [RS2_FORMAT_BGR8 | RS2_FORMAT_BGRA8 | RS2_FORMAT_RGB8 | RS2_FORMAT_RGBA8 | RS2_FORMAT_Y16 | RS2_FORMAT_YUYV] [Open3D INFO] color_resolution: [1280,720 | 1920,1080 | 960,540] [Open3D INFO] color_fps: [15 | 30 | 6 | 60] [Open3D INFO] depth_format: [RS2_FORMAT_Z16] [Open3D INFO] depth_resolution: [1024,768 | 320,240 | 640,480] [Open3D INFO] depth_fps: [30] [Open3D INFO] visual_preset: [RS2_L500_VISUAL_PRESET_CUSTOM | RS2_L500_VISUAL_PRESET_DEFAULT | RS2_L500_VISUAL_PRESET_LOW_AMBIENT | RS2_L500_VISUAL_PRESET_MAX_RANGE | RS2_L500_VISUAL_PRESET_NO_AMBIENT | RS2_L500_VISUAL_PRESET_SHORT_RANGE] [Open3D INFO] Open3D only supports synchronized color and depth capture (color_fps = depth_fps).
这些数据也可以通过编程方式获得,以根据自定义规格配置摄像机
(例如:分辨率小于720p)并
独立配置多个摄像机。
英特尔实感摄像头配置
英特尔实感摄像头可以使用简单的配置文件进行配置
。请参阅英特尔实感文档
,了解配置值集。支持的配置选项
将取决于设备和其他所选选项。以下是 Open3D 支持的
选项:json
- 序列号:选择特定设备,留空以选择第一
个可用的设备。 - color_format:彩色框架的像素格式。
- color_resolution:(宽度、高度):保留 0 可让英特尔实感
选择支持的宽度或高度。 - depth_format:深度帧的像素格式。
- depth_resolution:(宽度、高度):保留 0 可让英特尔实感
选择支持的宽度或高度。 - fps:深度和颜色流的通用帧速率。保留 0
可让英特尔实感选择支持的帧速率。 - visual_preset:控制设备上的深度计算。
支持的值特定于产品线(SR300、RS400、L500)。
留空以选取默认值。
下面是一个示例配置文件,用于从任何连接的英特尔实感摄像头捕获 30fps、540p
彩色和 480p 深度视频。视频
宽度由英特尔实感选择。我们还将 设置为
更好地捕获远处的对象。jsonvisual_presetRS2_L500_VISUAL_PRESET_MAX_RANGE
{
"serial": "",
"color_format": "RS2_FORMAT_RGB8",
"color_resolution": "0,540",
"depth_format": "RS2_FORMAT_Z16",
"depth_resolution": "0,480",
"fps": "30",
"visual_preset": "RS2_L500_VISUAL_PRESET_MAX_RANGE"
}
英特尔实感摄像头捕获、处理和录制
以下代码片段演示如何从英特尔实感摄像头捕获实时 RGBD 视频。它们捕获前150帧,并将它们记录到RS bag文件中。bag文件可以使用Open3D工具,实感查看器播放。您还可以使用 ROS 工具(如
rosbag
、rqt_bag和
rviz)来检查、播放和修改bag 文件。您可以通过在捕获后处理或显示帧来调整代码段以满足您的需求。
#includeopen3d::t::io::RealSenseSensorConfig rs_cfg; open3d::io::ReadIJsonConvertible(config_filename, rs_cfg); RealSenseSensor rs; rs.InitSensor(rs_cfg, 0, bag_filename); rs.StartCapture(true); // true: start recording with capture for(size_t fid = 0; fid<150; ++fid) { im_rgbd = rs.Captureframe(true, true); // wait for frames and align them // process im_rgbd.depth_ and im_rgbd.color_ } rs.StopCapture(); import json import open3d as o3d with open(config_filename) as cf: rs_cfg = o3d.t.io.RealSenseSensorConfig(json.load(cf)) rs = o3d.t.io.RealSenseSensor() rs.init_sensor(rs_cfg, 0, bag_filename) rs.start_capture(True) # true: start recording with capture for fid in range(150): im_rgbd = rs.capture_frame(True, True) # wait for frames and align them # process im_rgbd.depth and im_rgbd.color rs.stop_capture()
请注意,对于任何实时应用(如实时捕获和处理),在帧间隔内完成帧处理非常重要(对于 30fps 录制,约为 33 毫秒)。否则,您可能会遇到帧掉落。对于高分辨率捕获,您可以通过在捕获期间进行设置并在读取bag 文件时执行帧对齐来延迟帧对齐。
align_depth_to_color=false
这是一个完整的C++示例,显示了将实时捕获和
录制到包文件的可视化过程。录制可以使用
[空格]暂停/恢复。使用 [ESC] 停止捕获并退出。可以使用此示例捕获
自己的数据集:
make RealSenseRecorder wrappers/open3d/RealSenseRecorder --config ../wrappers/open3d/rs_default_config.json --record test_data.bag
将深度摄像头与树莓派 3 配合使用
安装说明
-
在你的Raspberry PI 3上安装Ubuntu MATE。
-
克隆并编译最新的英特尔®实感™ SDK 2.0,方法是按照 Linux 安装 中的说明进行操作。在先决条件部分,继续执行直到(不包括)内核补丁指令的步骤。
在你的Raspberry PI 3上安装Ubuntu MATE。
克隆并编译最新的英特尔®实感™ SDK 2.0,方法是按照 Linux 安装 中的说明进行操作。在先决条件部分,继续执行直到(不包括)内核补丁指令的步骤。
注意:在某些情况下,RAM 容量不足以编译 SDK,因此,如果编译过程崩溃或退出并显示错误代码,请尝试创建交换文件,然后重新编译 SDK。
- 激活OpenGL 驱动程序。
- 插入 D400 摄像头,使用英特尔实感 SDK示例和工具。
预期产出
- 使用英特尔实感查看器以 480x270 分辨率和 30 FPS 流式传输深度数据:
2. 具有 424x240 分辨率和 30 FPS 的流深度和红外线:
- 深度和红外点云:



