当前位置: 首页 > news >正文

贵州省建设厅的网站首页网络推广公司排名

贵州省建设厅的网站首页,网络推广公司排名,网站建设框架编写目的,宿州建设网站公司1、机器人吸取电路板,移动到拍照位置,并在电路板上找一个标记点,并且,通过机器人示教把当前电路板能够准确的放入到目标位置。 2、机器人吸取电路板吸取电路板,在x,y方向进行移动,总共移动4个位置&#xff…

在这里插入图片描述
1、机器人吸取电路板,移动到拍照位置,并在电路板上找一个标记点,并且,通过机器人示教把当前电路板能够准确的放入到目标位置。
2、机器人吸取电路板吸取电路板,在x,y方向进行移动,总共移动4个位置,记录4个位置的机器人的坐标,以及拍摄图像
在这里插入图片描述
3、使用vp的CogCalibNpointToNpoint工具,并在蓝框填入标志点的像素坐标,红框填入对应的机器人坐标。
4.点运行完成标定功能。
5、完成标定后,整个流程如下
在这里插入图片描述
在模板匹配中把模板中心进行记录。然后,调整标定工具的校正原点
在这里插入图片描述
使得模板匹配的模板中心x,y坐标输出为0,0,表示当前吸取的电路板能够准确的放入模板位置

下次,再吸取电路板时,执行模板匹配后,输出的x,y坐标就是机器人应当移动的x,y的偏移量

这样x y 就计算完成了。

但往往,因为还有旋转。所以还要计算角度
机器人不用旋转中心进行标定
旋转中心标定方式的说明
在下面的图例中,红色为相机视野(FOV),黄色为工件,五星为Mark点。
(训练的标准位置)
(工件发生平移)
(工件发生旋转与平移)
在这里插入图片描述
旋转中心方法用于所有机器人与视觉配合场景
方法 :计算工件实际发生的偏移量 和旋转,结合机器人的旋转中心进行二次补偿后 ,把补偿量 发送给机器人 ,然后机器人把补偿量进行抓取或放置即可。
计算 某个点绕另外一旋转定角度后的坐 标,如图 :A(x,y)绕 B(rx0 ,ry0) 旋转a度后的位置为 C(x0,y0 ),则有如 下关系式:
x0= cos (a) * (x -rx0) – sin (a) *(y-ry0) +rx0
y0= cos (a) * (y- ry0) + sin (a) (x-rx0) +ry0
在这里插入图片描述
下面的所有计算旋转与偏移量都是基于上面的公式。
在这里插入图片描述
在这里插入图片描述
{Cx,Cy } 旋转中心坐标; {Mx,My } 工件 Mark坐标。
{MDx,MDy},Mark偏移量。
{RDx,Rdy}, 发送给机器人的补偿量。
工件发生平移时,
在拍照位置进行拍照后 ,与开始训练标准位置时,Mark点成像会产生偏移。
Mark 偏移量 MDx =RDx;MDy =RDy ;
如上图即相机计算出的 Mark 点偏移量 ,可以直接补偿给机器人,然后进行抓取即可。
在这里插入图片描述
作为测试 ,可以机器人在拍照位置进行补偿后 ,Z轴不变然后再拍照 ,会获得和拍照位置一样的图像。
工件发生平移与旋转
在这里插入图片描述
工件发生平移和旋转时
在拍照位置进行后 ,与开始训练标准位置时 ,Mark 点成像会产生偏移;
Mark 偏移量 MDx #RDx, MDy#RDy ;如左上图即相机计算出的 MarkMark 点偏移量 ,不能直接补偿给机器人 ,需要计算出 RDx 和RDy,和RDr ,MDr 然后补偿给机器人 ,机器人补偿后才能进行抓取。
在这里插入图片描述
在这里插入图片描述
作为测试 ,可以机器人在拍照位置进行补偿后 ,Z轴不变然后再拍照 ,会获得和拍照位置一样的图像;
计算过程,旋转角度a
在这里插入图片描述
计算 CDx =Cx1– Cx0和 CDy =Cy1– Cy0
CDx = cos (a) * (Cx0 -X0) -sin (a) * Cy0-Y0) + X1 – Cx0
CDy = cos (a) * (Cy0 -Y0 ) + sin (a) * Cx0 -X0 ) + Y1– Cy0
从公式中可以看出,补给机器人的偿量由:
旋转中心坐标( Cx0,Cy0 )
标准的工件 (Mark) 坐标点( X0,Y0)
工件移动后新的(Mark)坐标点
工件 (Mark) 旋转角度 a
所以利用旋转中心方法计算给机器人的补偿量时,首先要中心坐标,
但是在很多场景下计算旋转中心坐标时要么出了视野,要么转的角度范围太小等,拟合旋中心都存在误差,
导致补偿精不够
一定要计算旋转中心坐标吗?其实不需要。
CDx,Cdy 计算过程 ,旋转角度 a
在这里插入图片描述
CDx = cos (a) * (Cx0 -X0) -sin (a) * (Cy0 -Y0) + X1 – Cx0
= ( cos (a) -1) * (Cx0-X0)-Sin(a)
(Cy0 -Y0) + MDx
= (cos(a) -1) * StDx -sin (a) * StDy + MDx

