在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C#之Delta并聯機械手的視覺同步分揀

正運動技術 ? 來源:正運動技術 ? 作者:正運動技術 ? 2024-07-03 09:52 ? 次閱讀

本文導讀

前面兩節課程我們介紹了怎么建立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.鏈接控制器,獲取鏈接句柄。

wKgZomaErPGAUrHHAABJo7YSs_s073.png

2.皮帶同步指令。

wKgZomaErPeAEw-gAADQ9hb7hBk143.png

三、Basic腳本快速驗證指令用法

1.編寫Basic測試腳本進行MoveSync指令的用法測試。

'**************************************************************************************
'背景:假設有一對對射型的光電傳感器固定在流水線的兩端,來實時檢測流水線上的產品到位情況
'MOVESYNC指令參數填寫說明:
'syncposition:物體到感應點時皮帶軸的位置,需要通過編碼器鎖存把產品的對應位置記錄下來。
'pos1:跟隨軸1原點到光電傳感器感應點的位置,對于每個產品都是固定的。
'**************************************************************************************
GLOBAL CONST BeltAxis=4  '皮帶軸是軸4
GLOBAL CONST FollowAxis1=0  '跟隨軸1是軸0
GLOBAL CONST InducPos1=30  '跟隨軸1原點到光電傳感器感應點的位置
GLOBAL CONST StandbyPos1=50'跟隨軸1的待機位
GLOBAL CONST EmptyPos1=400  '跟隨軸1的放料位
'停止所有軸
RAPIDSTOP(2)
WAIT IDLE     
'初始化相關軸的軸參數
BASE(FollowAxis1, BeltAxis)
ATYPE = 1,1
UNITS = 1000,1000
SPEED = 50,100
DPOS = 0,0
'觸發示波器采集波形
TRIGGER
DELAY(1000)
'跟隨軸先運動到待機位
BASE(FollowAxis1)
MOVEABS(StandbyPos1)
'皮帶軸開始運動
VMOVE(1)  AXIS(BeltAxis)
'假設皮帶運動到200的位置時,有一個產品被檢測到
BASE(FollowAxis1)
Wait UNTIL MPOS(BeltAxis)> 200
MOVESYNC(0, 2000, 200, BeltAxis, InducPos1) '跟隨軸加速同步段該指令執行完后將同步上產品
MOVE_OP(0, ON)                               '同步上后打開真空吸          
MOVESYNC(0, 1000, 200, BeltAxis, InducPos1)  '繼續同步1s
MOVESYNC(-1, 0, 0, -1, EmptyPos1)            '走到放料位置
MOVE_OP(0, OFF)                              '到放料位后關閉真空吸  

2.通過RTSys軟件的示波器觀察波形,分析同步過程。

wKgZomaErS-AMP_DAAPz5iU7f2g921.pngwKgaomaErTaAU9t9AABQp_3mM7U314.png

根據示波器的數據分析

1、產品剛剛被檢測到時,皮帶的位置是200,跟隨軸的位置是50。

2、跟隨軸追上產品,并保持速度和皮帶軸同步時皮帶的位置是400,跟隨軸1的位置是230。

3、由1和2可知,產品在同步過程中前進了200(400-200)。

4、因為跟隨軸1原點到光電傳感器感應點的位置InducPos1我們給的數據是30,所以在跟隨軸1和皮帶平行的情況下,皮帶帶著產品往前跑了200后,此時此刻跟隨軸1原點到光產品的實際距離是230(200+30)。

5、那么第4點計算的結果和第2的同步完成后跟隨軸1的實際位置是一致的,所以流水線同步指令測試正常。

四、C#例程建設之視覺流水線同步分揀

1.皮帶同步指令關鍵參數詳細介紹。

ZAux_Direct_MoveSync(ZMC_HANDLE handle,float imode,int synctime,float syncposition,int syncaxis,int imaxaxises,int *piAxislist,float *pfDisancelist).

(1)參數imode:

imode = 0+angle,表示同步模式,如果皮帶和X軸平行,填0即可。

imode = -1,表示結束同步模式,可運動到指定的絕對位置,一般同步上抓取完物料后運動到放料位使用。

