0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C#之Delta并联机械手的视觉相机标定与形状匹配

正运动技术 来源:正运动技术 作者:正运动技术 2024-06-26 15:11 次阅读

本文导读

上节课程我们讲述了如何建立Delta并联机械手正逆解,本节课程我们主要讲解如何通过C#语言开发正运动Delta并联机械手视觉流水线同步分拣的视觉部分。

VPLC711硬件介绍

VPLC711是正运动推出的一款基于x86平台和Windows操作系统的高性能机器视觉EtherCAT运动控制器,具备强大的运算能力和灵活性。它具有出色的实时性能和多路高速硬件输入与多路高速PSO输出,能够精准控制多轴同步运动,并与外部设备实现多协议的高速通信

wKgZomZ7vT-AQUGfAATEZEEcnQY989.png

VPLC711支持多种硬件接口和通信协议,方便与其他设备的连接和集成。除此之外,VPLC711还具备视觉处理功能,能够实时处理图像数据,实现视觉检测、测量和定位等应用。

wKgaomSuBgKAfwvPAAP2e_t0m3I135.png

VPLC711内置Windows运动控制实时内核MotionRT7,形成一种开放式IPC形态实时软控制器/软PLC,为用户提供灵活集成的运动控制+视觉一体化解决方案。

wKgaomZ7vU2AfKbMAAGN_SO6-4Q279.png

VPLC711硬件参数

1.采用x86高性能CPU,EtherCAT可支持1ms 64轴同步运行;

2.板载RS232RS485EtherNet*5,EtherCAT,USB3.0*4硬件接口;

3.板载20DI,其中4个高速色标锁存,2组高速单端编码器

4.板载20DO,其中4个高速单端脉冲轴,4组高速PWM;

5.支持DVI-D,HDMI显示,支持双网口不同IP设置。

想要了解更多关于VPLC711的详情介绍,可以点击“x86平台实时Windows机器视觉EtherCAT运动控制器VPLC711”查看。

一、C#语言进行Delta并联机械手的开发之运动库和视觉库的添加

1.在VS2010菜单“文件”→“新建”→“项目”,启动创建项目向导。

wKgZomZ7vX2AJ3R_AABq6AhfRSo071.png

2.选择开发语言为“Visual C#”和.NET Framework 4以及Windows窗体应用程序。

wKgaomZ7vYGAV_xXAAFwzZf56Bw151.png

3.找到厂家提供的光盘资料里面的C#函数库,路径如下(32位库为例)。

1)进入厂商提供的光盘资料找到“04PC函数”文件夹,并点击进入。

wKgaomZ7vYaAaXB0AAHXfDSiyik568.png

2)选择“函数库2.1”文件夹。

wKgaomZ7vYmAHa9bAAGbBrVuQZ8047.png

3)选择“Windows平台”文件夹。

wKgZomZ7vYyAd9-lAAEuaVsobUk562.png

4)根据需要选择对应的函数库,这里选择32位库。

wKgaomZ7vZGAU8-OAAEZuUmX8mk399.png

5)解压C#压缩包,里面有C#对应的函数库。

wKgZomZ7vZaAJOYOAAGiJAn1QZI072.png

6)函数库具体路径如下。

wKgZomZ7vZqAYOQOAAGoEa8S6tE832.png

4.将厂商提供的C#库文件以及相关文件复制到新建的项目中(注意这里面的PC函数库默认提供的是运动库,如果使用视觉功能还需要获取视觉库,视觉库可以找厂商的相关销售或技术人员获取)。

1)将Zmcaux.cs(运动库)和Zvision.cs(视觉库)文件复制到新建的项目里面中。

wKgaomZ7vZ6ANJo5AACGKDpmeyo890.png

2)将zauxdll.dll、zmotion.dll和zvision.dll文件放入bindebug文件夹中。

wKgaomZ7vaGAL_VAAABeNxxojLY082.png

5.用vs打开新建的项目文件,在右边的解决方案资源管理器中点击显示所有文件,然后鼠标右击Zmcaux.cs与 Zvision.cs文件,点击包括在项目中。

wKgZomZ7vaSAYKQmAAC_x1ZsREI927.png

6.双击Form1.cs里面的Form1,出现代码编辑界面,在文件开头写入using cszmcaux,using ZVision并声明控制器句柄g_handle。

wKgZomZ7vaeAQDs-AADXCWgRD38104.png

二、PC函数介绍

1.PC函数手册可在光盘资料查看,具体路径如下。

