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

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

3天內不再提示

如何用自己的手來遠程控制機器人

Tensorflowers ? 來源:TensorFlow ? 作者: Igor Kibalchich ? 2021-09-26 14:53 ? 次閱讀

請注意,本文所體現的信息、用途及應用完全是 Video-Touch 客座作者的觀點。

您可能看過一些科幻電影,電影中的人可以用身體動作來控制機器人。如今,借助現代計算機視覺和機器人方法,我們能夠把這種體驗變成現實,而且和電影一樣精彩奇妙。

受新冠病毒影響,在如此艱難的時期,為了讓遠程控制和遠程操作變得切實可用,我們開啟了 VideoTouch 項目。

Video-Touch 是第一個人機交互系統(tǒng)。它允許多名用戶,在世界任何地方通過視頻通話應用(例如 Google Meet、Zoom、Skype)對其進行控制。

我們考慮過,是否有可能只用自己的手來遠程控制機器人,而不借助手套、操縱桿等任何額外的設備,同時不產生明顯的延遲。于是,我們決定使用計算機視覺來實時識別動作,并實時傳遞給機器人。在 MediaPipe 的幫助下,我們將其變?yōu)榱爽F實。

操作系統(tǒng)大致如下:

1. 通過視頻會議應用,在用戶設備上獲取網絡攝像頭視頻,然后將其發(fā)送至機器人計算機(“服務器”);

2. 用戶的網絡攝像頭視頻串流通過 OBS 虛擬攝像頭工具被捕捉到機器人的計算機顯示器上;

3. 識別模塊在 MediaPipe 的幫助下讀取用戶的動作和手勢,并通過 ZeroMQ 發(fā)送給下一個模塊;

4. 在動作捕捉數據的基礎上,機械臂及其抓手由 Python 控制。

從方案中可以清楚地看出,用戶在操作機器人時只需穩(wěn)定的互聯網連接和一個視頻會議應用。所有的如屏幕捕捉、手部追蹤、手勢識別和機器人控制等計算,都可以在 Wi-Fi 與機器人連接的單獨設備上進行(只是另一臺筆記本電腦)。接下來,我們將對流水線的各個環(huán)節(jié)進行詳細說明。

視頻串流和屏幕捕捉

用戶可以使用任何一臺能夠實現跨設備傳輸視頻的軟件。在實驗中,我們使用的是視頻會議的桌面應用。用戶在其設備上呼叫一臺顯示器與機器人相連的計算機。這樣,機器人就可以看到來自用戶網絡攝像頭的視頻串流。

現在,我們需要某種機制來把用戶的視頻從視頻會議傳遞到識別模塊。我們使用的是 Open Broadcaster Software (OBS) 及其虛擬攝像頭工具來捕捉打開視頻會議的窗口。這樣我們就獲得了一個虛擬攝像頭,它現在有來自用戶網絡攝像頭的幀及其獨特的設備索引,可以在識別模塊中進一步使用。

識別模塊

識別模塊的作用是捕捉用戶的動作并將其傳遞給機器人控制模塊。MediaPipe 會在此發(fā)揮作用。我們?yōu)椴蹲绞植縿幼鲗ふ伊俗钣行?、最精確的計算機視覺軟件。我們發(fā)現了許多令人興奮的解決方案,但事實證明,對于如此具有挑戰(zhàn)性的任務(實時設備端手部運動精確識別),MediaPipe 是唯一適合的工具。

我們對 MediaPipe 手部追蹤模塊進行了兩項關鍵修改:增加了手勢識別計算器并集成了 ZeroMQ 消息傳遞機制。

兩項關鍵修改

https://github.com/Arxtage/videotouch.github.io/tree/main

