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

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

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

3天內不再提示

大象機器人六軸協作機械臂myCobot 320 進行手勢識別!

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2024-01-31 16:17 ? 次閱讀

引言
我是一名專注于機器學習機器人技術自由者。我的熱情始于大學期間的人工智能課程,這促使我探索人機交互的新方法。尤其對于機械臂的操作,我一直想要簡化其復雜性,使之更加直觀和易于使用。

這個項目的靈感源自于我對創新技術的熱愛以及對改善人機互動方式的追求。我的目標是開發一個基于手勢的機械臂控制系統,使非專業人士也能輕松操作。為此,我選擇了Google的MediaPipe庫進行手勢識別,并以myCobot 320 m5作為實驗平臺。

技術概述
Google MediaPipe
MediaPipe是由Google開發的一個開源跨平臺框架,專門用于構建各種感知管道。這個框架提供了豐富的工具和預先構建的模塊,使得開發者能夠輕松地構建和部署復雜的機器學習模型和算法,尤其在圖像和視頻分析方面。

wKgaomW57DCAXSqEAAaq4Rw2I2Y692.png

MediaPipe的一個顯著特點是它對實時手勢和面部識別的支持。它能夠高效地處理視頻流,并實時識別和追蹤人的手勢、面部特征等。這種能力使其在交互式應用程序、增強現實(AR)、虛擬現實(VR)以及機器人技術中變得極其有用。

你可以嘗試試用一下手勢識別在線功能,無需安裝。

https://mediapipe-studio.webapps.google.com/home

它的簡單易用的API和豐富的文檔使得更容易集成這個框架,非常適合使用在機器學習和計算機視覺領域當中。

pymycobot
pymycobot 是一個用于與 mycobot 機械臂進行串行通信和控制的 Python API。這個庫是為了方便開發者使用 Python 語言控制 mycobot 機械臂而設計的。它提供了一系列的函數和命令,讓用戶可以通過編程方式控制機械臂的動作和行為。例如,用戶可以使用該庫獲取機械臂的角度、發送角度指令來控制機械臂的移動,或者獲取和發送機械臂的坐標信息。

使用這個庫唯一的標準是,得使用mycobot 系列的機械臂,這是專門為mycobot進行適配的一款機械臂。

產品介紹
myCobot 320M5 stack
myCobot 320 M5 是大象機器人開發的一款面向用戶的六軸協作機械臂。它具有350mm的工作半徑和最大1000g的負載能力。該機械臂適用于開放的ROS仿真開發環境,并包含運動學正逆解算法。它支持多種編程語言,包括Python、C++ArduinoC#JavaScript,且兼容Android、Windows、Mac OSX和Linux平臺。myCobot 320 M5的多功能性使其適用于多種開發和集成應用。

wKgZomW57LKANfFiABDaLxmv7OY091.png

2D 相機
一個能夠安裝在mycobot320末端的2D相機,用USB數據線進行通信。能夠呈現機械臂末端所看到的視野。

wKgZomW57ROACkenAALThT4_X1A554.png

開發過程
項目架構
我將該項目主要分為三個木塊功能:

Gesture Recognition: 主要用來處理手勢的識別,能夠返回信息當欠手勢是什么,比如說豎大拇指等等。

Robotic Arm Control:主要功能用于設置機械臂的運動控制,例如坐標控制,角度控制等等。

Program logic:用來處理程序運行的邏輯,設置確認手勢時間,重置識別時間等,后續將一一詳細介紹。

wKgZomW57SuAIDswAAA_RhHMNkI728.png

編譯環境
操作系統:windows 11

編程語言:Python3.9+

使用的庫:opencv,mediapipe,pymycobot,time

手勢的識別
做識別首先得獲得到相機的一個畫面,這里我們就用到了opencv庫來獲取相機的畫面

import cv2 # 獲取相機流,默認的攝像頭-0 外接的攝像頭按照順序往上- 1,2,3 cap = cv2.VideoCapture(1) # 持續獲取相機畫面 while cap.isOpened(): #獲取當前圖像畫面 ret, frame = cap.read() # 將BGR圖像轉換為RGB rgb_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 在電腦中顯示畫面 cv2.imshow('gesture control',frame) # 按下 'q' 鍵退出,避免死循環 if cv2.waitKey(1) & 0xFF == ord('q'): break

wKgZomW57qeARcKYAA40aSs54V0103.png


到這里圖像畫面就獲取成功了,接下來我們用mediapipe手勢進行識別。