CDy = cos ( a) * (Cy0 -Y0 ) + sin (a) * (Cx0 -X0 ) +y1 – Cy0
= ( cos (a) -1) * (Cy0 -Y0 ) + sin (a) * (Cx0 -X0 ) + Mdy
= (cos(a) -1) * StDy + sin (a) * StDx + Mdy
从公式中可以看出 StDx= Cx0-X0, StDy = Cy0 -Y0 是个常量, MDx 和Mdy是每次拍照是工件 (Mark )的坐标与准位置工件( Mark)的差值;
StDx 与StDy 怎么计算呢?蓝色的为一个二元次方程,我们需要旋转角度即可计算出;
如果 计算出 StDx 和StDy 则在运行时,直接带入上述公式,可以很快计算出 CDx,Cdy 这样给出Robot 的偏移量了,而不需要计算旋转中心确切坐标了
下面介绍如何求解 StDx和StDy
实际操作的时候,感觉上面的文章有点难理解,就还是老老实实去算了圆心,例如让机器人旋转正15度,和负15度,得到两个新的坐标。3点求圆心坐标。

点求圆心:

struct POINT

    {      public   double X;public   double Y;                }  POINT RotateCenterCal(POINT p1, POINT p2, POINT p3, POINT ptCenter){//将三点代入圆的方程double a = 2 * (p2.X - p1.X);double b = 2 * (p2.Y - p1.Y);double c = p2.X * p2.X + p2.Y * p2.Y - p1.X * p1.X - p1.Y * p1.Y;double d = 2 * (p3.X - p2.X);double e = 2 * (p3.Y - p2.Y);double f = p3.X * p3.X + p3.Y * p3.Y - p2.X * p2.X - p2.Y * p2.Y;ptCenter.X = (b * f - e * c) / (b * d - e * a);ptCenter.Y = (d * c - a * f) / (b * d - e * a);return ptCenter;}

之后可以根据圆心 以及当前取得到的坐标以及旋转量,倒推得到要旋转多少角度和移动多少坐标才能回正。
在这里插入图片描述
CDx = cos (a) * (Cx0 -X0) -sin (a) * Cy0-Y0) + X1 – Cx0
CDy = cos (a) * (Cy0 -Y0 ) + sin (a) * Cx0 -X0 ) + Y1– Cy0
从公式中可以看出,补给机器人的偿量由:
旋转中心坐标( Cx0,Cy0 )
标准的工件 (Mark) 坐标点( X0,Y0)
工件移动后新的(Mark)坐标点
工件 (Mark) 旋转角度 a
代码: private void button3_Click(object sender, EventArgs e)
{ //根据圆心坐标 与角度, 以及原先的X,Y, 求旋转角度后的新坐标
POINT p1 = new POINT();
POINT p2 = new POINT();
POINT presult = new POINT();

        p1.X = double.Parse(lastX.Text);p1.Y = double.Parse(lastY.Text);double jiaodu = double.Parse(lastjiaodu.Text);jiaodu = -jiaodu;//  jiaodu = jiaodu * 180 / Math.PI; 无需转换成度数p2.X = double.Parse(centerX.Text);p2.Y = double.Parse(centerY.Text);presult = FindNEWXandY(p1, p2, presult, jiaodu);resultX.Text = presult.X.ToString();resultY.Text = presult.Y.ToString();}POINT FindNEWXandY(POINT p1, POINT p2,POINT presult,double jiaodu){//根据圆心坐标 与  原先的X,Y, 求旋转角度后的新坐标//jiaodu = (Math.PI *jiaodu/180);double mc = Math.Cos(jiaodu);double ma = Math.Sin(jiaodu);double a1 = (p1.X - p2.X) * mc;double b1 = (p1.Y - p2.Y) * ma;presult.X =Math.Round(a1 - b1 + p2.X,3);double a2= (p1.Y - p2.Y) * mc;double b2 = (p1.X - p2.X) * ma;presult.Y = Math.Round(a2 + b2 + p2.Y,3);return presult;}![在这里插入图片描述](https://img-blog.csdnimg.cn/1b08797c9dcc47d1889264ec12edc7c8.png)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为当时使用的机器人精度较查,误差还是挺大的。如果项目成型,则会有最终解决方案,目前只是配合测试。先到此结束

http://www.mmbaike.com/news/28402.html

相关文章:

  • 网站添加qq聊天怎么联系百度人工客服
  • 政府网站建设战略石家庄网络推广
  • 制作网站背景怎么做网页模板
  • 福安网站建设优化网站排名需要多少钱
  • 如何做分销型网站交易链接
  • 网站设计的规范源码网
  • 网络工程师可以从事什么工作seo课程总结怎么写
  • 做的网站底部应该标注什么教育培训机构有哪些
  • 网站建设步骤及分工论文网站安全
  • 珠海网站设计多少钱如何搭建一个网站平台
  • thinkphp做的网站凡客建站
  • 医院网站怎么做口碑seo推广公司
  • 代做淘宝客网站web网址
  • bbc实验是哪个网站做的音乐接单推广app平台
  • wordpress小说连载插件网站关键词优化报价
  • 做网站月收入网络推广公司可不可靠
  • 平邑做网站的百度推广营销方案
  • 优化seo网站西安网页设计与制作模板
  • SEO案例网站建设网站关键词推广价格
  • 深圳网站建设 公司元搜索网站大全
  • 公司网站友情链接怎么做副链电商运营主要工作内容
  • 云南网站搭建seo推广教程seo推广技巧
  • 高端网站开发程东莞网站推广的公司
  • 茂名做网站网络营销与网站推广的
  • 儿童做的小游戏下载网站网页设计效果图及代码
  • 股票分析网站可以做推广吗郑州粒米seo外包
  • 做cpa推广用哪种网站好苏州优化排名seo
  • 做自媒体素材搬运网站长沙网站推广排名优化
  • html网页设计期末考试网站seo综合诊断
  • 旅游电子商务网站建设中最重要的环节和内容是什么承接网络推广外包业务