在上次發(fā)表文章的時候,我們有兩個版本的手勢識別實現。第一個版本如下圖 3 所示,所有的計算均在手部姿勢識別計算器內進行。計算器將特征點作為輸入進行縮放,也就是說,這些特征點根據手的邊界框大小(而非整個圖像的大?。┻M行標準化。接下來,它會識別 4 種手勢(另見圖 4):“移動”、“傾斜”、“抓取”和“無手勢”(論文中的“手指距離”手勢是實驗性內容,沒有包括在最終演示版中),并輸出手勢類名稱。盡管這個版本十分穩(wěn)健實用,但它只是基于簡單的啟發(fā)式規(guī)則,如:“如果此特征點 [i].x 《 特征點 [j].x,那么它是一個‘移動’手勢”,而且對于手部旋轉這類現實生活中的情況,此版本無法識別。

發(fā)表文章

https://dl.acm.org/doi/10.1145/3415255.3422892

為了緩解泛化不良的問題,我們實施了第二個版本。我們在手動收集和加標簽的 1000 個關鍵點的數據集上訓練了來自 scikit-learn 的梯度提升分類器:“移動”、“傾斜”和“抓取”類各有 200 個,而“無手勢”類有 400 個。順便說一下,如今可以通過最近發(fā)布的 Jesture AI SDK repo(注:我們團隊部分成員的另一個項目)輕松獲取此類數據集。

Jesture AI SDK

https://github.com/jesture-ai/jesture-sdk/tree/main/python#annotation-tool

我們使用縮放的特征點、關節(jié)間的角度以及成對的特征點距離作為模型的輸入,來預測手勢類。接下來,我們嘗試只傳遞縮放的特征點,而不傳遞任何角度和距離,結果在 200 個關鍵點的本地驗證集上獲得了 91% 的類似多類準確率。對于這個版本的手勢分類器,還有一點是我們無法直接在 C++ 中運行 scikit-learn 模型,所以我們用 Python 進行實現,作為機器人控制模塊的一部分。

發(fā)表后,我們立即推出了一個在 Keras 中訓練的全連接神經網絡,它采用的數據集與梯度提升模型相同,而得到的結果更好,準確率達到 93%。我們將這個模型轉換為 TensorFlow Lite 格式,現在我們可以在手部姿勢識別計算器中直接運行手勢識別 ML 模型。

得到當前手部位置和當前手勢類后,我們需要將其傳遞給機器人控制模塊。進行這一步時,我們借助了高性能的異步消息功能庫 ZeroMQ。為了在 C++ 中實現這一點,我們使用了 libzmq 庫和 cppzmq 標頭。利用 請求-回復 方案:識別模塊 C++ 代碼中的 REP(服務器)和機器人控制模塊 Python 代碼中的 REQ(客戶端)。

libzmq

https://github.com/zeromq/libzmq

cppzmq

https://github.com/zeromq/cppzmq

請求-回復

https://learning-0mq-with-pyzmq.readthedocs.io/en/latest/pyzmq/patterns/client_server.html

因此,借助我們修改過的手部追蹤模塊,現在能夠將運動捕捉信息實時傳遞給機器人。

機器人控制模塊

機器人控制模塊是一個 Python 腳本,它將手部特征點和手勢類作為輸入,并輸出機器人移動命令(在每一幀上)。運行該腳本的計算機通過 Wi-Fi 與機器人連接。我們的實驗中使用了搭載 Nvidia GTX 1050 Ti GPU 的 MSI 筆記本電腦。同時嘗試在 Intel Core i7 CPU 上運行整個系統(tǒng),由于有高度優(yōu)化的 MediaPipe 計算圖實現,該運行也是實時的,延遲可以忽略不計。

在目前的流水線中,我們使用了 Universal Robotics 的 6DoF UR10 機器人。由于使用的抓手是雙指的,我們不需要每個特征點與機器人手指關鍵點的完整映射,只需要手中心的位置。借助此中心坐標和 python-urx 軟件包,我們現在能夠在所需的方位和方向上改變機器人的速度:在每一幀上,我們計算當前手中心坐標與前一幀坐標之差,從而得出速度變化矢量或角度。最后,此機制看起來與人們用操縱桿控制機器人的方式非常相似。

python-urx

https://github.com/SintefManufacturing/python-urx

源視頻

https://www.youtube.com/watch?v=F4X4jJwDBy4

高密度觸覺傳感器的觸覺感知

靈巧的操縱要求具有較高的空間分辨率和對物體和環(huán)境的高保真觸覺感知。最新的傳感器數組非常適合機器人操縱,因為它們可以很容易地掛接到任何機器人末端執(zhí)行器上,并適應任何接觸面。

源發(fā)布文章

https://dl.acm.org/doi/10.1145/3415255.3422892

Video-Touch 嵌入了一種高密度的觸覺傳感器數組。它們安裝在雙指機器人抓手中。每個指尖上都掛接一個傳感器數組。單個電極數組可以感應 5.8 平方厘米的幀面積,每幀分辨率為 100 點。感應頻率等于 120 赫茲。每個點的力檢測范圍為 1 至 9 牛頓。因此,機器人以 200 點的分辨率(每個手指為 100 點)檢測施加在機器人手指抓取的固體或柔性物體上的壓力。

從傳感器數組處收集的數據經過處理后,以動態(tài)手指接觸映射圖的形式向用戶顯示。壓力傳感器數組讓用戶能夠感知被抓物體的順應性、硬度、粗糙度、形狀、方向等物理特性。

圖 8:多用戶機械臂控制功能。用戶能夠在常規(guī)的視頻通話過程中執(zhí)行 COVID-19 檢測 [源視頻]

源視頻

尾注

如此一來,借助 MediaPipe 和機器人,我們建立了一個有效的多用戶機器人遠程操作系統(tǒng)。在未來,遠程操作系統(tǒng)的潛在用途將包括醫(yī)療檢測,以及在難以進入的環(huán)境(例如外太空)中進行的實驗。該系統(tǒng)的多用戶功能解決了有效遠程協作的實際問題,允許在多人小組中進行需要手動遠程控制的項目工作。

我們流水線的另一個優(yōu)勢特點是,人們可以使用任何帶有攝像頭的設備,例如手機,來控制機器人。除了機械臂,人們還可以操作其他如,邊緣設備、移動機器人或無人機等硬件設備。當然,目前的解決方案具有一定的局限性:延遲時間、z 坐標(深度)的利用,以及手勢類型的便利性都有改進的空間。我們十分期待試用 MediaPipe 團隊的更新,并期待著嘗試新類型的抓手(帶手指的抓手)、雙手控制,甚至是全身控制(期待“鐵甲鋼拳”!)。

希望這篇文章對您和您的工作有所幫助。保重身體,堅持編碼。非常感謝您的關注!

責任編輯:haq

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

    關注

    211

    文章

    28483

    瀏覽量

    207440
  • 機器視覺
    +關注

    關注

    162

    文章

    4386

    瀏覽量

    120426

原文標題:Video-Touch:手勢識別助力 Google Meet 實現多用戶遠程控制機器人

文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

    近年來,人工智能領域的大模型技術在多個方向上取得了突破性的進展,特別是在機器人控制領域展現出了巨大的潛力。在“具身智能機器人大模型”部分,作者研究并探討了大模型如何提升機器人的能力,大
    發(fā)表于 12-29 23:04

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

    重要。 書中還詳細介紹了支持具身智能機器人的核心技術系統(tǒng),包括自主機器人計算系統(tǒng)、感知系統(tǒng)、定位系統(tǒng)及規(guī)劃和控制系統(tǒng)。 本書共分5個部分。 第1部分(第1章和第2章)介紹具身智能機器人
    發(fā)表于 12-28 21:12

    用網頁端遠程控制電腦各工具對比

    遠程辦公、設備維護和技術支持場景中,遠程控制工具的選擇至關重要。本篇將介紹幾款常見的遠程控制工具進行對比,包括P2link、花生殼、蒲公英、nat123和natapp,幫助用戶了解各工具的不同特點,從而更好地選擇適合
    的頭像 發(fā)表于 11-05 11:22 ?299次閱讀

    認識機器人與CW32四足機器人控制項目

    認識機器人與CW32四足機器人控制項目 一、認識機器人 機器人是一種能夠自動執(zhí)行任務的機器,能夠
    的頭像 發(fā)表于 09-28 15:46 ?256次閱讀

    開源項目!用ESP32做一個可愛的無用機器人

    簡介 作者在完成碩士論文答辯后,利用空閑時間制作了一個他一直想做的機器人——可愛無用機器人。 無用機器人原理是一個連接到開關的電機,通過邏輯門控制。當開關被推到“開”時,
    發(fā)表于 09-03 09:34

    開源項目!用ESP32做一個可愛的無用機器人

    簡介 作者在完成碩士論文答辯后,利用空閑時間制作了一個他一直想做的機器人——可愛無用機器人。 無用機器人原理是一個連接到開關的電機,通過邏輯門控制。當開關被推到“開”時,
    發(fā)表于 08-30 14:50

    android 遠程控制如何實現

    在現代工作和生活中,遠程控制安卓設備或使用安卓設備遠程控制其他設備已成為常見需求。安卓遠程控制允許IT管理員遠程訪問安卓設備。實施遠程控制
    的頭像 發(fā)表于 08-21 18:05 ?919次閱讀
    android <b class='flag-5'>遠程控制</b>如何實現

    柔性機器人和剛性機器人有什么區(qū)別?

    則由剛性桿及其關節(jié)連接構成,運動自由度相對較少。控制方式:柔性機器人通常采用基于力和視覺感知的控制系統(tǒng),而剛性機器人則主要采用編程控制。應用
    的頭像 發(fā)表于 08-16 10:17 ?582次閱讀
    柔性<b class='flag-5'>機器人</b>和剛性<b class='flag-5'>機器人</b>有什么區(qū)別?

    Al大模型機器人

    和迭代不斷改進自身性能。它們可以從用戶交互中學習并根據反饋進行調整,以提高對話質量和準確性??啥ㄖ菩耘c整合性: AI大模型機器人可以根據特定需求進行定制和整合,以滿足不同場景和應用的要求。它們可以與其
    發(fā)表于 07-05 08:52

    工業(yè)機器人數據采集遠程監(jiān)控平臺是什么

    關節(jié)運動軌跡等,并提供遠程控制和診斷功能。主要功能特點包括: 1. 數據采集:平臺能夠從工業(yè)機器人控制器、傳感器和其他相關設備中采集數據,并將其轉換為可用的格式。 2. 實時監(jiān)控:能夠實時顯示工業(yè)
    的頭像 發(fā)表于 06-20 16:05 ?453次閱讀

    如何使用PLC控制機器人

    隨著工業(yè)自動化技術的飛速發(fā)展,機器人技術作為其中的重要組成部分,其應用范圍日益廣泛。在機器人控制系統(tǒng)中,PLC(Programmable Logic Controller,可編程邏輯控制
    的頭像 發(fā)表于 06-17 10:50 ?1798次閱讀

    基于FPGA EtherCAT的六自由度機器人視覺伺服控制設計

    和增強系統(tǒng)處理圖像的實時性,本文提出了一種伊瑟特的六自由度機器人視覺伺服控制系統(tǒng),將攝像頭集成到基于 Zynq的伊瑟特主站上,提高了視覺伺服的實時性.經測試,該平臺能夠對視覺檢測目標的變化做出及時的反應
    發(fā)表于 05-29 16:17

    基于飛凌嵌入式RK3568J核心板的工業(yè)機器人控制器應用方案

    控制系統(tǒng)當中。那么今天,我們就通過多軸工業(yè)機器人聊聊機器人控制系統(tǒng)以及控制器的實現。 1
    發(fā)表于 05-11 09:40

    其利天下技術·搭載無刷電機的掃地機器人的前景如何?

    地毯并增加吸力,或是繞過障礙物進行清掃。同時,通過手機APP遠程控制、語音指令等方式,用戶可以方便地操作掃地機器人,實現個性化的清潔需求。 3.掃地機器人面臨的技術壁壘與客戶體驗問題 盡管掃地
    發(fā)表于 05-05 15:03