最近项目用到了结构光的深度相机,以前都是纯双目去做项目,所以写个博文记录下过程。

图漾深度相机技术文档地址:图漾深度相机技术文档地址

相机介绍:我用的是FM850系列,由于项目的原因,精度要求并不高,我的工作距离大概1500mm。通信接口选的是网口的。

C# 图漾深度相机FM系列取图流程实战_技术文档

一、硬件连接

通过千兆以太网线缆直接将相机接入到计算机千兆以太网接口。

相机上电启动后约1分钟,计算机和相机可以成功协商获得 169.254.xx.xx 网段的 IP 地址。通过 SDK 示例程序 ListDevices 确认相机是否已经获得 IP 地址和设备号后,然后运行 SimpleView_FetchFrame.exe -id <设备号> 查看图像。设备号可从设备标签上获得,也可从枚举结果中获得。

还有种简单的方式,就是先用自带的 官方的图形界面去更改ip,只要先找到机器背后的MAC地址就行。

二、编译C#库

2.1、Cmake编译

如果本机安装的是VS22版本,则最好是将CMake版本提升到3.26以上

打开cmake,先在下面这栏选择源码位置

C# 图漾深度相机FM系列取图流程实战_解决方案_02

再在下面这栏选择编译的输出路径

C# 图漾深度相机FM系列取图流程实战_技术文档_03

点击Configuration

C# 图漾深度相机FM系列取图流程实战_解决方案_04

vs22的跟我这样设置就行。然后点击finish,会出现下面的红框,不要慌,再点一次configuration就行

C# 图漾深度相机FM系列取图流程实战_技术文档_05

到这里了,就点一下 Generate,开始编译。结束这一步。

2.2、vs编译

打开刚才的编译的输出路径,找到pcammls解决方案,用vs打开后,点击生成解决方案,生成的东西就是用C++编译的动态库,给C#用。

C# 图漾深度相机FM系列取图流程实战_设备号_06

如果没错误,就能直接用了。

然后关闭这个解决方案,去C#的解决方案里,看看代码。

三、取深度图

3.1、初始化设备

  1. 获取设备列表
    初次获取设备信息时可以通过 selectDevice() 查询已连接的设备数量,并获得所有已连接的设备列表。
  2. 打开接口
    TYOpenInterface 打开接口。
  3. 打开设备
  • TYOpenDevice 打开设备。
  • TYOpenDeviceWithIP 打开网络设备。

3.2、启动深度采集

TYStartCapture

如果深度相机工作在模式 1 下,可以使用软件触发接口函数 TYSendSoftTrigger(),通过 USB 接口或者以太网接口发送指令,控制相机图像采集的时机。

四、硬触发

4.1、接线

C# 图漾深度相机FM系列取图流程实战_设备号_07

注意npn和pnp型的不同。

结语:

目前结构光相机热门,提前掌握开发技巧可以再项目上快速上手,老板看了满心欢喜,祝各位开发者提前养老。