最近项目用到了结构光的深度相机,以前都是纯双目去做项目,所以写个博文记录下过程。
图漾深度相机技术文档地址:图漾深度相机技术文档地址
相机介绍:我用的是FM850系列,由于项目的原因,精度要求并不高,我的工作距离大概1500mm。通信接口选的是网口的。
一、硬件连接
通过千兆以太网线缆直接将相机接入到计算机千兆以太网接口。
相机上电启动后约1分钟,计算机和相机可以成功协商获得 169.254.xx.xx 网段的 IP 地址。通过 SDK 示例程序 ListDevices 确认相机是否已经获得 IP 地址和设备号后,然后运行 SimpleView_FetchFrame.exe -id <设备号> 查看图像。设备号可从设备标签上获得,也可从枚举结果中获得。
还有种简单的方式,就是先用自带的 官方的图形界面去更改ip,只要先找到机器背后的MAC地址就行。
二、编译C#库
2.1、Cmake编译
- 安装 SWIG(版本要求 4.0.1 及以上)。
下载地址:https://www.swig.org/download.html - 安装 CMake(版本要求 3.15.0 及以上)。
下载地址:https://cmake.org/download/ - 安装 Visual Studio 及 .NET 组件。
- 拉去最新代码克隆 https://github.com/alphaliang/pcammls.git
如果本机安装的是VS22版本,则最好是将CMake版本提升到3.26以上
打开cmake,先在下面这栏选择源码位置
再在下面这栏选择编译的输出路径
点击Configuration
vs22的跟我这样设置就行。然后点击finish,会出现下面的红框,不要慌,再点一次configuration就行
到这里了,就点一下 Generate,开始编译。结束这一步。
2.2、vs编译
打开刚才的编译的输出路径,找到pcammls解决方案,用vs打开后,点击生成解决方案,生成的东西就是用C++编译的动态库,给C#用。
如果没错误,就能直接用了。
然后关闭这个解决方案,去C#的解决方案里,看看代码。
三、取深度图
3.1、初始化设备
- 获取设备列表
初次获取设备信息时可以通过 selectDevice() 查询已连接的设备数量,并获得所有已连接的设备列表。 - 打开接口
TYOpenInterface 打开接口。 - 打开设备
- TYOpenDevice 打开设备。
- TYOpenDeviceWithIP 打开网络设备。
3.2、启动深度采集
TYStartCapture
如果深度相机工作在模式 1 下,可以使用软件触发接口函数 TYSendSoftTrigger(),通过 USB 接口或者以太网接口发送指令,控制相机图像采集的时机。
四、硬触发
4.1、接线
注意npn和pnp型的不同。
结语:
目前结构光相机热门,提前掌握开发技巧可以再项目上快速上手,老板看了满心欢喜,祝各位开发者提前养老。