那曲檬骨新材料有限公司

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

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

3天內不再提示

myCobot Pro600六軸機械臂與3D深度視覺:物體精確識別抓取堆疊

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2023-09-12 10:51 ? 次閱讀

myCobot 600技術案例

Introduction

隨著時代的進步,各種精密的機械臂,人形機器人不斷的問世。我們即將迎來到處都是機器人的高科技時代。為了跟上時代的腳步,我最近入手了一臺myCobot pro 600機械臂,我主要是想要用它來學習機械臂相關得控制以及機器視覺的項目,給以后的實踐中在本文中,我將記錄使用myCobot pro 600結合深度相機來實現物體得跟蹤以及抓取。

接下來我會介紹我使用到的設備

Equipment

myCobot pro 600

myCobot pro 600是一款六個自由度的機械臂,它的工作半徑最大達到600mm,它末端最大負載達到2kg,搭載的電機是諧波減速器。它還是一款以樹莓派4B為核心控制主板的嵌入式機械臂搭配ubuntu20.0的系統。我選擇他的原因有幾個:

1、它不需要額外的電腦進行控制,可以直接使用樹莓派進行控制

2、它的工作半徑和末端負載能力剛好適合我的場景

3、大象機器人為它設計了一款可視化的控制軟件robotflow,可以進行一些拖拽式的編程

1.png

SPECIFICATIONS

Degree of Freedom6
Payload2000g
Weight8800g
Working Radius600mm
Positioning Accuracy±0.5mm
Working Temperature-5℃~45℃
Working Lifespan2000h
Power InputDC 48V
JOINT ROTATION RANGE
Joint1-180°~+180°
Joint2-270°~+90°
Joint3-150°~+150°
Joint4-260°~+80°
Joint5-168°~+168°
Joint6-174°~+174°
Joint Maximum Speed115°/s

FS820-E1-Depth camera

深度相機可以捕捉深度信息,可以獲得物體的三維坐標,距離,尺寸和體積。深度相機使用多種算法技術來測量物體的深度,如結構光、時間飛行和立體視覺等。在機器視覺應用中,深度相機可以用于點云分割、物體識別和3D重建等任務。

2.png

ModelFS820-E1
Working Distance0.3m-1.4m
FOV(H/V)66°/44°
Accuracy(Z)0.14mm@400mm;1.53mm@700mm
Accuracy(XY)4.88mm@700mm
Depth Resolution1280*800
RGB Resolution1920*1080
Power InterfaceDC 12V/24V
Trigger SignalHR10A-7P-6S
Data InterfaceGigabit Ethernet
Power Consumption2.8W ~ 3.9W
TemperatureStorage:-10℃~55℃; Operation:0℃~45℃
Ingress ProtectionIP41
Size95mm45mm43mm
Weight228g

Project

我使用機械臂有一段時間了,大部分的時間都是用來去執行一些路徑,重復的做一些動作。如果只是這樣的話,機械臂在很多方面都是不能夠勝任人們的工作的。我們工作的時候手和眼睛是需要進行配合,當然機械臂我們要給他配置一個“眼睛”,就是深度相機。

我今天要記錄的是用機械臂+相機來是想物體的抓取,不只是一個平面的抓取,而是一個能夠根據獲取的深度信息進行判斷高度的抓取。

接下來我先簡要介紹一下項目的結構。

3.png

Clear Task:首先我們要明確我的目標,做一個深度視覺的機械臂抓取木塊的任務

Hardware preparation:機械臂使用的是mycobot pro 600,深度相機用的是FS820-E1

Hand-eye calibration:進行機械臂和相機之間的手眼標定,以建立它們之間的坐標系轉換關系。通過手眼標定,可以確定機械臂末端執行器的位置和姿態與相機坐標系之間的轉換關系,從而實現精確的視覺引導和抓取。

Object detection and recognition:確定被測物體為木塊,訓練算法識別木塊,通過大量的數據讓機器能夠精準的識別出被測物體

Robotic arm path planning:識別到被測物體之后返回一個物體的三維坐標,給到機械臂執行抓取,要規劃機械臂的運動軌跡達到抓取的點位

Test:完成上邊測試之后,需要進行測試,不斷的進行調整。

Execute:測試完成后,去執行任務

介紹完項目的結構,讓我們開始實現Hand-eye calibration。

Hand-eye calibration

通常情況下,對于機械臂執行視覺類的抓取任務,手眼標定是必需的。手眼標定是一種將機械臂的坐標系與深度相機的坐標系進行關聯的過程。通過手眼標定,可以確定機械臂末端執行器的位置和姿態與相機坐標系之間的轉換關系,從而實現精確的視覺引導和抓取。