import mediapipe as mp # 初始化MediaPipe Hands模塊 mp_hands = mp.solutions.hands hands = mp_hands.Hands() mp_draw = mp.solutions.drawing_utils # 處理圖像并檢測手部 result = hands.process(rgb_frame) if result.multi_hand_landmarks: for hand_landmarks in result.multi_hand_landmarks: mp_draw.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)

wKgaomW5-eiAB5_QAAsYkML_m8E026.png

這是識別手勢之后的輸出的結果,它能夠精準的識別出手上的每個關節,并且將每個關節的點都命名。MediaPipe Hands 提供了21個手部關鍵點(landmarks),這些關鍵點共同描繪了手的結構,包括手腕、各個手指的各個關節。以大拇指舉例子,一共有四個關節,從下往上分別是CMC,MCP,IP,TIP.

cmc: Carpometacarpal Joint mcp:Metacarpophalangeal Joint ip:Interphalangeal Joint tip:tip

有了這些還不夠,我們要讓他識別特定的手勢,要需要去設定一個方法,來確定這個手勢,比如說我想要一個手勢是豎大拇指,那么我們分析在豎大拇指的時候,拇指的指尖的位置是在整個手掌的最上方,這樣就容易多了。只要確定在畫面中大拇指的指尖是高于其他所有手指頭的都指尖,那么這個手勢就是豎大拇指。(也可以通過別的進行分析)

一般情況下,我們可以獲取到某個關節的X,Y,Z的三個屬性,表示改關節在圖像中的位置。

#獲取大拇指指尖的屬性 thump_tip = hand_landmarks.landmark[mp.hands.HandLandmark.THUMB_TIP] #獲取大拇指指尖的高度 thump_tip.y #判斷豎大拇指手勢 def is_thump_up(hand_landmarks): thumb_tip = hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_TIP] index_tip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP] # 判斷那個關節比較高。 if thumb_tip.y < index_tip.y: return True return False


如果想要別的手勢的話,也可以根據手型的特點來設定一個專門的辨別方法。到這里手勢的識別就完成了。

機械臂運動控制
我一開始的想法是,當相機識別到手勢的時候就會給機械臂發送一條控制命令,這里我們先簡單的設置一個讓機械臂點頭的動作。

pymycobot 這個功能庫,開放了很多功能在控制機械臂的時候非常的方便。

from pymycobot.mycobot import Mycobot import time #鏈接機械臂 mc = Mycobot(port,baud) #以關節角度控制機械臂運動 mc.send_angles([angles_list],speed) #以坐標控制機械臂進行運動 mc.send_coords([coords_list],speed,mode) #點頭動作 def ThumpUpAction(self): self.mc.send_angles([0.96, 86.22, -98.26, 10.54, 86.92, -2.37], 60) time.sleep(1.5) for count in range(3): self.mc.send_angles([0.79, 2.46, (-8.17), 4.3, 88.94, 0.26], 70) time.sleep(1) self.mc.send_angles([(-3.6), 30.32, (-45.79), (-46.84), 97.38, 0.35], 70) time.sleep(1) self.mc.send_angles([0.79, 2.46, (-8.17), 4.3, 88.94, 0.26], 70) time.sleep(1) self.mc.send_angles([0.96, 86.22, -98.26, 10.54, 86.92, -2.37], 60)


為了讓整體代碼看起來可讀性高,可修改性高,創建機械臂類方便進行調用和修改

class RobotArmController: def __init__(self,port): #初始化鏈接 self.mc = MyCobot(port, 115200) self.init_pose = [0.96, 86.22, -98.26, 10.54, 86.92, -2.37] self.coords = [-40, -92.5, 392.7, -92.19, -1.91, -94.14] self.speed = 60 self.mode = 0 def ThumpUpAction(self): ... def OtherAction(self): ...

程序邏輯的處理
在調試的過程中,出現了一些問題,在識別收拾的時候,它是一直識別,這就意味著如果在1s中內識別了10次的話,會給機械臂發送10個命令,這樣肯定不是我一開始所設想的。

所以在邏輯上就要有所處理,下面是我處理的方式。

# 設置一個2S的時間來確定這個手勢,當豎大拇指出現2s的時候才進行下發機械臂控制的命令,用控制變量的方式來進行。 #初始化變量 #檢測手勢是否存在的變量 gesture_detected = False #確定手勢出現后計時的變量 gesture_start_time = None # 設定手勢出現2s后的變量 gesture_confirmation_time = 2 后續的處理邏輯: 當特定手勢出現的時候,gesture_start_time就開始計時,這個時候在不停的做判斷如果時間到達了2S之后,確定手勢接下來執行相對應手勢的機械臂運動。 current_time = time.time() if current_gesture: if not gesture_detected: gesture_detected = True gesture_start_time = current_time elif current_time - gesture_start_time > gesture_confirmation_time and not action_triggered: # 根據手勢執行相應動作 if current_gesture == "thumb_up": robotic arm action()


