在Linux下,大恒相机、qt、c++、dlp4500开发的版本和开发说明

本篇主要介绍开发过程中的一些注意事项,具体代码没有涉及

一、 版本说明

在后续的项目进展中,由于使用到pcl、vtk等三方库,查阅了各方资料,发现pyqt和pcl和vtk库总是报各种版本不兼容,或者缺失某文件的错误。所以最终还是采用c++去整体开发,这里归总一下所使用的各种库的版本:opencv4.5.5、pcl1.11.0、vtk8.2.0、qt5 5.12.8、boost1.71.0 。

注意:opencv下载的时候一定要记得将对应版本的contrib一起下载,然后一起编译。contrib是opencv里的一些没有版权的算法,比如我这儿所用到的pdf算法,所以opencv官方没有在release版本中包含contrib,即使你可能用不到某些算法,但是也建议你一块儿下载。

我是单独重新下载的contrib,但是在编译的时候,总是会报错,最终是卸载了opencv,重装,编译,然后成功的。(opencv编译极其繁琐,建议多看看相应的教程,一步步对照着来)

需要单独说明一下的是qt,本项目依然和上一篇文章一样,用qt designer写一个界面,然后把.ui .qrc文件拖入文件根目录下,引入vtk是为了在界面中显示点云结果,并实现拖拽,放大等操作,所以qt的版本和vtk的版本必须兼容,经常尝试发现vtk8.2.0、qt5 5.12.8可以兼容,但是会有警告即vtk版本过低,一些函数不再使用等,如果有其他的同学发现了更好的版本选择欢迎留言。

二、 开发说明

2.1 dlp4500开发说明

二次开发中比较麻烦的就是dlp4500,因为官方给的api是windows的,Linux需要自己写,但是查看dlp4500的源码会发现,其中使用的接口如:libusb、qt这些都是支持Linux版本的,所以dlp4500是可以支持Linux直接开发的。我们采用的依然是usb接口,i2c尝试过,但是通过c++代码在寄存器写入值的时候会报错,python下写入却不会报错,这个问题困扰了很久,最终决定采用usb。

第一次通过usb开发dlp4500的时候,Linux里会报找不到dlp4500这个设备的错误,这个时候需要改写对应的.rules文件。首先进入/etc/udev/rules.d创建一个dlp4500.rules文件,内容如下

# for libusb, kernel v < 2.6.24
SUBSYSTEM=="usb_device", ACTION=="add", ATTRS{idVendor}=="0451",

你可能感兴趣的:(c++,开发语言)