第一步

需要準備一個標定板:選擇黑白相間的方格為標定板,棋盤格的幾何結構非常規則,方格之間的邊緣和角點位置可以被精確地計算和模型化。這使得標定算法可以準確地估計相機與棋盤格之間的幾何關系。

4.png

第二步

固定深度相機和機械臂

我要做的是眼在手外,就是eye to hand的模式,相機的位置不會隨著機械臂的改變而改變。

5.png

第三步

匹配特偵點

將標定板在相機視野范圍內進行多次的旋轉移動,捕獲這些圖片以提供豐富的圖片信息,對每個標定板圖像,使用角點檢測算法來提取標定板上的取方格交叉點的坐標特征點。

6.png

7.png

用的是相機自帶的RVS(robot vision suite)軟件,里面提前編寫好捕獲圖片,提取特征點,匹配特偵點的方法。

第四步

計算標定坐標值

得到了20張不同角度,不同位置的特偵點的數據,接下來使用RVS提供的算法在程序中進行計算得出eye to hand標定的值。記錄下手眼標定的結果等到后面進行機械臂坐標系和相機坐標系轉化的關鍵。

8.png

9.png

到這里手眼標定就結束了,接下來我們來訓練機器識別被測物體。

Object detection and recognition

首先得采集我們的被測物體,木塊。我們用一個開源軟件labelme,LabelMe是一個流行的開源圖像標注工具,用于創建和編輯圖像標注數據集。旨在簡化圖像標注的過程,并為機器學習計算機視覺任務提供標注數據。

采集被測物圖片

像前邊標定一樣,采集的圖片越多數據越精準。將他保存在指定的路徑中。

10.png

安裝labelme

python中安裝依賴庫,以便后續的使用

pip install PyQt5
pip install labelme

標注過程

打開labelme,找到我們保存采集圖片的路徑,然后點擊Create Polygons,為木塊繪制紅色的邊框,完成標記后給標記結果明明“wooden block”,一直重復這個步驟為木塊繪制邊框,直至標記完所有采集的圖片。

11.png

這是人為標記的木塊,要實現機器識別就得讓機器學會檢測該標記的物體。接下來要訓練AI 模型,RVS軟件中有這個算法,我們只需要將標記好的圖片提交到AI訓練功能,最后會生成一個Train output文件夾,在這里可以獲取標記的權重文件。

AI 推理

AI推理它使得訓練好的模型能夠應用到實際場景中,使用先前經過訓練的參數和權重來處理新的輸入數據,并生成相應的輸出結果。

1)使用 FilterBoxList 算子(重命名為"點云高度排序")來篩選木塊并按照木塊列表的 Z 軸坐標值進行排序。這個算子的屬性值需要按照下面的要求進行調整。

2)使用 FindElement 算子來獲取適合抓取的平面。在算子屬性中選擇類型為"Plane",并通過調整 distance_threshold 屬性來選擇合適的平面。可以打開點云可視化屬性來查看所選的平面。

3)使用 MinimumBoundingBox 算子(重命名為"獲得外包框")來獲取平面的中心點坐標。在算子屬性中選擇類型為"ApproxMVBB",并給該算子提供一個 ref_pose,這個 ref_pose 連接到先前提到的"TowardsDownPose"算子,它表示繞著 X 軸旋轉 180°,使 Z 軸朝下,以便機器人抓取。可以打開"GetBoxCube"屬性面板中的 box 和 box_pose 可視化屬性來顯示計算出的平面中心點。
12.png

總結起來,這個操作的目標是從點云中篩選出木塊并按照高度進行排序,然后找到適合抓取的平面,并計算該平面的中心點坐標。這個過程可能是為了進一步在機器人操作中使用這些信息,例如進行抓取任務或路徑規劃。
13.png

被測物體的識別和檢測就完成了。

再結合手眼標定,就能識別出木塊的時候會得到木塊的坐標信息。這樣就獲取到了木塊相對于機械臂的坐標。

14.png

下圖是RVS中的仿真模擬3D環境。最左邊帶坐標的是深度相機的坐標系的標志。

15.png

Robotic arm path planning

在上一步操作中,我們得到了resultPose,也就是木塊相對于機械臂的坐標,有了坐標就可以對機械臂進行控制,將機械臂的末端運行到被測物體坐標的上方。

下面是部分實現路徑規劃的代碼

import _thread
import socket
import json
import time
import sys
import math
import copy
import numpy as np
from RoboFlowSocket import RoboFlowSocket

