目录
- 相机型号:图漾科技 FS820 深度相机
【参数信息】【深度相机开发说明文档】【SDK下载】 - 编译环境:Ubuntu 18.04 / C++ / VS code
搭建开发环境
1. 下载 Camport3 SDK
git clone https://github.com/percipioxyz/camport3.git
2. 安装依赖
- LibUSB
sudo apt-get install libusb-1.0-0-dev
- OpenCV 版本高于2.4.8
sudo apt-get install libopencv-dev
3. 编译 SDK
- 复制 libtycam.so 和 libtycam.so.x.x.x 至 /usr/lib 目录
cp -d libtycam.so* /usr/lib/
- 编译Sample 程序
在 …/camport3-master/sample/build 目录下打开终端:
cmake ..
make
在 …/camport3-master/sample/build/bin 目录中会生成 Sample 的可执行程序:
连接相机
1. 相机上电
- 将 FS820 相机的电源线的正负极分别与直流稳压电源 CH1 的正负端相连;
- 根据相机文档,设置直流电压输出为 24V;
- 相机正常工作时,电流应在 0.1A 左右,此时相机指示灯以 1Hz 频率红黄交替闪烁。
2. 网络连接
FS820 相机为网络深度相机,通过千兆以太网线缆直接将相机接入到计算机千兆以太网接口。相机上电启动后约1分钟,计算机和相机可以成功协商获得 169.254.100.166 网段的 IP 地址。
若枚举不到网络深度相机(我使用时就遇到了这种情况):
- 首先修改计算机的 IP 地址:
- 设置为静态 IP 地址:./ForceDeviceIP -static [MAC] [newIP] [newNetmask] [newGateway]
其中,[MAC] 可从设备标签上获得,格式一般为:xx:xx:xx:xx:xx:xx;[newIP] 为指定 IP 地址;[newNetmask] 和[newGateway] 根据 newIP 设置。该指令执行后,网络深度相机 IP 地址会修改为指令指定的 IP 地址,即时生效;相机断电重启后,IP 地址保持为指令配置的地址不变。
运行Sample 示例程序
通过 …/sample/build/bin/ 目录下的可执行文件,简单应用相机【相机示例程序功能说明】
在这里我们运行部分示例程序:
1. SimpleView_FetchFrame
- 功能:深度相机获取图像数据并在数据获取线程中进行 OpenCV 渲染的示例程序
- 运行方式:在 …/sample/build/bin/ 目录下打开终端:
./SimpleView_FetchFrame
- 效果:生成 color彩色图像、depth深度图像、leftIR、rightIR 窗口
2. SimpleView_Point3D
- 功能:获取 3D 点云数据的示例程序
- 运行方式:在 …/sample/build/bin/ 目录下打开终端:
./SimpleView_Point3D
- 本程序需要使用 OpenGL 库,在编译前需要:
(1) 安装 OpenGL 支持:freeglut3 freeglut3-dev libxmu-dev libxi-dev
(2) 在 CMakeList.txt 中修改语句(OFF -> ON):
option(OPENGL_VIEW "Enable GLUT OpenGL point cloud view " ON)
- 效果:生成带有颜色信息的点云图像
运行 Percipio-viewer
Percipio 提供了在 SDK 基础上二次开发的看图软件 Percipio-viewer,支持用户快速浏览深度图、彩色图、红外图和点云图,以及在线调整相机的曝光参数、激光亮度等。
1. 导出 .xyz 点云文件
- Add Source:选择相机ID(207000121895),连接 FS820 相机
- 将 Depth Stream 打开,2D -> 3D,点击右上角保存按钮,并以 .xyz 格式存储
2. 导入 MeshLab 处理点云
- 读取点云:将生成的 .xyz 文件在 MeshLab 中打开
- 点云法向量求解:Curtavures and Oreientation -> Smooths normals on a point set
- 三维点云重建:Remeshing Simplication and Reconstruction -> Surface Reconstruction:Ball Pivoting
- 参考博客:Meshlab读取三维点云、三维点云重建以及三维点云法向量计算