在机器视觉引导项目中,经常出现旋转中心与旋转轴不重合的情况,这种情况下的坐标计算方法并不复杂,利用高中所学的数学知识即可解答,第一步就是找到旋转中心点,这个是你的运动机构的不是产品上的,比如机械手。
要找到旋转中心,只需要任意旋转三次,取这三个点求其圆心与半径,其实只需圆心坐标即可,旋转所在点就是运动机构的旋转中心,比如机械手的6轴旋转,6轴所在位置就是其旋转中心,这是重合的情况。一旦加上手爪,就需要我们自己计算旋转中心了,下面是C#的圆心求解方法。
代码如下
(adsbygoogle = window.adsbygoogle || []).push({});
struct mPoint { public double X; public double Y; } struct circle { public mPoint center; public float R; } mPoint getcenter(mPoint p1,mPoint p2,mPoint p3) { mPoint rpoint; double a = p1.X - p2.X; double b = p1.Y - p2.Y; double c = p1.X - p3.X; double d = p1.Y - p3.Y; double e = (Math.Pow(p1.X, 2) - Math.Pow(p2.X, 2) + Math.Pow(p1.Y, 2) - Math.Pow(p2.Y, 2)) / 2.0; double f = (Math.Pow(p1.X, 2) - Math.Pow(p3.X, 2) + Math.Pow(p1.Y, 2) - Math.Pow(p3.Y, 2)) / 2.0; double det = b * c - a * d; if (Math.Abs(det) > 0) { //x0,y0为计算得到的原点 double x0 = -(d * e - b * f) / det; double y0 = -(a * f - c * e) / det; rpoint.X = x0; rpoint.Y = y0; return rpoint; } else { mPoint ab; ab.X = 9999; ab.Y = 9999; return ab ; } }
怎么使用我就不多讲了,应该都能看懂。算法是根据圆的方程来的。
下一章再讲已知圆周上一点,球其旋转一定角度后的坐标。
© 版权声明
1、本网站名称:club资源网
2、本站永久网址:cscxyz.club
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:2737238215进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
THE END
请登录后发表评论
注册