#旋轉矩陣和歐拉角之間的轉換
defCvtRotationMatrixToEulerAngle(pdtRotationMatrix):
    pdtEulerAngle = np.zeros(3)

    pdtEulerAngle[2]= np.arctan2(pdtRotationMatrix[1,0], pdtRotationMatrix[0,0])

    fCosRoll = np.cos(pdtEulerAngle[2])
    fSinRoll = np.sin(pdtEulerAngle[2])

    pdtEulerAngle[1]= np.arctan2(-pdtRotationMatrix[2,0],(fCosRoll * pdtRotationMatrix[0,0])+(fSinRoll * pdtRotationMatrix[1,0]))
    pdtEulerAngle[0]= np.arctan2((fSinRoll * pdtRotationMatrix[0,2])-(fCosRoll * pdtRotationMatrix[1,2]),(-fSinRoll * pdtRotationMatrix[0,1])+(fCosRoll * pdtRotationMatrix[1,1]))

return pdtEulerAngle

defCvtEulerAngleToRotationMatrix(ptrEulerAngle):
    ptrSinAngle = np.sin(ptrEulerAngle)
    ptrCosAngle = np.cos(ptrEulerAngle)

    ptrRotationMatrix = np.zeros((3,3))
    ptrRotationMatrix[0,0]= ptrCosAngle[2]* ptrCosAngle[1]
    ptrRotationMatrix[0,1]= ptrCosAngle[2]* ptrSinAngle[1]* ptrSinAngle[0]- ptrSinAngle[2]* ptrCosAngle[0]
    ptrRotationMatrix[0,2]= ptrCosAngle[2]* ptrSinAngle[1]* ptrCosAngle[0]+ ptrSinAngle[2]* ptrSinAngle[0]
    ptrRotationMatrix[1,0]= ptrSinAngle[2]* ptrCosAngle[1]
    ptrRotationMatrix[1,1]= ptrSinAngle[2]* ptrSinAngle[1]* ptrSinAngle[0]+ ptrCosAngle[2]* ptrCosAngle[0]
    ptrRotationMatrix[1,2]= ptrSinAngle[2]* ptrSinAngle[1]* ptrCosAngle[0]- ptrCosAngle[2]* ptrSinAngle[0]
    ptrRotationMatrix[2,0]=-ptrSinAngle[1]
    ptrRotationMatrix[2,1]= ptrCosAngle[1]* ptrSinAngle[0]
    ptrRotationMatrix[2,2]= ptrCosAngle[1]* ptrCosAngle[0]

return ptrRotationMatrix

# 抓取位置的路徑規劃
defcompute_end_effector_pose(current_pose, tool_pose):
# 從位姿矩陣中提取旋轉矩陣和平移向量
    current_rotation = current_pose[:3,:3]
    current_translation = current_pose[:3,3]
    tool_rotation = tool_pose[:3,:3]
    tool_translation = tool_pose[:3,3]

# 計算工具坐標系在基坐標系下的位姿
    new_rotation = np.dot(current_rotation, tool_rotation)
    new_translation = np.dot(current_rotation, tool_translation)+ current_translation

# 組合旋轉矩陣和平移向量得到新的位姿矩陣
    new_pose = np.eye(4)
    new_pose[:3,:3]= new_rotation
    new_pose[:3,3]= new_translation

return new_pose

我們來一起看看效果如何。

Honeycam 2023-09-11 19-11-41.gif

我預留了一段距離,機械臂末端到木塊的距離。這一段距離是給機械安裝上夾爪的距離。我在桌面上放了幾張白紙,那是因為我使用的被測物體跟我放置的桌面的顏色相似度較高,為了能夠快速識別被測物體。

遇到的問題

1 最一開始在考慮機械臂跟深度相機如何建立聯系,兩個處理器之間建立聯系就有點復雜,最后用了python的socket的庫來實現上位機對myCobot pro 600的控制。

2 在測試的時候會有個別的坐標出現了偏差,后來檢測原因是因為,在做完手眼標定之后,機械臂和深度相機的位置一定是要固定住的,不能再標定完之后再去做改變。

3 被測物的識別的快慢的問題。在圖片中我們可以看到桌面上放了幾張白紙,那是因為我們的被測物體跟桌面的背景色的紋理有些相似,所以不能快速的識別出來。(是為了提高識別率從才放的白紙)機器終究還是機器,抵不過人類的眼睛。

總結