但是這樣還不夠,因為手如果出現超過2s后也會持續發送機械臂的指令,這里我們需要在設置一個冷卻的時間,有充足的時間讓機械臂完成運動。

#冷卻時間的變量 #機械臂是否完成動作的變量 action_triggered = False #冷卻時間計時的變量 cooldown_start_time = None #固定2s冷卻時間 cooldown_period = 2


這樣就能夠滿足需求了。完整的邏輯代碼處理如下

# 處理手勢 current_time = time.time() if current_gesture: if not gesture_detected: gesture_detected = True gesture_start_time = current_time elif current_time - gesture_start_time > gesture_confirmation_time and not action_triggered: # 根據手勢執行相應動作 if current_gesture == "thumb_up": print('good good') mc.thum_up() elif current_gesture == "palm_open": print('forward') mc.increment_x_and_send() # 可以添加更多手勢和對應動作的判斷 action_triggered = True cooldown_start_time = current_time else: gesture_detected = False gesture_start_time = None if action_triggered and current_time - cooldown_start_time > cooldown_period: print('can continue') action_triggered = False cooldown_start_time = None

演示
https://youtu.be/9vOPKO_IG9M

總結
這個項目展示了使用手勢識別控制myCobot 320的方法,開創了人機互動的新形式。盡管目前僅實現了有限的幾個手勢與機械臂動作的對應,但它為未來更廣泛的機械臂應用奠定了基礎。結合手勢與機械臂的創新嘗試不僅提升了我的編程技能,還鍛煉了我的問題解決能力,為未來的相關項目提供了寶貴經驗。

