栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

在 Linux Ubuntu 配置 RealSense 开发环境 开发预处理以及了解树莓派3

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在 Linux Ubuntu 配置 RealSense 开发环境 开发预处理以及了解树莓派3

首先,打开Intel Realsense 官网.

(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
#include 
using 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

 

‎英特尔实感摄像头配置、实时捕获、处理和录制‎

‎英特尔实感摄像头发现‎

‎您可以列出连接到系统的所有英特尔实感设备,并通过下面的代码‎

‎片段获取其功能(支持的分辨率、帧速率等)。‎

#include 
open3d::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 文件。您可以通过在捕获后处理或‎‎显示帧来调整代码段以满足您的需求。‎

#include 
open3d::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 配合使用‎

‎安装说明‎
  1. ‎在你的‎‎Raspberry PI 3‎‎上安装‎‎Ubuntu MATE。‎

  2. ‎克隆并编译最新的‎‎英特尔®实感™ SDK 2.0,‎‎方法是按照 Linux 安装 中的说明‎‎进行操作‎‎。在‎‎先决条件‎‎部分,继续执行直到(不包括)内核补丁指令的步骤。‎

‎注意:在某些情况下,RAM 容量不足以编译 SDK,因此,如果编译过程崩溃或退出并显示错误代码,请尝试创建‎‎交换文件‎‎,然后重新编译 SDK。‎

  1. ‎激活‎‎OpenGL 驱动程序。‎
  2. ‎插入 D400 摄像头,使用英特尔实感 SDK‎‎示例‎‎和‎‎工具‎‎。‎

预期产出‎
  1. ‎使用英特尔实感查看器以 480x270 分辨率和 30 FPS 流式传输深度数据:‎

 

        2. ‎具有 424x240 分辨率和 30 FPS 的流深度和红外线:

 

  1. ‎深度和红外点云:‎

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/664297.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号