目前的項目還不夠完善,后續我考慮加上末端的執行器將木塊抓起來。但是這個也不能真正的運用到實際場景當中使用,是不需要我們來抓木塊。換個角度,如果說他是一堆零件堆在那,用機械臂將一大堆的零件進行分類,給人們提供一個幫助那就很有用了。因為在一堆雜亂的零件中找零件是一件非常痛苦的事情,如果有遇到過這個問題的就能明白我在說什么了。

如果你有什么想法,或者有趣的建議歡迎在下方評論留言。你要是覺得喜歡這篇文章給予我一個點贊或者評論吧!

審核編輯 黃宇

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

    關注

    211

    文章

    28646

    瀏覽量

    208428
  • 機械臂
    +關注

    關注

    12

    文章

    520

    瀏覽量

    24725
收藏 人收藏

    評論

    相關推薦

    如何使用PLC控制myCobot 320機械

    根據持續的用戶反饋,目前市場對 PLC 與 myCobot 系統集成的需求很大,因此本文提供的案例介紹了如何使用 PLC(可編程邏輯控制器)來控制 myCobot 320 機械。本案
    的頭像 發表于 01-23 14:03 ?237次閱讀
    如何使用PLC控制<b class='flag-5'>myCobot</b> 320<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    使用myCobot 280機械結合ROS2系統搭建機械分揀站

    這篇文章是來自Automatic Addison的開源項目,已獲作者授權轉載自github。本項目的主要內容是使用myCobot 280機械結合ROS2系統搭建機械分揀站。
    的頭像 發表于 01-15 09:22 ?141次閱讀
    使用<b class='flag-5'>myCobot</b> 280<b class='flag-5'>機械</b><b class='flag-5'>臂</b>結合ROS2系統搭建<b class='flag-5'>機械</b>分揀站

    深度解析!RK3568 加持機械是如何實現顏色識別抓取的?

    一、產品簡介TL3568-PlusTEB人工智能實驗箱國產高性能處理器64位4核低功耗2.0GHz超高主頻1T超高算力NPU兼容鴻蒙等國產操作系統二、實驗目的1、了解機械識別顏色抓取
    的頭像 發表于 01-15 08:07 ?139次閱讀
    <b class='flag-5'>深度</b>解析!RK3568 加持<b class='flag-5'>機械</b><b class='flag-5'>臂</b>是如何實現顏色<b class='flag-5'>識別</b>與<b class='flag-5'>抓取</b>的?

    國產芯RK3568教學實驗箱操作案例:顏色識別抓取積木

    一、實驗目的 本節視頻的目的是了解機械識別顏色抓取積木的基本原理和流程,并掌握機械
    發表于 12-05 14:30

    3D堆疊像素探測器芯片技術詳解(72頁PPT)

    3D堆疊像素探測器芯片技術詳解
    的頭像 發表于 11-01 11:08 ?2894次閱讀
    <b class='flag-5'>3D</b><b class='flag-5'>堆疊</b>像素探測器芯片技術詳解(72頁PPT)

    探索3D視覺技術在活塞桿自動化抓取中的應用

    隨著工業4.0時代的到來,智能制造成為工業發展的重要趨勢。作為智能制造的關鍵技術之一,3D視覺技術在活塞桿抓取領域的應用前景十分廣闊。
    的頭像 發表于 09-07 15:38 ?307次閱讀

    智能目標顏色識別抓取丨國產Cortex-A55人工智能實驗箱機械案例分享

    智能目標顏色識別抓取丨國產Cortex-A55人工智能實驗箱機械案例分享
    的頭像 發表于 08-10 08:32 ?418次閱讀
    智能目標顏色<b class='flag-5'>識別</b><b class='flag-5'>抓取</b>丨國產Cortex-A55人工智能實驗箱<b class='flag-5'>機械</b><b class='flag-5'>臂</b>案例分享

    3D視覺技術廣闊的應用前景

    隨著工業自動化領域的迅猛進步,對制造過程中抓取作業的精度與效率提出了更為嚴苛的要求。作為機械構造中的核心組件,活塞桿的精準抓取成為了保障產品質量、提升生產效率的關鍵環節。在此背景下,3D
    的頭像 發表于 07-29 15:56 ?423次閱讀
    <b class='flag-5'>3D</b><b class='flag-5'>視覺</b>技術廣闊的應用前景

    基于維力傳感器的機械自動裝配應用

    維力傳感器是一種特殊的力覺傳感器,可以測量物體在笛卡爾坐標系下三個軸向的力和力矩,其內部采用高度敏感的材料和精密機械構造,可以為機械提供
    的頭像 發表于 06-06 13:49 ?905次閱讀
    基于<b class='flag-5'>六</b>維力傳感器的<b class='flag-5'>機械</b><b class='flag-5'>臂</b>自動裝配應用

    3D視覺技術無序抓取引導活塞桿

    隨著工業4.0時代的到來,智能制造成為工業發展的重要趨勢。作為智能制造的關鍵技術之一,3D視覺技術在活塞桿抓取領域的應用前景十分廣闊。
    的頭像 發表于 05-13 13:40 ?337次閱讀
    <b class='flag-5'>3D</b><b class='flag-5'>視覺</b>技術無序<b class='flag-5'>抓取</b>引導活塞桿

    機器人3D視覺引導系統框架介紹

    通過自主開發的3D掃描儀可獲準確并且快速地獲取場景的點云圖像,通過3D識別算法,可實現在對點云圖中的多種目標物體進行識別和位姿估計。
    發表于 04-29 09:31 ?377次閱讀
    機器人<b class='flag-5'>3D</b><b class='flag-5'>視覺</b>引導系統框架介紹

    大象機器人開源協作機械myCobot 630 全面升級!

    1. 開篇概述 在快速發展的機器人技術領域中,Elephant Robotics的myCobot 600已經證明了其在教育、科研和輕工業領域的顯著適用性。作為一款具備自由度的機械
    的頭像 發表于 04-28 15:19 ?1067次閱讀
    大象機器人開源協作<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>myCobot</b> 630 全面升級!

    奧比中光攜多款3D相機深度參與國內3D視覺最高規格會議

    4月19日-21日,國內3D視覺最高規格會議China 3DV 2024大會在深圳舉行。奧比中光作為大會鉑金贊助商,攜多款不同技術路線的3D相機深度
    的頭像 發表于 04-24 09:26 ?488次閱讀
    奧比中光攜多款<b class='flag-5'>3D</b>相機<b class='flag-5'>深度</b>參與國內<b class='flag-5'>3D</b><b class='flag-5'>視覺</b>最高規格會議

    富唯智能案例|3D視覺引導機器人抓取鞋墊上下料

    隨著制造業對自動化、智能化需求的不斷提升,如何實現鞋墊上下料的精準、高效操作成為了企業亟待解決的問題。傳統的上下料方式往往依賴人工,存在效率低下、精度不足等問題。而富唯智能的3D視覺引導機器人抓取解決方案,則能夠有效解決這些問題
    的頭像 發表于 04-08 16:57 ?441次閱讀
    富唯智能案例|<b class='flag-5'>3D</b><b class='flag-5'>視覺</b>引導機器人<b class='flag-5'>抓取</b>鞋墊上下料

    嘈雜環境下評估機械動作識別性能的策略與方法

    本文探討了在嘈雜環境中利用機器學習技術進行機械動作識別的問題。通過使用視覺系統和深度學習模型,作者提出的方法在
    發表于 02-27 14:35 ?398次閱讀
    嘈雜環境下評估<b class='flag-5'>機械</b><b class='flag-5'>臂</b>動作<b class='flag-5'>識別</b>性能的策略與方法
    大发888手机版客户端| bet365体育投注心得| 百家乐官网代理打| 澳博娱乐| 百家乐群的微博| 百家乐官网微乐| 优博国际娱乐| 诺贝尔百家乐的玩法技巧和规则| 网上百家乐官网的玩法技巧和规则| 盛世国际| 大发888在线娱乐合作伙伴| 百家乐与龙虎斗怎么玩| LV百家乐官网赢钱LV| 网上百家乐官网骗人吗| 娱乐城免费领取体验金| 威尼斯人娱乐cheng| 澳门百家乐规则视频| 大三巴百家乐官网的玩法技巧和规则 | 打百家乐的技巧| 百家乐官网在线娱乐可信吗 | 蓝盾百家乐庄家利润分| 百家乐庄闲下载| 百家乐官网多少钱| 百家乐官网信誉平台现金投注 | 赌场百家乐的玩法技巧和规则| 郑州百家乐官网的玩法技巧和规则| 百家乐官网视频一下| 娱乐城送彩金| 申博太阳城官网| 加多宝百家乐的玩法技巧和规则| 百家乐娱乐城赌场| 潘多拉百家乐官网的玩法技巧和规则 | 大发888网页游戏平台| 真人百家乐开户须知| 豪博百家乐现金网| 百家乐园会员注册| 风水24龙| 百家乐现场网络| 百家乐视频游戏官网| 百家乐蓝盾假网| 澳门百家乐技术|