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

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

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

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

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

地瓜機(jī)器人 ? 2022-12-09 17:25 ? 次閱讀

原理講解

1.gif

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

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

2.png

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

3.png

可以看到,攝像頭拍攝到的圖片,目標(biāo)物塊幾乎填滿了整個圖片。接下來就通過旭日X3派進(jìn)行顏色識別,使用旭日X3派借助OpenCV,通過HSV顏色模型,實(shí)現(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號相機(jī)用作視頻獲取

cap_follow = cv.VideoCapture(8)

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

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

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

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

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

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

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

  • 把轉(zhuǎn)化為HSV模型的圖片中每一個像素點(diǎn)都取出來,相加以后取平均值(取平均值是為了減少噪點(diǎn)對最后結(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ā)送給下位機(jī)

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

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

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

HSV 表達(dá)彩色圖像的方式由三個部分組成: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 表示藍(lán)色等等。在 GRB中 顏色由三個值共同決定,比如黃色為即(255,255,0);在HSV中,黃色只由一個值決定,Hue=60即可。HSV 圓柱體的半邊橫截面(Hue=60):

7.jfif

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

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

動作實(shí)現(xiàn)

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

8.gif(舵機(jī),藍(lán)色部分)

9.gif(42步進(jìn)電機(jī),藍(lán)色部分)


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

10.gif

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

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

(2)抓手張開;

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

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

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

代碼講解

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

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

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

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

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 ++; } } //抓手張開一點(diǎn) 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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5143

    文章

    19570

    瀏覽量

    315678
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    29559

    瀏覽量

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

    關(guān)注

    1804

    文章

    48829

    瀏覽量

    247292