wKgaomZ7vauALGXwAAA3tGTqa2A191.png

2.链接控制器,获取链接句柄。

wKgaomZ7vb6AMzGcAABJI0ppMUc280.png

3.相机扫描接口说明。

wKgaomZ7vcOAFg-mAABFkJmfakA234.png

4.相机采集图像。

wKgaomZ7vcmADwSUAAAsnXs9UMA120.png

5.用图像创建模板。

wKgaomZ7vc6Aa_ZYAAEynPmv1w0189.png

6.形状匹配并输出轮廓状态。

wKgaomZ7vdWADdYEAAChIL5UbSs068.png

三、C#例程建设之视觉相机标定与形状匹配

1.视觉配置文件的下载

因为正运动的视觉算法是在控制器里面执行的,所以上位机开发前需要先在控制器里面定义好视觉处理的相关变量。正运动控制器里面的视觉变量统一使用ZVOBJECT来修饰,我们可以新建一个.bas的文件,然后输入“GLOBAL ZVOBJECT ZVOBJ(1000)”进行视觉变量数组的定义,保存后通过上位机接口在上位机系统初始化的时候把这个.bas文件下载到控制器即可。

wKgaomZ7veaAdyUCAAClzwJ3APk042.png

//下载相关脚本到控制器,进行视觉变量的定义
string BasPath = "";
BasPath = string.Format(@"{0}", Application.StartupPath) + @"Icon视觉变量定义.bas";
//.bas文件下载到控制器
zmcaux.ZAux_BasDown(g_Handle,BasPath,0);

2.相机标定

wKgaomZ7veuAWd4SAADCEbhze9w398.png

1)相机标定操作步骤

wKgZomZ7ve-AWYApAAFJ37rEF1k733.png

2)相关功能代码

