Fork me on github

Linux环境下奥比中光摄像头开发环境搭建(基于Orbbec SDK)

驱动安装

奥比中光相机,可以Linux平台下设备作为普通CMOS相机加载,目前流行Linux平台都已经内置相应驱动,不需要额外安装驱动,只需要安装一个依赖软件freeglut3即可。

sudo apt install freeglut3

freeglut3

将摄像头插入电脑,可以使用命令查看相机是否成功加载了。

lsusb

lsusb
图中001总线的005、007设备就是奥比中光的摄像头设备,分别为深度相机和RGB彩色相机。

下载并配置Orbbec SDK

打开奥比中光的官方下载链接,https://developer.orbbec.com.cn/download.html?id=249,选择与自己操作系统和硬件匹配的软件包下载。

解压下载好的安装包文件,每个文件夹的功能如下所示。

OrbbecSDK_C_C++_v1.4.3_20221102_8c48afb_linux_x64_release
├── 99-obsensor-libusb.rules    // udev设备匹配规则
├── Examples                // 示例程序目录
│   ├── bin                 // 编译的二进制文件存放目录
│   ├── c                   // C语言例程
│   │   ├── Sample-ColorViewer      // 演示使用SDK获取彩色数据并绘制显示、获取分辨率并进行设置、显示彩色图像
│   │   ├── Sample-DepthViewer      // 演示使用SDK获取深度数据并绘制显示、获取分辨率并进行设置、显示深度图像
│   │   ├── Sample-HelloOrbbec      // 演示连接到设备获取SDK版本和设备信息
│   │   ├── Sample-HotPlugin        // 演示设备热拔插监控,检测到设备上线自动连接设备打开深度流,检测到设备掉线自动断开设备连接
│   │   ├── Sample-InfraredViewer   // 演示使用SDK获取红外数据并绘制显示、获取分辨率并进行设置、显示红外图像
│   │   ├── Sample-PointCloud       // 演示生成深度点云或RGBD点云并保存成ply格式文件
│   │   └── Sample-SensorControl    // 演示对设备、传感器控制命令的操作
│   └── cpp                 // C++语言例程
│       ├── Sample-ColorViewer      // 演示使用SDK获取彩色数据并绘制显示、获取分辨率并进行设置、显示彩色图像
│       ├── Sample-DepthViewer      // 演示使用SDK获取深度数据并绘制显示、获取分辨率并进行设置、显示深度图像
│       ├── Sample-HelloOrbbec      // 演示连接到设备获取SDK版本和设备信息
│       ├── Sample-HotPlugin        // 演示设备拔插回调的设置,并获取到插拔后处理的流
│       ├── Sample-ImuReader        // 获取IMU数据并输出显示
│       ├── Sample-InfraredViewer   // 演示使用SDK获取红外数据并绘制显示、获取分辨率并进行设置、显示红外图像
│       ├── Sample-MultiDevice      // 演示对多设备进行操作
│       ├── Sample-Playback         // 载入视频文件进行回放
│       ├── Sample-PointCloud       // 演示生成深度点云或RGBD点云并保存成ply格式文件
│       ├── Sample-Recorder         // 录制当前视频流到文件
│       ├── Sample-SaveToDisk       // 获取彩色和深度图并存储为png格式
│       ├── Sample-SensorControl    // 演示对设备和传感器控制命令的操作
│       └── Sample-SyncAlignViewer  // 演示对传感器数据流对齐的操作
├── install.sh              // udev设备匹配规则的安装脚本
├── README.md               // 说明文档
└── SDK                     // 存放SDK头文件与库文件(写自己的程序的时候只需要这个目录中的文件)
    ├── include             // SDK头文件目录
    │   └── libobsensor
    │       ├── h           // C语言头文件
    │       └── hpp         // C++语言头文件
    └── lib                 // SDK库文件

在该文件的目录中,使用如下命令可以安装依赖libudev-dev, libusb-dev软件,并运行安装脚本。

Linux系统默认对USB设备的直接访问需要root权限,可以通过rules配置文件解决。通过sudo命令执行·install.sh·脚本,即可完成rules配置文件的安装。成功执行安装脚本后,再接入设备时生效(已接入的设备需要重新拔插)。

sudo apt install libudev-dev libusb-dev
chmod +x ./install.sh
sudo ./install.sh


使用lsusb命令检查是否能够正常识别到摄像头。

编译环境安装

SDK的安装包为我们提供了一系列的例程。进入Example目录,调用./SampleConfig.sh测试并配置编译所所需的基础环境,之后安装一些编译所需的依赖软件。

cd Example/
sudo bash ./SampleConfig.sh
sudo apt install build-essential cmake libopencv-dev freeglut3-dev libudev-dev libusb-1.0-0-dev

例程编译

使用CMake编译所有的例程。

mkdir build
cd build/
cmake ..
make

在bin目录中,就可以看到编译好的二进制例程。

运行DepthViewer深度摄像头程序。

环境说明

OS: Ubuntu 22.04 x86_64
相机:Orbbec Astra Pro Plus

参考文件

https://developer.orbbec.com.cn/technical_library.html?id=18
https://developer.orbbec.com.cn/technical_library.html?id=41

posted @ 2022-12-28 23:25  fang-d  阅读(3488)  评论(0编辑  收藏  举报