收藏 人收藏

    評論

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

    詳細(xì)介紹機(jī)場智能指路機(jī)器人的工作原理

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

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

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

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

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

    名單公布!【書籍評測活動NO.58】ROS 2智能機(jī)器人開發(fā)實(shí)踐

    Gazebo機(jī)器人仿真平臺,以RDK X3、RDK X5賦能生態(tài)產(chǎn)品——OriginBot智能機(jī)器人開源套件為原型講解,手把手教讀者從零構(gòu)建
    發(fā)表于 03-03 14:18

    海康機(jī)器人F4系列搬運(yùn)多面手,拓寬應(yīng)用場景

    海康機(jī)器人F4系列叉取機(jī)器人以其卓越的性能,成功突破了傳統(tǒng)叉車在搬運(yùn)物料上的局限性,大幅拓寬了搬運(yùn)對象與場景覆蓋范圍。 這款叉取
    的頭像 發(fā)表于 02-19 15:23 ?586次閱讀

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊

    具身智能機(jī)器人的基礎(chǔ)模塊,這個是本書的第二部分內(nèi)容,主要分為四個部分:機(jī)器人計(jì)算系統(tǒng),自主機(jī)器人的感知系統(tǒng),自主機(jī)器人的定位系統(tǒng),自主
    發(fā)表于 01-04 19:22

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人大模型

    中取得了令人矚目的效果。 閱讀感悟 從傳統(tǒng)的手動編程到借助大模型實(shí)現(xiàn)智能化、自主化,從單一模態(tài)的交互到多模態(tài)信息的深度融合,再到擴(kuò)散模型的應(yīng)用,機(jī)器人控制技術(shù)正在以驚人的速度進(jìn)化。這不僅讓機(jī)器
    發(fā)表于 12-29 23:04

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】1.初步理解具身智能

    的研發(fā)工作奠定了基礎(chǔ)。繼之而來,北京理工大學(xué)在2002年發(fā)布的“匯童”系列機(jī)器人實(shí)現(xiàn)了無外接電纜的行走。 三、問題與挑戰(zhàn) 具身智能雖然取得了一定的進(jìn)展,但是也面臨著諸多的問題與挑戰(zhàn),
    發(fā)表于 12-28 21:12

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】+初品的體驗(yàn)

    解決許多技術(shù)的和非技術(shù)的挑戰(zhàn),如提高智能體的自主性、處理復(fù)雜環(huán)境互動的能力及確保行為的倫理和安全性。 未來的研究需要將視覺、語音和其他傳感技術(shù)與機(jī)器人技術(shù)相結(jié)合,以探索更加先進(jìn)的知識表示和記憶模塊,利用強(qiáng)化學(xué)習(xí)進(jìn)一步優(yōu)化決策過程
    發(fā)表于 12-20 19:17

    agv搬運(yùn)機(jī)器人是怎么實(shí)現(xiàn)無人搬運(yùn)的?

    AGV(自動導(dǎo)引車)搬運(yùn)機(jī)器人是一種智能化的無人搬運(yùn)設(shè)備,它能夠實(shí)現(xiàn)無人搬運(yùn)主要依賴于其先進(jìn)的導(dǎo)
    的頭像 發(fā)表于 11-16 15:55 ?774次閱讀
    agv<b class='flag-5'>搬運(yùn)</b><b class='flag-5'>機(jī)器人</b>是怎么<b class='flag-5'>實(shí)現(xiàn)</b>無人<b class='flag-5'>搬運(yùn)</b>的?

    搬運(yùn)碼垛機(jī)器人的特性和運(yùn)用方式

    在諸多的工業(yè)機(jī)械手中,搬運(yùn)碼垛機(jī)器人毫無疑問是使用率較高的智能機(jī)器人之一,無論是在工業(yè)生產(chǎn)生產(chǎn)制造、物流倉儲、香煙、藥業(yè)、食品類、化工廠等行業(yè)領(lǐng)域,或是在郵政局、公共圖書館、港口物流、
    的頭像 發(fā)表于 11-14 17:56 ?458次閱讀

    智能移動機(jī)器人

    富唯智能移動機(jī)器人分為復(fù)合機(jī)器人和轉(zhuǎn)運(yùn)機(jī)器人,搭載ICD核心控制器,實(shí)現(xiàn)一體化控制,最快可實(shí)現(xiàn)1
    的頭像 發(fā)表于 08-27 17:22 ?646次閱讀
    <b class='flag-5'>智能</b>移動<b class='flag-5'>機(jī)器人</b>

    智能目標(biāo)顏色識別抓取丨國產(chǎn)Cortex-A55人工智能實(shí)驗(yàn)箱機(jī)械臂案例分享

    智能目標(biāo)顏色識別抓取丨國產(chǎn)Cortex-A55人工智能實(shí)驗(yàn)箱機(jī)械臂案例分享
    的頭像 發(fā)表于 08-10 08:32 ?633次閱讀
    <b class='flag-5'>智能</b><b class='flag-5'>目標(biāo)</b>顏色<b class='flag-5'>識別</b><b class='flag-5'>抓取</b>丨國產(chǎn)Cortex-A55<b class='flag-5'>人工智能</b>實(shí)驗(yàn)箱機(jī)械臂案例分享

    復(fù)合機(jī)器人倉庫搬運(yùn)方案

    隨著科技的飛速發(fā)展,智能倉儲已經(jīng)成為現(xiàn)代物流領(lǐng)域的重要發(fā)展方向。近日,一種全新的復(fù)合機(jī)器人倉庫搬運(yùn)方案亮相,該方案結(jié)合了復(fù)合機(jī)器人AMR與搬運(yùn)
    的頭像 發(fā)表于 08-09 16:08 ?609次閱讀
    復(fù)合<b class='flag-5'>機(jī)器人</b>倉庫<b class='flag-5'>搬運(yùn)</b>方案

    AGV搬運(yùn)機(jī)器人智能物流的得力助手

    在物流行業(yè),AGV搬運(yùn)機(jī)器人已經(jīng)成為提高轉(zhuǎn)運(yùn)效率、降低成本的重要工具。而富唯智能AGV搬運(yùn)機(jī)器人憑借其出色的性能和
    的頭像 發(fā)表于 06-25 14:54 ?692次閱讀
    AGV<b class='flag-5'>搬運(yùn)</b><b class='flag-5'>機(jī)器人</b>:<b class='flag-5'>智能</b>物流的得力助手
    主站蜘蛛池模板: 国产精品久久在线观看 | 天天看天天射天天碰 | 亚洲免费色 | 国产一级特黄全黄毛片 | 天天爽天天狼久久久综合 | caobi在线观看 | 国产全部理论片线观看 | 久久综合性 | 特级黄一级播放 | 俺来也婷婷| 欧美yw193.c㎝在线观看 | 美女网站色视频 | 色综合久久久高清综合久久久 | 卡一卡二卡三国色天香永不失联 | 免费看黄色的网站 | 欧美三级一区二区 | 成人精品一区二区不卡视频 | 天天干夜夜爽天天操夜夜爽视频 | 在线天堂网www资源种子 | 噜噜噜 综合 亚洲 | 靓装爱神12丝袜在线播放 | 干一干操一操 | bt天堂中文在线 | 午夜视频在线免费观看 | 色综合图片二区150p | 亚洲卡5卡6卡7国色天香 | www天堂在线 | 亚洲国产欧美日韩一区二区三区 | 九九九精品午夜在线观看 | 久久精品免费观看久久 | 欧美色穴| 91在线免费看 | 欧美精品高清在线xxxx | 9色在线| 午夜国产精品免费观看 | 黄页网站在线 | 色综合视频在线观看 | 久久久鲁| 国产精品久久久久影院色老大 | 中国一级特黄特级毛片 | 狠狠干夜夜草 |