/************************************************************************************
'任务编号:无
'函数功能:视觉提取标定板上实心圆的像素坐标,获取标定板圆心的像素坐标的矩阵
'Input:无
'Output:无 
'返回值:无             
**************************************************************************************/
private void GetPictureMark()
{
   float[] temp_thresh = new float[2];
   int Err = 0;
   //提取圆心图像坐标,得到像素坐标矩阵Inppts
   Err = Zvision.ZV_CALGETSCAPTS(form.g_Handle, grabimg, inppts, Convert.ToUInt32(C_CalibThresh.Text), Convert.ToUInt32(C_CalibPolar.Text), Convert.ToUInt32(C_CalibMinArea.Text), Convert.ToUInt32(C_CalibMaxArea.Text));
   int[] inppts_info = { 0, 0, 0 };
   //获取矩阵行数和列数,行数表示识别到实心圆的个数
   Err = Zvision.ZV_MATINFO(form.g_Handle, inppts, inppts_info);
   int row, col;
   row = (int)inppts_info[0];
   col = (int)inppts_info[1];
   //视觉识别到9个实心圆和标定板的实心圆数目一致
   if (row == 9)
   {
       Err = Zvision.ZV_GRAYTORGB(form.g_Handle, grabimg, calibshowimg);
       //inppts排好序输出排好序的像素坐标矩阵ppts
       Err = Zvision.ZV_CALGETPTSMAP(form.g_Handle, inppts, ppts, wpts, Convert.ToSingle(C_CalibDis.Text));
       Err = Zvision.ZV_MATINFO(form.g_Handle, ppts, inppts_info);
       row = (int)inppts_info[0];
       col = (int)inppts_info[1];
       if (row >= 9)
       {
           uint i;
           DataGridView1.Rows.Clear();
           for (i = 0; i < row; i++)
           {
               //像素坐标在WinFrom的UI界面是显示出来
               string[] tempstr = new string[4];
               float[] outvalue = { 0, 0 };
               Zvision.ZV_MATGETROW(form.g_Handle, wpts, i, 2, outvalue);
               tempstr[2] = "0";
               tempstr[3] = "0";
               Zvision.ZV_MATGETROW(form.g_Handle, ppts, i, 2, outvalue);
               tempstr[0] = outvalue[0].ToString();
               tempstr[1] = outvalue[1].ToString();
               DataGridView1.Rows.Add(tempstr);
               //在原图是画出识别到的实心圆,并标记,然后在Ui界面上显示出图像
               Zvision.ZV_MARKER(form.g_Handle, calibshowimg, outvalue[0], outvalue[1], 0, 40, 0, 255, 0);
               Zvision.ZV_TEXT(form.g_Handle, calibshowimg, i.ToString(), outvalue[0] - 20, outvalue[1] - 20, 40, 0, 255, 0);
               Zvision.ZV_LATCHCLEAR(form.g_Handle, 0);
               Zvision.ZV_LATCHSETSIZE(form.g_Handle, 0, Convert.ToUInt32(pictureBox5.Width), Convert.ToUInt32(pictureBox5.Height));                    pictureBox5.Image = Zvision.ZV_LATCH(form.g_Handle, calibshowimg, 0);
           }
       }
       else
       {
           MessageBox.Show("提取mark点失败!", "提示");
       }
   }
   else
   {
       MessageBox.Show("提取mark点失败!", "提示");
   }
}
/************************************************************************************
'任务编号:无
'函数功能:相机标定
'Input:无
'Output:无 
'返回值:无
'备注:计算像素坐标和世界坐标的转换关系
'备注:标定板圆心的世界坐标可以通过示教的方式获取            
**************************************************************************************/
private void CamCalib()
{
   //矩阵行和式
   uint row, col;
   row = 9;
   col = 2;
   //从Ui界面上获取世界坐标的矩阵数据
   float[] wPontsValue = new float[row * col];
   for (int i = 0; i < row; i++)
   {
       for (int j = 0; j < col; j++)
       {
           wPontsValue[col * i + j] = float.Parse(DataGridView1.Rows[i].Cells[j + 2].Value.ToString());
       }
   }
   //重新生成世界坐标矩阵
   Zvision.ZV_MATGENDATA(form.g_Handle, wpts, row, col, wPontsValue);
   //图像坐标矩阵数据
   float[] pPontsValue = new float[row * col];
   for (int i = 0; i < row; i++)
   {
       for (int j = 0; j < col; j++)
       {
           pPontsValue[col * i + j] = float.Parse(DataGridView1.Rows[i].Cells[j].Value.ToString());
       }
   }
   //重新生成图像坐标矩阵
   Zvision.ZV_MATGENDATA(form.g_Handle, ppts, row, col, pPontsValue);
   float[] outimginfo = { 0, 0, 0, 0, 0 };
   //获取图像信息
   Zvision.ZV_IMGINFO(form.g_Handle, grabimg, outimginfo);
   //进行相机标定
   Zvision.ZV_CALCAM(form.g_Handle, ppts, wpts, ZmotionCalPara, (ushort)outimginfo[0], (ushort)outimginfo[1], (uint)Convert.ToInt32(C_CalibType.Text));
   float[] outcaliberror = { 0, 0, 0 };
   //获取标定误差
   Zvision.ZV_CALERROR(form.g_Handle, ZmotionCalPara, ppts, wpts, outcaliberror);
   //平均误差小于0.5内算是优,0.5--1为良,1--1.5为一般,1.5以上建议重新标定
   if (outcaliberror[0] >= 1.5)
   {
       MessageBox.Show("标定平均误差过大请重新标定");
   }
   else
   {
       //保存标定参数
       Zvision.ZV_CALWRITE(form.g_Handle, ZmotionCalPara, form.CalFileDir);
   }
}

3)形状匹配后根据标定系数可获得匹配到目标点的实际世界坐标。

wKgZomZ7vfeAJfevAADJrwaGPlk540.png

3.形状匹配

wKgaomZ7vfqAaC9UAAHnK6ecJTQ220.png

1)形状匹配操作步骤

wKgZomZ7vf6Ae3cOAACo3E5ypPw019.png

2)相关功能代码