(2)參數synctime: 同步時間,ms單位.運動在指定時間內完成,完成時軸跟皮帶軸上物體保持速度一致。0表示根據運動軸的速度加速度來估計同步時間。

(3)參數syncposition: 視覺或傳感器識別到皮帶是的產品時,皮帶此時此刻的位置信息MPOS。

(4)參數pfDisancelist:

如果是視覺定位產品時,這個參數直接填視覺識別到產品時產品的世界坐標。

如果用光電傳感器檢測產品時,這個參數是固定的,在傳感器剛剛好感應到產品時,產品當前位置的絕對坐標。可以在此時此刻手動運動從軸來定位到產品處來獲取位置信息。

2.視覺流水線同步分揀流程圖。

wKgaomaErVqAARASAAJhxaSRpC0551.png

(1)視覺匹配定位代碼詳情。

/************************************************************************************
'任務編號:     無
'函數功能:     視覺定位產品
'Input:        無
'Output:       無 
'返回值:       子線程---進行視覺定位             
**************************************************************************************/
public void RunSubTaskVisua()
{
   int TempArrid = 0;
   float TempVar = 0;
   WriteLog("視覺功能正常啟動");
   while (SysRunFlag > 0)
   {
       //暫停按鈕沒有按下時
       while (SysRunFlag == 1) 
       {
           //采集圖像
           VisuaOper.CameAcquisition();
           //進行模板匹配
           RTDisplay.Image = VisuaOper.ShapeFind();
           if (MainWindows.BeltMpos != 0)//如果采集照片的時候皮帶編碼器位置獲取正常
           {
               //操作MoveSyncBuff數據先加鎖
               while (true)
               {
                   if (MainWindows.SetMoveSyncFlag == 0)
                   {
                       MainWindows.SetMoveSyncFlag = 1;
                       break;
                   }
               }
               //找到可以存儲數據的數組起始下標
               int ArrId = 0;
               for (int i = 0; i < 50; i++)
               {
                   if (MainWindows.MoveSyncBuff[i, 0] == 0)
                   {
                       ArrId = i;
                       break;
                   }
               }
               //開始存儲數據  一次匹配最多10個結果
               TempArrid = ArrId;
               for (int i = 0; i < 10; i++)
               {
                   //如果分數滿足要求
                   if (MainWindows.VisionRst[i, 0] >= MainWindows.VisionScore)
                   {
                       int j;
                       //如果有重復的目標需要剔除
                       for (j = 0; j < TempArrid; j++)
                       {
                           TempVar = MainWindows.VisionRst[i, 1] - MainWindows.BeltMpos - MainWindows.MoveSyncBuff[j, 1] + MainWindows.MoveSyncBuff[j, 4];
                           if (((TempVar) <= 10) && (TempVar >= -10))
                           {
                               j = -10;
                               break;
                           }
                       }
                       if (j >= 0)
                       {
                           MainWindows.MoveSyncBuff[ArrId, 0] = 1;
                           MainWindows.MoveSyncBuff[ArrId, 1] = MainWindows.VisionRst[i, 1];   //存儲匹配結果的X坐標
                           MainWindows.MoveSyncBuff[ArrId, 2] = MainWindows.VisionRst[i, 2];   //存儲匹配結果的Y坐標
                           MainWindows.MoveSyncBuff[ArrId, 3] = MainWindows.VisionRst[i, 3];   //存儲匹配結果的角度偏移
                           MainWindows.MoveSyncBuff[ArrId, 4] = MainWindows.BeltMpos;          //存儲匹配到產品時,傳送帶的位置信息
                           ArrId = ArrId + 1;
                           IdentiNum.Text = (Convert.ToInt32(IdentiNum.Text) + 1).ToString();
                           WriteLog("視覺目標:" + "(" + MainWindows.VisionRst[i, 1].ToString("0,0") + "," + MainWindows.VisionRst[i, 2].ToString("0,0") + ")");
                       }
                   }
                   //分數清空
                   MainWindows.VisionRst[i, 0] = 0;
               }
               //解鎖
               MainWindows.SetMoveSyncFlag = 0;
           }
       }
       Thread.Sleep(100);
   }
}

