- 大恒相机水星一代
- Nartor 电机
- RMD 脉塔电机
本解决方案的依赖如下:
- DOF5RobotControl_GUI (C#)
- D5RobotController_CLR (C++ / CLR)
- Nators SDK lib
- RMD 电机驱动
- VisionLibrary (C++ / CLR)
- Halcon SDK lib
- OpenCV lib
- Daheng 相机 SDK
- (其它依赖由 Nuget 包管理)
- D5RobotController_CLR (C++ / CLR)
因存在上述依赖,故运行本项目需要作一些配置,如下文所示。
本项目所需使用的库文件可以在 Release 中找到,需要的可自行下载,并按下文内容配置。
需要注意的是:
- 大恒相机需下载其驱动软件,链接在此,且需要工业级以太网视觉采集卡,若出现相机可识别,但无法打开的问题,可使用大恒相机 SDK 中的
GxGigEIPConfig.exe重新配置 IP - halcon 需每月获取许可文件并更名为 license.dat,放置在 D5RC_VS.sln 所在的文件目录下
- 在项目目录下找到
D5RobotController_CLR\lib\Nators\SDK1.4.12按提示操作。
RMD 电机通过 USB 串口转 RS485 控制,无需 SDK,但可能需要相应的驱动,并自行查看对应的 COM 口。
- 去官网安装 halcon 24.11
- 确认拥有 C++ 11 以上版本的工具链
- 配置项目环境(本项目已配置完成,如遇到问题可参考解决)
- 确认添加包含目录
$(HALCONROOT)\include$(HALCONROOT)\include\halconcpp - 确认 C++ 的链接库包含
$(HALCONROOT)\lib\$(HALCONARCH)\halcon.lib和$(HALCONROOT)\lib\$(HALCONARCH)\halconcpp.lib - 确认 dll 路径已包含在环境变量 PATH 中
$(HALCONROOT)\bin\%HALCONARCH%\(正常情况下安装 Halcon 时它会自动完成的,但如果程序跑不了的话可以检查一下)
- 确认添加包含目录
$(HALCONROOT)表示环境变量,可能在不同操作系统或 IDE 会有不同表示方式
更多信息参考官方文档 Programer's Guide(7.5节)
- 安装 OpenCV
- 设置环境变量:
setx OpenCV_DIR D:\path\to\opencv-4.10.0\opencv\build\x64\vc16(自行修改为 OpenCV 所在目录) - 添加 OpenCV 的 DLL 文件位置
%OpenCV_DIR%\bin到系统环境变量 PATH 中 - 配置项目环境(本项目已配置完成,如遇到问题可参考解决)
- 添加包含目录
$(OpenCV_DIR)\..\..\include - 添加库目录
$(OPENCV_DIR)\lib - 添加导入库
opencv_world4100d.lib或opencv_world4100.lib(后缀d表示这是 debug 需要的库,如imshow这类函数需要它,它和无d后缀的库一般不同时存在)
- 添加包含目录
更多信息参考官方文档 Installation in Windows 以及 How to build applications with OpenCV inside the "Microsoft Visual Studio"
右键项目依赖项 -> 添加项目引用 -> 浏览 -> 找到大恒安装目录下的 APIDLL\Win64.NET6.0\GxIAPINET.dll -> 打上勾
重装 SDK 后可能会遇到相机传入的画面有条纹且很卡的问题,这时候可以试试卸载网卡后重新启动电脑,将网卡设置回到初始值,然后用SDK软件重新配置 IP,除此外不要再碰网络设置,这样就有可能能跑了。
- 现在存在一个问题,在加入 OPCUA 模块后,当关闭窗口的时候,进程并不会结束,内存依然在占用,急需解决!
- 添加两个控制相机电机移动的按钮
- 目前实时获取关节状态有个问题,可能因为多线程的问题,导致正在获取关节时若发送了运行的指令,会导致 RMD 电机的获取关节出错,可以考虑添加一个互斥锁解决。
- 处理相机获取的图像会在视觉处理时产生异常的问题
- 添加自动放回钳口的功能
- 添加使用 HTTP 服务器的控制 API (暂时搁置)
- 处理记录图像严重拖慢运行的问题
- RMD 的通讯问题需要解决
- 增加 YOLO 的置信度处理
- 增加图像显示窗口中是否显示 YOLO 结果的开关
- 添加一个 log 小框