/************************************************************************************
'任务编号:无
'函数功能:通过相机采集图像
'Input:无
'Output:无 
'返回值:无             
**************************************************************************************/
public Image CameAcquisition()
{
   float Temp = 0;
   Image ImageBuff = null;
   Zvision.CAM_COUNT(form.g_Handle, ref Cam_Num);
   //选择相机
   Zvision.CAM_SEL(form.g_Handle, 0);
   //采集一张图像
   Zvision.CAM_TRIGGER(form.g_Handle);
   //更新皮带位置
   zauxBrr = zmcaux.ZAux_Direct_GetMpos(form.g_Handle, form.ConveyorAxisId, ref Temp);
   form.BeltMpos = Temp;
   //从相机缓存取里面获取刚刚采集的图像
   Zvision.CAM_GET(form.g_Handle, grabimg, 0);
   //RGB转灰度
   Zvision.ZV_RGBTOGRAY(form.g_Handle, grabimg, grabimg);
   //锁存数据清空
   Zvision.ZV_LATCHCLEAR(form.g_Handle, 0);
   //设置锁存的大小为图片显示控件的大小
   Zvision.ZV_LATCHSETSIZE(form.g_Handle, 0, Convert.ToUInt32(ImgShow1.Width), Convert.ToUInt32(ImgShow1.Height));  
   //获取锁存中的图像
   ImgShow1.Image = Zvision.ZV_LATCH(form.g_Handle, grabimg, 0);
   //导出获取到的图像信息
   return ImgShow1.Image;
}
/************************************************************************************
'任务编号:无
'函数功能:创建形状模版
'Input:无
'Output:无 
'返回值:无             
**************************************************************************************/
private void CreateTemplate()
{
   //通过图像创建模板
   Zvision.ZV_SHAPECREATERE(form.g_Handle, SubImg, mod_re, shape_mod, Convert.ToInt32(modStartAngle.Text), Convert.ToInt32(modEndAngle.Text), Convert.ToInt32(modMinScale.Text), Convert.ToInt32(modMaxScale.Text), Convert.ToUInt32(modThresh.Text), Convert.ToUInt32(modNum_Level.Text), Convert.ToUInt32(modPt_Reduce.Text), Convert.ToInt32(modAngle_Step.Text), Convert.ToInt32(modScale_Step.Text), 20);
   //获取模板轮廓
   Zvision.ZV_SHAPECONTOURS(form.g_Handle, shape_mod, modconlist, 0);
   //灰度转rgb
   Zvision.ZV_GRAYTORGB(form.g_Handle, cutimg, modimg);
   float[] getimginfo = { 0, 0, 0, 0, 0 };
   //图像信息
   Zvision.ZV_IMGINFO(form.g_Handle, modimg, getimginfo);
   //刚性变换
   Zvision.ZV_GETRIGIDVECTOR(form.g_Handle, mod_matrigid, 0, 0, 0, getimginfo[0] / 2, getimginfo[1] / 2, 0);
   //仿射变换
   Zvision.ZV_CONTAFFINE(form.g_Handle, modconlist, mod_matrigid, tsmodconlist);
   //绘制轮廓到图像上
   Zvision.ZV_CONTLIST(form.g_Handle, modimg, tsmodconlist, 0, 255, 0, 1);
   //清空控制器的锁存缓冲区
   Zvision.ZV_LATCHCLEAR(form.g_Handle, 1);
   //设置锁存缓冲区大小,设置锁存通道大小和显示控件picgbox控件一样大
   Zvision.ZV_LATCHSETSIZE(form.g_Handle, 1, Convert.ToUInt32(pictureBox2.Width), Convert.ToUInt32(pictureBox2.Height));                                                                                                            //显示图像
   pictureBox2.Image = Zvision.ZV_LATCH(form.g_Handle, modimg,1); //截取图像显示到ui上
   pictureBox3.Image = pictureBox2.Image;
   //清空控制器的锁存缓冲区
   Zvision.ZV_LATCHCLEAR(form.g_Handle, 1);
   //设置锁存缓冲区大小
   Zvision.ZV_LATCHSETSIZE(form.g_Handle, 1, Convert.ToUInt32(pictureBox4.Width), Convert.ToUInt32(pictureBox4.Height));    //设置锁存通道大小和picgbox控件一样大
                                                                                                                     //显示图像
   pictureBox4.Image = Zvision.ZV_LATCH(form.g_Handle, modimg, 1);//截取图像显示到Ui上
}
/************************************************************************************
'任务编号:无
'函数功能:形状匹配,在图像是查找模板
'Input:无
'Output:无 
'返回值:无             
**************************************************************************************/
public Image ShapeFind()
{
   //结果数组清空
   for (int m = 0; m < 10; m++)
   {
       for (int n = 0; n < 5; n++)
       {
           form.VisionRst[m, n] = 0;
       }
   }
   //形状模板匹配
   Zvision.ZV_SHAPEFIND(form.g_Handle, shape_mod, grabimg, find_outlist, Convert.ToInt32(findminscore.Text), Convert.ToUInt32(findnum.Text), Convert.ToInt32(findmindis.Text), Convert.ToInt32(findthresh.Text), Convert.ToUInt32(findaccuracy.Text), Convert.ToInt32(findspeed.Text), Convert.ToUInt32(findpolar.Text));
   int[] mat_info = { 0, 0, 0 };
   //输出信息
   Zvision.ZV_MATINFO(form.g_Handle, find_outlist, mat_info);
   //生成绘制彩图
   Zvision.ZV_GRAYTORGB(form.g_Handle, grabimg, show_img);
   //匹配到目标了
   if ((int)mat_info[0] > 0)
   {
       for (uint i = 0; i < (int)mat_info[0]; i++)
       {
           float[] rst_value = { 0, 0, 0, 0, 0 };
           Zvision.ZV_MATGETROW(form.g_Handle, find_outlist, i, 5, rst_value);
           rstScore.Text = rst_value[0].ToString();
           rstPixX.Text = rst_value[1].ToString();
           rstPixY.Text = rst_value[2].ToString();
           rstAngle.Text = rst_value[3].ToString();
           rstScale.Text = rst_value[4].ToString();
           //分数筛选
           if (rst_value[0] >= form.VisionScore)
           {
               //输出结果
               for (int k = 0; k < 5; k++)
               {
                   form.VisionRst[i, k] = rst_value[k];
               }
               float[] outworldpos = { 0, 0 };
               //像素转世界坐标
               Zvision.ZV_CALTRANSW(form.g_Handle, ZmotionCalPara, rst_value[1], rst_value[2], outworldpos);
               rstWorldX.Text = outworldpos[0].ToString();
               rstWorldY.Text = outworldpos[1].ToString();
               //输出世界坐标
               for (int k = 1; k < 3; k++)
               {
                   form.VisionRst[i, k] = outworldpos[k - 1];
               }
               //显示匹配结果
               string RstWorldStr;
               RstWorldStr = "OK_坐标(" + rstWorldX.Text + "," + rstWorldY.Text + ")";
               Zvision.ZV_TEXT(form.g_Handle, show_img, RstWorldStr, rst_value[1], rst_value[2], 50, 0, 255, 0);
               //计算刚性变换矩阵
               Zvision.ZV_GETRIGIDVECTOR(form.g_Handle, find_matrigid, 0, 0, 0, rst_value[1], rst_value[2], rst_value[3]);
               //轮廓序列仿射变换
               Zvision.ZV_CONTAFFINE(form.g_Handle, modconlist, find_matrigid, tsmodconlist2);
               //绘制轮廓数列
               Zvision.ZV_CONTLIST(form.g_Handle, show_img, tsmodconlist2, 0, 255, 0, 1);
               Zvision.ZV_TEXT(form.g_Handle, show_img, i.ToString(), rst_value[1], rst_value[2], 40, 255, 0, 0);
           }
       }
   }
   else
   {
       //显示匹配结果
       string RstWorldStr;
       RstWorldStr = "NG";
       Zvision.ZV_TEXT(form.g_Handle, show_img, RstWorldStr, 20, 120, 100, 0, 255, 0);
   }
   //清空缓冲区显示图片
   Zvision.ZV_LATCHCLEAR(form.g_Handle, 0);
   Zvision.ZV_LATCHSETSIZE(form.g_Handle, 0, Convert.ToUInt32(ImgShow1.Width), Convert.ToUInt32(ImgShow1.Height));    //设置锁存通道大小和picgbox控件一样大
   ImgShow1.Image = Zvision.ZV_LATCH(form.g_Handle, show_img, 0);//截取图像显示到图像上
   return ImgShow1.Image;
}