(2)流水線同步分揀代碼詳情。

/************************************************************************************
'任務編號:     無
'函數功能:     流水線同步分揀
'Input:        無
'Output:       無 
'返回值:       無             
**************************************************************************************/
public void RunSubTaskMotion()
{
   float[] MoveSyncTemp = new float[5];
   float TempMpos = 0;
   while (SysRunFlag > 0)
   {
       while (SysRunFlag == 1)
       {
           if (MainWindows.MoveSyncBuff[0, 0] == 1)
           {
               MainWindows.ZauxErr = zmcaux.ZAux_Direct_GetMpos(MainWindows.g_Handle, MainWindows.ConveyorAxisId, ref TempMpos);
               //如果編碼器位置抓取正確
               if (0 == MainWindows.ZauxErr) 
               {
                   //編碼器往前運動了多少
                   TempMpos = TempMpos - MainWindows.MoveSyncBuff[0, 4];

                   //判斷是否處于同步起始區
                   if (((MainWindows.MoveSyncBuff[0, 1] + TempMpos) >= MainWindows.SyncReX[0]) && ((MainWindows.MoveSyncBuff[0, 1] + TempMpos) <= MainWindows.SyncReX[1]))
                   {
                       WriteLog("開始同步抓取");
                       //取一組數據
                       MoveSyncTemp[0] = MainWindows.MoveSyncBuff[0, 1] ;    //X
                       MoveSyncTemp[1] = MainWindows.MoveSyncBuff[0, 2] ;    //Y  
                       MoveSyncTemp[2] = MainWindows.GetBinHigt;            //取料高度
                       MoveSyncTemp[3] = MainWindows.MoveSyncBuff[0, 3];    //Aanle
                       MoveSyncTemp[4] = MainWindows.MoveSyncBuff[0, 4];    //Mpos
                      //下發同步運動的指令
                      //0、復位輸出口
                       zmcaux.ZAux_Direct_MoveOp(MainWindows.g_Handle, MainWindows.gVAxisList[0], MainWindows.VacSucIo, 0);
                       //1、先同步上傳送帶
                       zmcaux.ZAux_Direct_MoveSync(MainWindows.g_Handle, 0, 0, MainWindows.MoveSyncBuff[0, 4], MainWindows.ConveyorAxisId, 4, MainWindows.gVAxisList, MoveSyncTemp);
                       //2、同步一段時間(關節軸有滯后) 50ms
                       zmcaux.ZAux_Direct_MoveSync(MainWindows.g_Handle, 0, 50, MainWindows.MoveSyncBuff[0, 4], MainWindows.ConveyorAxisId, 4, MainWindows.gVAxisList, MoveSyncTemp);
                       //3、打開真空吸嘴
                       zmcaux.ZAux_Direct_MoveOp(MainWindows.g_Handle, MainWindows.gVAxisList[0], MainWindows.VacSucIo, 1);
                       //4、同步一段時間 1500ms
                       zmcaux.ZAux_Direct_MoveSync(MainWindows.g_Handle, 0, 700, MainWindows.MoveSyncBuff[0, 4], MainWindows.ConveyorAxisId, 4, MainWindows.gVAxisList, MoveSyncTemp);
                       //5、同步段把Z軸提升到安全高度,選擇軸到放料角度
                       MoveSyncTemp[2] = MainWindows.StandPos[2];             //取料高度
                       zmcaux.ZAux_Direct_MoveSync(MainWindows.g_Handle, 0, 100, MainWindows.MoveSyncBuff[0, 4], MainWindows.ConveyorAxisId, 4, MainWindows.gVAxisList, MoveSyncTemp);
                       //4、解除同步去放料點
                       MoveSyncTemp[0] = MainWindows.EmptPos[0];    //X
                       MoveSyncTemp[1] = MainWindows.EmptPos[1];    //Y  
                       MoveSyncTemp[2] = MainWindows.EmptPos[2];    //放料高度
                       MoveSyncTemp[3] = MainWindows.EmptPos[3];    //Aanle
                       zmcaux.ZAux_Direct_MoveSync(MainWindows.g_Handle, -1, 0, 0, -1, 4, MainWindows.gVAxisList, MoveSyncTemp);
                       //5、關閉真空吸嘴放料,Delay100ms
                       zmcaux.ZAux_Direct_MoveOp(MainWindows.g_Handle, MainWindows.gVAxisList[0], MainWindows.VacSucIo, 0);
                       zmcaux.ZAux_Direct_MoveDelay(MainWindows.g_Handle, MainWindows.gVAxisList[0], 100);
                       //6、去安全高度
                       MoveSyncTemp[0] = MainWindows.EmptPos[0];    //X
                       MoveSyncTemp[1] = MainWindows.EmptPos[1];    //Y  
                       MoveSyncTemp[2] = MainWindows.StandPos[2];    //放料高度
                       MoveSyncTemp[3] = MainWindows.EmptPos[3];    //Aanle
                       zmcaux.ZAux_Direct_MoveAbs(MainWindows.g_Handle, 4, MainWindows.gVAxisList, MoveSyncTemp);

                       //操作MoveSyncBuff數據先加鎖
                       while (true)
                       {
                           if (MainWindows.SetMoveSyncFlag == 0)
                           {
                               MainWindows.SetMoveSyncFlag = 1;
                               break;
                           }
                       }
                       //視覺匹配緩沖區數據往前覆蓋
                       for (int k = 0; k < 49; k++)
                       {
                           MainWindows.MoveSyncBuff[k, 0] = MainWindows.MoveSyncBuff[k + 1, 0];
                           MainWindows.MoveSyncBuff[k, 1] = MainWindows.MoveSyncBuff[k + 1, 1];
                           MainWindows.MoveSyncBuff[k, 2] = MainWindows.MoveSyncBuff[k + 1, 2];
                           MainWindows.MoveSyncBuff[k, 3] = MainWindows.MoveSyncBuff[k + 1, 3];
                           MainWindows.MoveSyncBuff[k, 4] = MainWindows.MoveSyncBuff[k + 1, 4];
                       }
                       //解鎖
                       MainWindows.SetMoveSyncFlag = 0;
                       //等待輸出口打開
                       int TimeOut = 10000;
                       TimeOut = 100000;
                       //等待軸停止
                       int AxisIdle = 0;                 //軸停止狀態
                       while (TimeOut > 0)
                       {
                           zmcaux.ZAux_Direct_GetIfIdle(MainWindows.g_Handle, MainWindows.gVAxisList[0], ref AxisIdle);
                           if (AxisIdle == (-1))
                           {
                               break;
                           }
                           Thread.Sleep(10);
                           TimeOut = TimeOut - 10;
                       }
                       if (TimeOut <= 0)
                       {
                           //超時要報錯,程序要停止
                           WriteLog("等待軸停止超時");
                           //Thread.Sleep(100);
                           SysRunFlag = 0;
                           break;
                       }
                       SortNum.Text = (Convert.ToInt32(SortNum.Text) + 1).ToString();
                       WriteLog("放料成功");
                       //退出while 單次循環
                       continue;
                   }
                   else if ((MainWindows.MoveSyncBuff[0, 1] + TempMpos) > MainWindows.SyncReX[1])
                   {
                       //操作MoveSyncBuff數據先加鎖
                       while (true)
                       {
                           if (MainWindows.SetMoveSyncFlag == 0)
                           {
                               MainWindows.SetMoveSyncFlag = 1;
                               break;
                           }
                       }
                       //視覺匹配緩沖區數據往前覆蓋
                       for (int k = 0; k < 49; k++)
                       {
                           MainWindows.MoveSyncBuff[k, 0] = MainWindows.MoveSyncBuff[k + 1, 0];
                           MainWindows.MoveSyncBuff[k, 1] = MainWindows.MoveSyncBuff[k + 1, 1];
                           MainWindows.MoveSyncBuff[k, 2] = MainWindows.MoveSyncBuff[k + 1, 2];
                           MainWindows.MoveSyncBuff[k, 3] = MainWindows.MoveSyncBuff[k + 1, 3];
                           MainWindows.MoveSyncBuff[k, 4] = MainWindows.MoveSyncBuff[k + 1, 4];
                       }
                       //解鎖
                       MainWindows.SetMoveSyncFlag = 0;
                       //如果視覺匹配緩沖區沒有數據了
                       if (MainWindows.MoveSyncBuff[0, 0] == 0)
                       {
                           //Delta去待機位
                           zmcaux.ZAux_Direct_MoveAbs(MainWindows.g_Handle, 4, MainWindows.gVAxisList, MainWindows.StandPos);
                           WriteLog("去待機位");
                       }
                   }
               }
           }
           else
           {
               //Delta去待機位
               zmcaux.ZAux_Direct_MoveAbs(MainWindows.g_Handle, 4, MainWindows.gVAxisList, MainWindows.StandPos);
           }
           Thread.Sleep(50);
       }
       //停止傳送帶
       zmcaux.ZAux_Direct_Single_Cancel(MainWindows.g_Handle, MainWindows.ConveyorAxisId, 2);
   }
}

