UVW对位平台与Halcon联合C#编程学习参考
uvw对位平台halcon联合c#编程供学习的朋友参考最近在搞工业视觉对位平台发现uvw平台这玩意儿是真有意思。三轴联动的机械结构配合视觉校正比传统的XYθ平台灵活多了。今天就跟大伙儿唠唠怎么用HalconC#玩转这个组合这里边有些坑我踩过了你们就别再踩了。先上段硬核的——Halcon的模板匹配代码得这么写才靠谱HTuple hv_Row new HTuple(), hv_Column new HTuple(); HOperatorSet.FindScaledShapeModel(ho_Image, hv_ModelID, new HTuple(0).TupleRad(), new HTuple(360).TupleRad(), 0.8, 1.2, 0.5, 1, 0.5, least_squares, 0, 0.9, out hv_Row, out hv_Column);这坨代码看着简单有几个魔鬼细节角度参数必须转弧度别问我是怎么知道的相似度阈值别设太高0.7-0.9比较安全还有那个least_squares参数换成auto可能会更智能。之前项目里死活匹配不上最后发现是模板创建时没考虑尺度变化血的教训啊uvw平台的逆解算是核心难点。咱们可以用C#封装个运动控制类public class UVWMover { private double[] _currentPos new double[3]; public void MoveTo(double x, double y, double theta) { // 逆解算法核心 double u x - theta * y; double v y theta * x; double w theta * 1000; // 根据实际机械参数调整 // 调用运动控制卡SDK MotionCard_SendCommand($MOV{u},{v},{w}); // 更新位置缓存 _currentPos new[] { u, v, w }; } }注意theta的单位转换弧度/角度得和视觉系统统一之前有次因为单位搞反了平台直接跳机械舞你敢信uvw对位平台halcon联合c#编程供学习的朋友参考视觉和运动控制联调时建议加个调试窗口实时显示偏移量// 在C#窗体中嵌入Halcon窗口 hWindowControl.HalconWindow.DispObj(ho_Image); HOperatorSet.SetColor(hWindowControl.HalconWindow, red); HOperatorSet.DispCross(hWindowControl.HalconWindow, hv_Row, hv_Column, 20, 0);这个跨平台显示要特别注意内存管理halcon对象不及时释放的话内存泄漏分分钟教你做人。建议用using块或者主动Dispose。最后来个劝退三连运动控制卡SDK的文档八成是机翻的uvw平台的手册可能藏着关键参数在附录的附录里视觉标定时光源打个喷嚏都得重来。但搞定了是真香——0.01mm的重复定位精度看着物料丝滑对位比德芙还纵享丝滑。代码里用的MotionCard_SendCommand是伪代码具体替换成各家运动卡的API就行。有兄弟问为啥不用EtherCAT问就是甲方爸爸的祖传设备还在用并口...
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2433570.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!