91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

智能搬運機器人系列之利用X3派實現(xiàn)目標(biāo)物塊的識別與抓取

地瓜機器人 ? 2022-12-09 17:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原理講解

1.gif

根據(jù)目標(biāo)物塊的特征,首先通過機械結(jié)構(gòu)使目標(biāo)物塊每次被識別時,目標(biāo)物塊都出現(xiàn)在攝像頭的固定角度,固定距離。這樣就保證了攝像頭每次識別目標(biāo)物塊時,目標(biāo)物塊都會出現(xiàn)在拍攝照片的固定像素范圍。

其次,根據(jù)目標(biāo)物塊的特點(物塊之間只有顏色差異)只要完成對目標(biāo)物塊出現(xiàn)范圍的像素點顏色的識別,就能判斷出具體是哪一個目標(biāo)物塊。所以采用了對特定區(qū)域像素點的顏色識別算法。從演示視頻中可以看出,每次抓取物塊之前,都會先通過U型推手把目標(biāo)物塊先固定在車身正前方的U型推手內(nèi)如下圖。

2.png

此時補光燈進行補光,以減少環(huán)境光對識別結(jié)果的影響。從圖片也可以看出,識別環(huán)節(jié),攝像頭是正對目標(biāo)物塊,而且距離很近,這個設(shè)計就保證了攝像頭拍攝到的大部分像素點都被目標(biāo)物塊的顏色所填滿,增加了識別面積。

3.png

可以看到,攝像頭拍攝到的圖片,目標(biāo)物塊幾乎填滿了整個圖片。接下來就通過旭日X3派進行顏色識別,使用旭日X3派借助OpenCV,通過HSV顏色模型,實現(xiàn)對目標(biāo)物塊的顏色識別。

4.jfif

顏色識別

  • 導(dǎo)入需要用的庫

import cv2 as cv import time import numpy as np import sys import os import serial import serial.tools.list_ports

  • 設(shè)置串口各種參數(shù),波特率設(shè)置為115200,使用40PIN中的UART3

os.system('ls /dev/tty[a-zA-Z]*') uart_dev= '/dev/ttyS3' #定義串口端口 baudrate = 115200 #波特率 ser = serial.Serial(uart_dev, int(baudrate), timeout=1)

  • 選擇8號相機用作視頻獲取

cap_follow = cv.VideoCapture(8)

剪切獲取到的圖像,只顯示和處理一正中小塊

ret, frame = cap_color.read() #cv.imshow("frame", frame)#代碼在電腦上測試時候用于觀察,放在X3派上要注釋掉 ROI = frame[50:150, 50:200]#get useful ROI

獲取一幀圖片并進行裁剪,只保留小部分目標(biāo)物塊的像素點,這有兩個原因:

(1)獲取到的一整幀圖片周圍有非目標(biāo)物塊的周圍環(huán)境,如果納入計算過程的話會影響到最終識別結(jié)果

(2)縮小圖片體積,可以減少CPU負載,提升運算速度

  • 把截取后的圖片轉(zhuǎn)化成HSV顏色模型,并創(chuàng)建三個數(shù)組分別用于存放轉(zhuǎn)化后HSV模型圖片中每一個像素點的H、S、V通道的值

hsv = cv.cvtColor(ROI, cv.COLOR_BGR2HSV) #cv.imshow("hsv", hsv) color_h = [] color_s = [] color_v = []

  • 把轉(zhuǎn)化為HSV模型的圖片中每一個像素點都取出來,相加以后取平均值(取平均值是為了減少噪點對最后結(jié)果的影響。再把取平均值后的H、S、V三個通道的值賦給新的變量用于最后的比較)

color_h.append(np.mean(hsv[:,:,0])) color_s.append(np.mean(hsv[:,:,1])) color_v.append(np.mean(hsv[:,:,2])) h = color_h[0] s = color_s[0] v = color_v[0]

  • 比較最終值和顏色范圍,確定識別結(jié)果,并通過串口把結(jié)果發(fā)送給下位機

if 35 <= h <= 77 and 43 <= s <= 255 and 46 <= v <= 255: print('green') ser.write(b'g') #red_h 10 --> 20 elif 0 <= h <= 20 and 43 <= s <= 255 and 46 <= v <= 255: print('red') ser.write(b'r') elif 156 <= h <= 180 and 43 <= s <= 255 and 46 <= v <= 255: print('red') elif 100 <= h <= 124 and 43 <= s <= 255 and 46 <= v <= 255: print('blue') ser.write(b'b') elif 0 <= h <= 180 and 0 <= s <= 255 and 0 <= v <= 46: print('black') ser.write(b'B') #white_v 221 --> 200 elif 0 <= h <= 180 and 0 <= s <= 30 and 180 <= v <= 255: print('white') ser.write(b'w') else: print('I do not know') ser.write(b'e')