本次,正運動技術C#之Delta并聯機械手的視覺同步分揀,就分享到這里。

更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 運動控制器
    +關注

    關注

    2

    文章

    445

    瀏覽量

    25176
  • 機器視覺
    +關注

    關注

    163

    文章

    4517

    瀏覽量

    122371
  • 機械手
    +關注

    關注

    7

    文章

    344

    瀏覽量

    30235
  • 0C
    0C
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8079
  • 正運動技術
    +關注

    關注

    0

    文章

    118

    瀏覽量

    615
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于機器視覺機械手裝配系統方案設計

    本文設計并實現了基于機器視覺機械手裝配系統,可在線完成對不同型號和任意擺放工件的裝配任務。系統主要由機器視覺系統和機械手裝配系統組成。
    發表于 06-23 10:21 ?4059次閱讀
    基于機器<b class='flag-5'>視覺</b>的<b class='flag-5'>機械手</b>裝配系統方案設計

    EtherCAT運動控制器Delta機械手應用

    以正運動ZMC406R運動控制器為例,講解Delta機械手運動控制應用開發。
    的頭像 發表于 05-09 10:47 ?2113次閱讀
    EtherCAT運動控制器<b class='flag-5'>Delta</b><b class='flag-5'>機械手</b>應用

    C#Delta并聯機械手視覺相機標定與形狀匹配

    本文主要介紹如何通過正運動VPLC711視覺接口來實現相機標定和形狀匹配功能。
    的頭像 發表于 06-26 15:11 ?1277次閱讀
    <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

    深圳機械手視覺分揀系統在手機蓋板的應用

    的裝配精度,不便于將產品的精度穩定地控制在所需的精度范圍內。因而,當組裝效率和裝配精度均需要提升時,人工裝配的方式便于實現效率和精度之間的平衡。四元數機械手視覺分揀系統應用于手機蓋板,末端工位識別抓取
    發表于 05-18 09:40

    湖北視覺分揀機械手系統在手機蓋板的應用

    視覺分揀機械手是工廠自動化立體倉庫及物流配送中心對物流進行分類、整理的關鍵設備之一,通過應用分揀機可實現物流中心準確、快捷的工作。因此,在快遞行業他被譽為“智能機器
    發表于 08-11 09:43

    深圳機械手視覺分揀系統有哪些特點及參數?

    可操作性好,可支持與觸摸屏聯機操作;4、通過識別產品特征,計算產品偏移值,控制機械手進行定位抓取;5、可根據客戶具體機型進行定制化的高效方案;6、機械手操作靈活、占地空間小。深圳機械手
    發表于 09-22 15:33

    機械手圖冊——機械手設計必看

    機械手設計必看
    發表于 02-01 15:14 ?79次下載

    使用并聯機器人和機器視覺技術實現自動分揀機器視覺軟件系統的設計

    針對我國食品生產行業的實際需求,基于并聯機器人,機器視覺等先進技術,構建了面向食品生產包裝的高速機器人分揀系統,研究了輸送帶上運動食品的機器視覺定位算法,設計了運動食品分級與定位的機器
    發表于 11-16 18:05 ?26次下載
    使用<b class='flag-5'>并聯機</b>器人和機器<b class='flag-5'>視覺</b>技術實現自動<b class='flag-5'>分揀</b>機器<b class='flag-5'>視覺</b>軟件系統的設計

    Delta并聯機械臂實現電磁鐵搬運功能

    1. 功能說明 ? ?R037樣機是一款Delta并聯機械臂。本文示例將利用Delta并聯機械臂實現不同點定點搬運磁鐵物料的效果。 2. 結構說明 ? ?
    的頭像 發表于 03-09 08:43 ?1425次閱讀
    <b class='flag-5'>Delta</b><b class='flag-5'>并聯機械</b>臂實現電磁鐵搬運功能

    機器視覺控制機械手的具體過程

    機器視覺控制機械手是一種將機器視覺技術與機械手控制技術相結合的自動化技術。它通過機器視覺系統獲取目標物體的圖像信息,然后利用圖像處理技術對圖
    的頭像 發表于 07-04 10:40 ?1289次閱讀

    機器視覺運動控制一體機在DELTA并聯機械手視覺上下料應用

    機器視覺運動控制一體機在DELTA并聯機械手視覺上下料的應用
    的頭像 發表于 10-24 09:02 ?971次閱讀
    機器<b class='flag-5'>視覺</b>運動控制一體機在<b class='flag-5'>DELTA</b><b class='flag-5'>并聯機械手</b><b class='flag-5'>視覺</b>上下料應用

    DELTA并聯機械手視覺方案榮獲2024年度機器人應用典型案例獎

    基于機器視覺運動控制一體機在DELTA視覺柔振上下料領域的應用
    的頭像 發表于 01-13 16:42 ?347次閱讀
    <b class='flag-5'>DELTA</b><b class='flag-5'>并聯機械手</b><b class='flag-5'>視覺</b>方案榮獲2024年度機器人應用典型案例獎

    視覺運控一體機在DELTA并聯機械手動態跟隨抓取的應用

    正運動DELTA并聯機械手動態跟隨抓取解決方案
    的頭像 發表于 04-29 10:34 ?158次閱讀
    <b class='flag-5'>視覺</b>運控一體機在<b class='flag-5'>DELTA</b><b class='flag-5'>并聯機械手</b>動態跟隨抓取的應用

    運動控制模塊:Delta機械手柔性上下料開發零門檻!

    正運動運動控制模塊結合第三方視覺實現Delta機械手柔性上下料應用開發
    的頭像 發表于 05-23 10:29 ?120次閱讀
    運動控制模塊:<b class='flag-5'>Delta</b><b class='flag-5'>機械手</b>柔性上下料開發零門檻!
    主站蜘蛛池模板: 久久99国产精品久久99 | 色综合久久九月婷婷色综合 | 丁香婷婷久久大综合 | 永久免费看 | 丁香激情五月 | 午夜精品福利影院 | 日本在线不卡免 | 免费啪视频| 日本福利网址 | 婷婷色网站 | 在线永久免费观看黄网站 | 国产精品情人露脸在线观看 | 午夜无码国产理论在线 | 夜夜夜久久久 | 91大神在线精品视频一区 | 四虎影院永久免费观看 | 久久99精品国产麻豆宅宅 | 伊人久久影院大香线蕉 | 婷婷中文网 | 国产无圣光高清一区二区 | 国产又黄又爽又猛的免费视频播放 | 天堂在线免费视频 | 狠狠摸狠狠操 | 欧美黄色免费网址 | 欧美最猛性xxxx高清 | 日本免费人成黄页网观看视频 | 狠狠干免费视频 | 欧美国产精品主播一区 | 欧美精品综合一区二区三区 | 国产精品久久久精品三级 | 免费无码看av的网站 | 黄频免费 | 99久久国产免费中文无字幕 | 欧美透逼视频 | 狠狠色伊人亚洲综合第8页 狠狠色依依成人婷婷九月 狠狠色影院 | 久久精品国产亚洲5555 | 亚洲一区二区色 | 色六月婷婷 | 午夜剧场毛片 | 国产妇女在线 | 久青草久青草高清在线播放 |