奥比中光Gemini 2L快速上手
一、下载配置环境
1.1 官网下载SDK
进入官网,下载名字中带Gemini2L的SDK。
1.2 配置环境
在Ubuntu中解压打开,按照官方教程进行操作(要是lbusb没有(gemimi2L)设备的话重启试试)
二、测试
2.1 在bin中运行示例
bin中有制作好的基本程序,图片、深度、红外、点云都能获取到
OrbbecSDK_C_C++_v1.5.7_Gemini2L-P02_20230704_b951449_linux_x64_beta
├── 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库文件
2.2 配置cmake
在主目录下配置所需的环境:
# minimum required cmake version: 3.1.15 support vs2019
cmake_minimum_required(VERSION 3.1.15)
project(Sample-HelloOrbbec)
SET(CMAKE_BUILD_TYPE Release)
add_executable(HelloOrbbec HelloOrbbec.cpp)
set_property(TARGET HelloOrbbec PROPERTY CXX_STANDARD 11)
target_link_libraries(HelloOrbbec /home/dxfcv/workspace/sunsirui/3D/OrbbecSDK_C_C++_v1.5.7_Gemini2L-P02_20230704_b951449_linux_x64_beta/SDK/lib/libOrbbecSDK.so)
include_directories(/home/dxfcv/workspace/sunsirui/3D/OrbbecSDK_C_C++_v1.5.7_Gemini2L-P02_20230704_b951449_linux_x64_beta/SDK/include)
link_directories(/home/dxfcv/workspace/sunsirui/3D/OrbbecSDK_C_C++_v1.5.7_Gemini2L-P02_20230704_b951449_linux_x64_beta/SDK/lib)
各设置含义如下:
cmake_minimum_required (VERSION 3.1.15) # cmake最低版本
# project (test) # 项目名
add_executable(main ${PROJECT_SOURCE_DIR}/src/main.cpp) # 生成文件名和源文件名
set(CMAKE_BUILD_TYPE "Debug") # 设置编译模式
set_property(TARGET main PROPERTY CXX_STANDARD 11) # 设置c++版本
target_link_libraries(main ${PROJECT_SOURCE_DIR}/lib/first.so) # 设置链接库
include_directories(${PROJECT_SOURCE_DIR}/include) # 设置头文件目录
link_directories(${PROJECT_SOURCE_DIR}/lib) # 设置链接库文件目录
# LINK_LIBRARIES # 必须绝对路径
# find_package(OpenCV REQUIRED) # 查找库的配置文件
新建生成文件夹并生成:
mkdir build
cd build
cmake ..
make
./HelloOrbbec
就能看到结果了,其他示例都类似
三、CMAKE
3.1 CmakeLists.txt中各设置的意义
cmake_minimum_required (VERSION 3.1.15) # cmake最低版本
# project (test) # 项目名
add_executable(main ${PROJECT_SOURCE_DIR}/src/main.cpp) # 生成文件名和源文件名
set(CMAKE_BUILD_TYPE "Debug") # 设置编译模式
set_property(TARGET main PROPERTY CXX_STANDARD 11) # 设置c++版本
target_link_libraries(main ${PROJECT_SOURCE_DIR}/lib/first.so) # 设置链接库
include_directories(${PROJECT_SOURCE_DIR}/include) # 设置头文件目录
link_directories(${PROJECT_SOURCE_DIR}/lib) # 设置链接库文件目录
# LINK_LIBRARIES # 必须绝对路径
# find_package(OpenCV REQUIRED) # 查找库的配置文件