解釋一下串口發(fā)送字符的含義:

g——green

r——red

b——blue

B——black

w——write

e——error

(最后'e'一個表示識別的顏色不在既定范圍內(nèi))

為什么選用使用HSV顏色模型而不是用RGB?

RGB 是我們接觸最多的顏色空間,由三個通道表示一幅圖像,分別為紅色(R),綠色(G)和藍色(B)。這三種顏色的不同組合可以形成幾乎所有的其他顏色。但是人眼對于這三種顏色分量的敏感程度是不一樣的,在單色中,人眼對紅色最不敏感,藍色最敏感,所以 RGB 顏色空間是一種均勻性較差的顏色空間。如果顏色的相似性直接用歐氏距離來度量,其結(jié)果與人眼視覺會有較大的偏差。對于某一種顏色,我們很難推測出較為精確的三個分量數(shù)值來表示。所以,RGB 顏色空間適合于顯示系統(tǒng),卻并不適合于圖像處理。

在圖像處理中使用較多的是 HSV 顏色空間,它比 RGB 更接近人們對彩色的感知經(jīng)驗,可非常直觀地表達顏色的色調(diào)、鮮艷程度和明暗程度,方便進行顏色的對比(詳細解釋可參見地平線開發(fā)者社區(qū)。

在 HSV 顏色空間下,比 BGR 更容易跟蹤某種顏色的物體,常用于分割指定顏色的物體。

HSV 表達彩色圖像的方式由三個部分組成:Hue(色調(diào)、色相)、Saturation(飽和度、色彩純凈度)、Value(明度)。用下圖圓柱體來表示 HSV 顏色空間,圓柱體的橫截面可以看做是一個極坐標(biāo)系 ,H 用極坐標(biāo)的極角表示,S 用極坐標(biāo)的極軸長度表示,V 用圓柱中軸的高度表示。

5.jfif

Hue 用角度度量,取值范圍為0~360°,表示色彩信息,即所處的光譜顏色的位置,表示如下:

6.jfif

顏色圓環(huán)上所有的顏色都是光譜上的顏色,從紅色開始按逆時針方向旋轉(zhuǎn),Hue=0 表示紅色,Hue=120 表示綠色,Hue=240 表示藍色等等。在 GRB中 顏色由三個值共同決定,比如黃色為即(255,255,0);在HSV中,黃色只由一個值決定,Hue=60即可。HSV 圓柱體的半邊橫截面(Hue=60):

7.jfif

其中水平方向表示飽和度,飽和度表示顏色接近光譜色的程度。飽和度越高,說明顏色越深,越接近光譜色飽和度越低,說明顏色越淺,越接近白色。飽和度為0表示純白色。取值范圍為0~100%,值越大,顏色越飽和。

豎直方向表示明度,決定顏色空間中顏色的明暗程度,明度越高,表示顏色越明亮,范圍是 0-100%。明度為0表示純黑色(此時顏色最暗)。

動作實現(xiàn)

下位機負責(zé)所有機器人動作的控制,包括直線行駛、轉(zhuǎn)彎、轉(zhuǎn)圈、目標(biāo)物塊抓取、放置等等,此處先講解目標(biāo)物塊抓取動作部分。先看機械設(shè)計,機器人前方的圓柱形帶傳動可收納式抓手是靠兩個原動件提供動力的。

8.gif(舵機,藍色部分)

9.gif(42步進電機,藍色部分)


舵機提供動力控制抓手的開合,用于夾取目標(biāo)物塊和釋放目標(biāo)物塊;42步進電機控制傳送帶從而控制抓手,用于使抓手升降。

10.gif

從視頻可以看出,每抓取一個物塊需要五個動作:

(1)抓手下降到一半高度;

(2)抓手張開;

(3)抓手下降到最低點;

(4)抓手閉合,抓取物塊;

(5)抓手上升到最高點。

代碼講解

由于初步設(shè)計時時間較緊,故選擇Arduino該平臺作為主控。學(xué)習(xí)舵機、步進電機控制,有很多種主控方案可以選擇,大家可按需選擇。代碼主要部分:

  • 導(dǎo)入需要用到的庫、創(chuàng)建舵機、步進電機對象

#include #include AccelStepper stepperArm(1,armstepPin,armdirPin); Servo armServo;

  • 在 setup函數(shù)里面對舵機、步進電機進行初始化

stepperArm.setMaxSpeed(1200.0); stepperArm.setAcceleration(400.0); armServo.attach(8); armServo.write(servoMid);

  • 抓取動作控制(五個步驟)

void Get(){ //抓手下降一半 if (getTurns == 0){ stepperArm.moveTo (armStepperHigh1); //Serial.println("我是抓手,我現(xiàn)在在下降"); if (stepperArm.currentPosition() == armStepperHigh1){ getTurns ++; } } //抓手張開一點 if ( getTurns == 1){ for (armAngle = servoMid; armAngle <= servoEnd; armAngle ++) { armServo.write(armAngle); delay(5); } getTurns ++; } //抓手下降到最低端 if (getTurns == 2){ stepperArm.moveTo (armStepperHigh2); if (stepperArm.currentPosition() == armStepperHigh2){ getTurns ++; } } //抓取物塊 if ( getTurns == 3){ //delay(2000); for (armAngle = servoEnd; armAngle >= servoMid; armAngle --) { armServo.write(armAngle); delay(5); } getTurns ++; } //上升抓手到最高位置 if (getTurns == 4){ stepperArm.moveTo (armStepperHigh0); if(stepperArm.currentPosition() == armStepperHigh0){ getTurns = 0; ifOverGet = 1; } } }

原作者:衣柜旁的小明
原鏈接:本文轉(zhuǎn)自地平線開發(fā)者社區(qū)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5198

    文章

    20449

    瀏覽量

    334102
  • 機器人
    +關(guān)注

    關(guān)注

    213

    文章

    31079

    瀏覽量

    222277
  • 人工智能
    +關(guān)注

    關(guān)注

    1817

    文章

    50098

    瀏覽量

    265415
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    半年參與3萬輛寶馬X3生產(chǎn),人形機器人“進廠打工”真成了

    了其人形機器人“進廠打工”的最新成果。 ? Figure 02:半年參與3萬輛寶馬X3生產(chǎn),進入退役階段 ? 根據(jù)Figure AI的說法,在過去的六個月內(nèi),其第二代人形機器人Figu
    的頭像 發(fā)表于 11-24 08:25 ?7962次閱讀
    半年參與<b class='flag-5'>3</b>萬輛寶馬<b class='flag-5'>X3</b>生產(chǎn),人形<b class='flag-5'>機器人</b>“進廠打工”真成了

    智能復(fù)合機器人解決方案:優(yōu)化自動化搬運與提高物流效率

    了解復(fù)合機器人在自動化搬運中的應(yīng)用,探索智能機器人如何提升生產(chǎn)效率與物流管理,為智能制造和智慧物流行業(yè)帶來變革。
    的頭像 發(fā)表于 01-19 17:32 ?578次閱讀

    解鎖“試管自動抓取搬運”新紀(jì)元:富唯智能復(fù)合機器人重塑精準(zhǔn)物流

    的特性,重新定義精準(zhǔn)搬運的未來。 富唯智能復(fù)合機器人創(chuàng)新性地將協(xié)作機器人的靈活操作、移動機器人的自主導(dǎo)航,以及先進的視覺引導(dǎo)技術(shù)融合于一體。
    的頭像 發(fā)表于 12-31 17:01 ?1328次閱讀
    解鎖“試管自動<b class='flag-5'>抓取</b><b class='flag-5'>搬運</b>”新紀(jì)元:富唯<b class='flag-5'>智能</b>復(fù)合<b class='flag-5'>機器人</b>重塑精準(zhǔn)物流

    混凝土檢測實驗室:經(jīng)世智能復(fù)合機器人,助力水泥試上下料

    當(dāng)混凝土實驗室還在被“試搬運勞動強度大、人工操作誤差難避免、多流程流轉(zhuǎn)效率低”等問題困擾時,經(jīng)世智能以復(fù)合機器人技術(shù)為核心,融合精準(zhǔn)定位、智能
    的頭像 發(fā)表于 11-17 13:32 ?1488次閱讀
    混凝土檢測實驗室:經(jīng)世<b class='flag-5'>智能</b>復(fù)合<b class='flag-5'>機器人</b>,助力水泥試<b class='flag-5'>塊</b>上下料

    復(fù)合機器人開啟血漿包“零接觸”搬運新時代

    傳統(tǒng)人工搬運模式正面臨效率瓶頸與交叉污染風(fēng)險的雙重挑戰(zhàn)。富唯智能復(fù)合機器人以血站血漿包智能搬運為切入點,通過融合協(xié)作
    的頭像 發(fā)表于 11-10 14:48 ?335次閱讀
    復(fù)合<b class='flag-5'>機器人</b>開啟血漿包“零接觸”<b class='flag-5'>搬運</b>新時代

    15分鐘快速部署,復(fù)合機器人如何重塑“上下料機器人哪家好”的行業(yè)答案

    富唯智能復(fù)合機器人突破傳統(tǒng)技術(shù)邊界,將協(xié)作機器人、移動機器人及視覺引導(dǎo)技術(shù)深度融合。其搭載的ICD系列核心控制器,
    的頭像 發(fā)表于 10-17 16:18 ?271次閱讀
    15分鐘快速部署,復(fù)合<b class='flag-5'>機器人</b>如何重塑“上下料<b class='flag-5'>機器人</b>哪家好”的行業(yè)答案

    奇瑞風(fēng)云X3系列雙車上市

    8月16日,奇瑞汽車旗下風(fēng)云品牌全新方盒子產(chǎn)品序列——風(fēng)云X3與風(fēng)云X3 PLUS正式宣告上市。風(fēng)云X3系列基于iCAR 03系列煥新升級而
    的頭像 發(fā)表于 08-19 11:48 ?1115次閱讀

    工業(yè)機器人的特點

    的基礎(chǔ),也是三者的實現(xiàn)終端,智能制造裝備產(chǎn)業(yè)包括高檔數(shù)控機床、工業(yè)機器人、自動化成套生產(chǎn)線、精密儀器儀表、智能傳感器、汽車自動化焊接線、柔性自動化生產(chǎn)線、
    發(fā)表于 07-26 11:22

    明遠智睿SSD2351開發(fā)板:語音機器人領(lǐng)域的變革力量

    連續(xù)的長句語音識別,還是復(fù)雜口音的處理,都能快速響應(yīng),保證語音機器人與用戶之間流暢的對話體驗。 其豐富的接口為語音機器人的功能拓展提供了可能。USB接口可以連接高靈敏度的麥克風(fēng)陣列,實現(xiàn)
    發(fā)表于 05-28 11:36

    詳細介紹機場智能指路機器人的工作原理

    免與行人發(fā)生碰撞,為旅客提供安全、舒適的引導(dǎo)服務(wù)。 智能交互系統(tǒng) 語音識別與理解 :智能指路機器人利用先進的語音
    發(fā)表于 05-10 18:26

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用

    : 一、機器人視覺:從理論到實踐 第7章詳細介紹了ROS2在機器視覺領(lǐng)域的應(yīng)用,涵蓋了相機標(biāo)定、OpenCV集成、視覺巡線、二維碼識別以及深度學(xué)習(xí)目標(biāo)檢測等內(nèi)容。通過學(xué)習(xí),我認識到:
    發(fā)表于 05-03 19:41

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】機器人入門的引路書

    ROS的全稱:Robot Operating System 機器人操作系統(tǒng) ROS的 目的 :ROS支持通用庫,是通信總線,協(xié)調(diào)多個傳感器 為了解決機器人里各廠商模塊不通用的問題,讓機器人快速開發(fā)
    發(fā)表于 04-30 01:05

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】+內(nèi)容初識

    出有用的信息,如障礙的位置和形狀。對于攝像頭數(shù)據(jù),可以使用 OpenCV 等圖像處理庫進行圖像識別目標(biāo)跟蹤等操作,為機器人的導(dǎo)航和決策提供支持。 運動控制:運動控制是
    發(fā)表于 04-27 11:24

    富唯智能最小復(fù)合機器人的強大抓取實力?

    在工業(yè)自動化領(lǐng)域,復(fù)合機器人的身影愈發(fā)常見。但你是否好奇,最小的復(fù)合機器人抓取多少多重?富唯智能以創(chuàng)新技術(shù),給出了令人驚嘆的答案,徹底顛覆我們對小身形
    的頭像 發(fā)表于 04-16 16:31 ?675次閱讀
    富唯<b class='flag-5'>智能</b>最小復(fù)合<b class='flag-5'>機器人</b>的強大<b class='flag-5'>抓取</b>實力?

    復(fù)合機器人抓取精度的影響因素及提升策略

    復(fù)合機器人結(jié)合了移動機器人(如AGV)和機械臂的功能,廣泛應(yīng)用于物流、制造等領(lǐng)域。抓取精度是其核心性能指標(biāo)之一,直接影響作業(yè)效率和產(chǎn)品質(zhì)量。本文將探討復(fù)合機器人
    的頭像 發(fā)表于 04-12 11:15 ?1047次閱讀