本次,正运动技术C#之Delta并联机械手的视觉相机标定与形状匹配,就分享到这里。

更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师

本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 运动控制器
    +关注

    关注

    2

    文章

    393

    浏览量

    24648
  • 机器视觉
    +关注

    关注

    161

    文章

    4342

    浏览量

    120095
  • 机械手
    +关注

    关注

    7

    文章

    333

    浏览量

    29613
收藏 人收藏

    评论

    相关推荐

    基于机器视觉机械手装配系统方案设计

    本文设计并实现了基于机器视觉机械手装配系统,可在线完成对不同型号和任意摆放工件的装配任务。系统主要由机器视觉系统和机械手装配系统组成。
    发表于 06-23 10:21 3736次阅读
    基于机器<b class='flag-5'>视觉</b>的<b class='flag-5'>机械手</b>装配系统方案设计

    EtherCAT运动控制器Delta机械手应用

    以正运动ZMC406R运动控制器为例,讲解Delta机械手运动控制应用开发。
    的头像 发表于 05-09 10:47 1531次阅读
    EtherCAT运动控制器<b class='flag-5'>Delta</b><b class='flag-5'>机械手</b>应用

    C#Delta并联机械手视觉同步分拣

    Delta并联机械手视觉识别后如何在流水线进行物料的同步分拣。
    的头像 发表于 07-03 09:52 1086次阅读
    <b class='flag-5'>C#</b><b class='flag-5'>之</b><b class='flag-5'>Delta</b><b class='flag-5'>并联机械手</b>的<b class='flag-5'>视觉</b>同步分拣

    机械手 OEM 的应用

    等。 并联机械手并联机械手由多个并联的连杆机构组成,具有高速、高精度、高刚度等优点。它适用于一些对速度和精度要求较高的应用场景,如食品、药品的包装等。 按驱动方式划分 : 电动机械手
    发表于 09-18 10:31

    PCB视觉对位冲床机械手系统,自动化稳定可靠

    对位和运动控制与一体,通讯稳定可靠。PCB视觉对位冲床机械手系统特点:1、高精度、高效率、高稳定性的视觉对位算法2、使用网口相机和集成工控机,性能稳定可靠3、可检测各种
    发表于 07-01 10:22

    PCB视觉对位冲床机械手系统,节省成本效率高

    ,冲床冲板,自动堆叠下料而开发的一体化方案,集视觉对位和运动控制于一体,通讯稳定可靠。PCB视觉对位冲床机械手系统优势:1、高精度、高效率、高稳定性的视觉对位算法2、使用网口
    发表于 04-27 09:49

    深圳机械手视觉分拣系统在手机盖板的应用

    、占地空间小机械手视觉分拣系统参数:硬件平台:工业级+四元数数控控制器+千兆网口相机视野大小:400x300mm产品最终放置精度::±0.5mm靶标形状:圆、角、边、方形、文字或不规则
    发表于 05-18 09:40

    湖北视觉分拣机械手系统在手机盖板的应用

    、高效率、高稳定性的视觉对位算法2、使用网口相机和集成工控机,性能稳定可靠3、软件可操作性好,可支持与触摸屏联机操作4、通过识别产品特征,计算产品偏移值,控制机械手进行定位抓取5、可根
    发表于 08-11 09:43

    深圳机械手视觉分拣系统有哪些特点及参数?

    :1、硬件平台:工业级+四元数数控控制器+千兆网口相机;2、视野大小:400x300mm;3、产品最终放置精度::±0.5mm;4、靶标形状:圆、角、边、方形、文字或不规则图形等特征。以上就是深圳四元数小编给你们介绍的深圳机械手
    发表于 09-22 15:33

    深圳PCB视觉对位冲床机械手系统有哪些特点及参数?

    、高稳定性的视觉对位算法;2、使用网口相机和集成工控机,性能稳定可靠;3、可检测各种形状的目标;4、视觉软件操作简单、人机界面友好;5、视觉
    发表于 09-25 14:47

    视觉机械手标定系统技术解决方案

    首先讲一下在工业应用中,和眼(摄像机)的两种位置关系,第一种是将摄像机(眼)固定在机械手)上面,眼随手移动;第二种是摄像机(眼)和机械手
    的头像 发表于 05-07 16:18 6837次阅读

    机械手视觉引导相机和伺服电机算法

    机械手分为:4轴,6轴或者XY模组或UVW模组。相关的视觉引导项目主要包括:抓取,放置,位置补正,贴合。
    发表于 10-11 15:44 2209次阅读

    Delta并联机械臂实现电磁铁搬运功能

    1. 功能说明    R037样机是一款Delta并联机械臂。本文示例将利用Delta并联机械臂实现不同点定点搬运磁铁物料的效果。 2. 结构说明    
    的头像 发表于 03-09 08:43 1067次阅读
    <b class='flag-5'>Delta</b><b class='flag-5'>并联机械</b>臂实现电磁铁搬运功能

    机器视觉控制机械手的具体过程

    机器视觉控制机械手是一种将机器视觉技术与机械手控制技术相结合的自动化技术。它通过机器视觉系统获取目标物体的图像信息,然后利用图像处理技术对图
    的头像 发表于 07-04 10:40 779次阅读

    机器视觉运动控制一体机在DELTA并联机械手视觉上下料应用

    机器视觉运动控制一体机在DELTA并联机械手视觉上下料的应用
    的头像 发表于 10-24 09:02 242次阅读
    机器<b class='flag-5'>视觉</b>运动控制一体机在<b class='flag-5'>DELTA</b><b class='flag-5'>并联机械手</b><b class='flag-5'>视觉</b>上下料应用