審核編輯 黃宇

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

    關注

    8

    文章

    227

    瀏覽量

    48180
  • 人工智能
    +關注

    關注

    1804

    文章

    48789

    瀏覽量

    247035
  • 開源
    +關注

    關注

    3

    文章

    3624

    瀏覽量

    43544
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86300
  • 機械臂
    +關注

    關注

    13

    文章

    547

    瀏覽量

    25254
  • 大象機器人
    +關注

    關注

    0

    文章

    85

    瀏覽量

    74
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    大象機器人攜手進迭時空推出 RISC-V 全棧開源機械產品

    大象機器人成立于2016年,專注協作機器人研發與應用,產品線涵蓋輕量級協作機器人、人形
    的頭像 發表于 06-06 16:55 ?275次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>攜手進迭時空推出 RISC-V 全棧開源<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>產品

    大象機器人攜手進迭時空推出 RISC-V 全棧開源機械產品

    大象機器人成立于2016年,專注協作機器人研發與應用,產品線涵蓋輕量級協作機器人、人形
    發表于 04-25 17:59

    大象機器人×進迭時空聯合發布全球首款RISC-V全棧開源小機械

    革新產品——全球首款基于RISC-V全棧開源的協作機械 myCobot 280 RISC-
    的頭像 發表于 04-25 14:19 ?583次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>×進迭時空聯合發布全球首款RISC-V全棧開源小<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    大象機器人攜手地瓜機器人打造全國產輕量級教育協作機械新標桿

    機器人技術、人工智能技術飛速發展的今天,全球機器人產業正在加速重構,據智庫數據顯示,2025年中國教育機器人市場規模將突破800億元,其中高校實驗室設備采購占比超40%。中國教育機器人
    的頭像 發表于 04-16 15:21 ?529次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>攜手地瓜<b class='flag-5'>機器人</b>打造全國產輕量級教育<b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>新標桿

    大象機器人推出myCobot 280 RDK X5,攜手地瓜機器人共建智能教育機

    摘要大象機器人全新推出輕量級高性能教育機械myCobot280RDKX5,該產品集成地瓜機器人
    的頭像 發表于 04-15 22:05 ?386次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>推出<b class='flag-5'>myCobot</b> 280 RDK X5,攜手地瓜<b class='flag-5'>機器人</b>共建智能教育機

    大象機器人以科技治愈人心

    當冰冷的代碼被賦予人性的溫度,科技便有了治愈人心的力量。大象機器人公司始終致力于通過機器人技術改善人們的生活,"享受機器人世界"是大象
    的頭像 發表于 02-20 11:17 ?645次閱讀

    專為機器人教育而設計的創客友好型機械

    本文重點介紹了一款專為機器人教育而設計的具有動態跟蹤功能的創客友好型機械 硬件組件 M5Stack ESP32 Basic Core IoT Development Kit Raspberry
    的頭像 發表于 02-12 11:12 ?563次閱讀
    專為<b class='flag-5'>機器人</b>教育而設計的創客友好型<b class='flag-5'>機械</b><b class='flag-5'>臂</b>

    如何使用PLC控制myCobot 320機械

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

    大象機器人11月大事件回顧

    冬意漸濃,在過去的11月里,大象機器人活躍在國內外的多個行業盛會上,向廣大機器人愛好者和行業專家展示了我們在協作機器人、人形
    的頭像 發表于 12-03 15:35 ?548次閱讀

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之傳感器使用場景

    身上,用于實時監控機器人的運動和姿態,幫助機器人進行自主導航和姿態控制。2.智能手機和智能手表:傳感器可以用于智能手機和智能手表中的計步
    發表于 12-02 09:47

    飛凌嵌入式ElfBoard ELF 1板卡-運動追蹤之傳感器使用場景

    身上,用于實時監控機器人的運動和姿態,幫助機器人進行自主導航和姿態控制。2.智能手機和智能手表:傳感器可以用于智能手機和智能手表中的計步
    發表于 11-29 08:57

    焊接機器人分別是什么作用

    任務。那么,焊接機器人分別是什么作用?本文將詳細介紹。 一機器人基座旋轉軸 一
    的頭像 發表于 11-21 17:45 ?1021次閱讀
    焊接<b class='flag-5'>機器人</b><b class='flag-5'>六</b>個<b class='flag-5'>軸</b>分別是什么作用

    大象機器人10月大事件回顧

    金秋10月,大象機器人積極參加數個海內外知名行業盛會,向全球機器人愛好者與行業專家展示最新的成果,也收獲了一些獎項、報道,通過這些難得的展示機會,大象
    的頭像 發表于 10-31 16:43 ?890次閱讀

    開源協作機器人myCobot 320結合人臉表情識別情緒!

    在大家的印象中,機械通常被應用在工業領域,執行一些重復性工作,以幫助和替代人類。然而,機械不僅限于此,它們也可以成為陪伴型機器人,為我們
    的頭像 發表于 08-12 15:21 ?1338次閱讀
    開源<b class='flag-5'>六</b><b class='flag-5'>軸</b><b class='flag-5'>協作</b><b class='flag-5'>機器人</b><b class='flag-5'>myCobot</b> <b class='flag-5'>320</b>結合人臉表情<b class='flag-5'>識別</b>情緒!

    大象機器人開源協作機械機械接入GPT4o大模型!

    和智能化的任務,提升了人機協作的效率和效果。我們個人平時接觸不太到機械這類的機器人產品,但是有一種小型的機械
    的頭像 發表于 07-03 14:09 ?1496次閱讀
    <b class='flag-5'>大象</b><b class='flag-5'>機器人</b>開源<b class='flag-5'>協作</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT4o大模型!
    主站蜘蛛池模板: 午夜影院普通用户体验区 | 人人看人人玩 | 日本片巨大的乳456线观看 | 天天干天天干天天操 | 免费视频一级片 | 丁香六月激情 | 激情综合在线观看 | 我色综合| 老师喂我吃她的奶水脱她胸罩 | 在线看视频你懂的 | 与子乱刺激对白在线播放 | 国产人人澡 | chinese国产一区二区 | 直接黄91麻豆网站 | 看免费一级片 | 国产精品电影一区 | 高清一区二区三区免费 | 视频黄色在线 | 欧美黑人黄色片 | 女性一级全黄生活片免费看 | 日本一区二区在线视频 | 韩国a级床戏大尺度在线观看 | 亚洲一区二区三区深夜天堂 | 国产三级网站在线观看 | 日日草天天干 | 亚洲色图2 | 日本s色大片在线观看 | 444kk免费 | 男人天堂综合网 | 色婷婷综合久久久久中文一区二区 | ww欧洲ww在线视频看 | 张柏芝三级无删减在线观看 | 97色偷偷| 日本在线一区 | 美女被猛男躁免费视频网站 | 在线播放91灌醉迷j高跟美女 | 成人a在线观看 | 男人的天堂在线视频 | 天堂网在线最新版官网 | 一级黄色免费毛片 | 六月丁香啪啪 |