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

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

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

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

自然語言控制機械臂:ChatGPT與機器人技術(shù)的融合創(chuàng)新(下)

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2024-04-11 15:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言


在我們的上一篇文章中,我們探索了如何將ChatGPT集成到myCobot 280機械臂中,實現(xiàn)了一個通過自然語言控制機械臂的系統(tǒng)。我們詳細介紹了項目的動機、使用的關(guān)鍵技術(shù)如ChatGPT和Google的Speech-to-text服務(wù),以及我們是如何通過pymycobot模塊來控制機械臂的。通過將自然語言處理和機械臂控制相結(jié)合,我們的項目旨在降低機器人編程的門檻,使得非專業(yè)人士也能輕松地進行機器人編程和實驗。

接下來,在這篇文章中,我們將討論在開發(fā)這一系統(tǒng)過程中遇到的挑戰(zhàn),我們是如何克服這些挑戰(zhàn)的,以及項目未來的擴展可能性。我們的目標(biāo)是深入了解技術(shù)實施的具體問題,并探索該系統(tǒng)未來發(fā)展的新方向。

wKgZomYXhL2AWINGAHjQGzQa6LU646.png

開發(fā)當(dāng)中遇到的困難


在開發(fā)集成了ChatGPT的mycobot 280機械臂控制系統(tǒng)的過程中,我面臨了幾個主要的技術(shù)挑戰(zhàn)。

1.語音識別的準(zhǔn)確性和響應(yīng)時間


首先,我遇到的挑戰(zhàn)是語音識別的準(zhǔn)確性和反應(yīng)時間。盡管使用了Google的Speech-to-text,但在實際應(yīng)用中,我發(fā)現(xiàn)它有時難以準(zhǔn)確識別專業(yè)術(shù)語或在嘈雜環(huán)境中捕捉語音指令??赡苁且驗椴惶斫獾讓舆壿嬤\行的一個原理是什么,也不知道如何來正確的使用。此外,從語音輸入到文本輸出的過程延遲較長,如何來判斷這句話是不是說完了,通常響應(yīng)的時間較久。

wKgZomYXjQiAdddWAAA5T4Pbqmk535.png

在我說完之后,大概會有3s左右的響應(yīng)時間。

2.OpenAI API的實用性和地域限制


ChatGPT的API 是整個項目的核心功能點,沒有了他就不能實現(xiàn)AI的機械臂控制系統(tǒng)了。在一開始測試代碼的時候我用的是WEB版本的ChatGPT,一開始沒有考慮到使用API是一個比較大的問題。

因為地區(qū)的問題,沒有辦法直接通過API進行訪問OpenAI,會出現(xiàn)網(wǎng)絡(luò)延遲,不能夠使用代理等軟件來實現(xiàn)訪問。除此之外還得確保網(wǎng)絡(luò)的穩(wěn)定性才能夠快快速的進行處理。

wKgZomYXjTqAJnVDAAB5lnQ5YAc478.png

3.自然語言轉(zhuǎn)指令的處理


如果解決了上邊的生成代碼的問題,我們將會得到類似于命令行的字符串,需要將它轉(zhuǎn)變成可以編譯的代碼。一開始只考慮到了單行的命令行

"robot.move_to_zero()"


要將字符串轉(zhuǎn)化成執(zhí)行的代碼可以用到python的getattr(),他是一個內(nèi)置函數(shù),用于獲取對象的屬性值。

getattr(object, name[, default]) object:表示要獲取屬性的對象。 name:表示要獲取的屬性的名稱。 default:可選參數(shù),表示如果指定的屬性不存在時返回的默認值。


getattr() 函數(shù)會嘗試獲取指定對象的指定屬性的值。如果對象具有該屬性,則返回屬性的值;如果對象沒有指定的屬性,但提供了默認值,則返回默認值;如果對象沒有指定的屬性,并且沒有提供默認值,則會引發(fā) AttributeError 異常。

舉個例子直接調(diào)用類的方法

class Myclass: def print_1(self): print("halo word") obj = mycalss() getattr(obj,"print_1")() """ halo word


用這個方法就可以完美解決如何將字符串的形式輸出可執(zhí)行的代碼了!

接下來是將字符串轉(zhuǎn)化為可執(zhí)行代碼的過程:

我們收到的字符串是代碼的形式例如

"robot.move_to_zero()"


我們要將這一部分進行拆分,分為obj和方法兩部分,就要用到python當(dāng)中的分割的方法。

# 以.為節(jié)點分為前后兩個部分 command_str = "robot.move_to_zero()" parts = command_str.split(".") parts[0] = "robot" part[1] = "move_to_zero()" # 去掉括號保留,方法名 method_name = part[1].split("()")[0] method = getatter(robot,method_name) method() #處理轉(zhuǎn)化方法 def execute_command(instance,command_str): try: #分割對象名和方法 parts = command_str.split(".") if len(parts) != 2 or parts[0] != 'robot': print("Invalid command format.") return method_name = parts[1].split("()")[0] #移除括號 #使用getattr 安全的獲取方法引用 if hasattr(instance, method_name): method = getattr(instance, method_name) method() else: print(f"the method {method_name} does not exist!") except Exception as e: print(f"An error occurred: {e}")

這樣就完成了,能夠處理單行的字符串,但是在測試的時候使用產(chǎn)生多行的命令的時候,這個代碼就不行了,它會變成一長串,所以這個方法是無效的。

上述三個是我主要遇到的問題,接下來我將一一的進行解答。

解決方案和應(yīng)對策略


1.優(yōu)化語音識別


根據(jù)我上述描寫的識別延遲的問題,我是通過設(shè)置時間來優(yōu)化我的程序。

# 設(shè)置timeout為3秒,phrase_time_limit為10秒 audio = recognizer.listen(source, timeout=3, phrase_time_limit=10)


默認設(shè)置沒有聽到聲音,一直的進行監(jiān)聽,我設(shè)置了時間上的限制10s,也能夠保證我在說完話之后較快的一個響應(yīng)。

接下來完成的功能代碼

import speech_recognition as sr def speech_to_text(): # 初始化識別器 recognizer = sr.Recognizer() with sr.Microphone() as source: print("start speaking...") # 監(jiān)聽源,設(shè)置timeout和phrase_time_limit # timeout:在這段時間內(nèi)沒有檢測到聲音,則停止監(jiān)聽 # phrase_time_limit:監(jiān)聽的最大時長 try: audio = recognizer.listen(source, timeout=3, phrase_time_limit=10) except sr.WaitTimeoutError: print("No speech was detected within the timeout period.") return None try: # 使用Google的語音識別服務(wù) text = recognizer.recognize_google(audio, language='en-US') print("You said: " + text) return text except sr.UnknownValueError: print("Google Speech Recognition could not understand audio") return None except sr.RequestError as e: print(f"Could not request results from Google Speech Recognition service; {e}") return None

這目前已經(jīng)可以滿足大部分的需求了,實際的使用情況下來來看,整個的功能還是比較完整的,能夠有效的識別出語音內(nèi)容,特別是讓我說數(shù)字的時候他主動轉(zhuǎn)化成阿拉伯?dāng)?shù)字,在進行交互的過程中省了處理數(shù)字的問題。

1.自然語言轉(zhuǎn)化優(yōu)化


如何來解決多行的指令問題呢。

當(dāng)我們收到,多行的指令就不能跟之前單純的分離來進行處理了得考慮其他的方式,以下的情況默認ChatGPT生成的指令是下面這種換行行的字符串,沒有帶注釋的(ChatGPT很喜歡寫注釋)。

"robot.move_to_zero() robot.grab_position() robot.plus_z_coords(20)"


只要把多個當(dāng)成一個來看就好了!

# 分割成多行 commands = command_str.strip().split('n') #萬一里面存在一些空白符,得先進行處理 for cmd in commands: cmd = cmd.strip() if not cmd: continue # 我們默認obj 是robot,就只需要獲取方法名字就可以了 if cmd.startswith("robot."): cmd = cmd[6:] # 分割方法名,和參數(shù) if '(' in cmd and cmd.endswith(")"): method_name, args_str = cmd.split('(', 1) method_name = method_name.strip() #刪除前后空格 args_str = args_str.rstrip(")") #刪除右側(cè)的) # 移除可能的空白字符,并按逗號分隔參數(shù) args = [arg.strip() for arg in args_str.split(',')] if args_str else []

wKgaomYXj6qAJXcQAABhB7CAPh4382.png

it works!

3.ChatGPT API的問題

關(guān)于這個問題,我目前并沒能很好的進行解決,大家如果有好的方法可以,私信我跟我溝通,因為地區(qū)的問題,并不能夠直接的用API獲取響應(yīng)。

項目的擴展功能和未來展望
視覺功能


在本次記錄當(dāng)中,缺少了最重要的一個模塊,視覺模塊,單獨有一個機械臂沒有眼睛的話跟瞎子又有什么區(qū)別呢。 對于這一部分的開發(fā),會需要花費較大的經(jīng)歷,如果以后有完成一定程度上的開發(fā),我也會及時出來跟大家進行分享。

之前也有看到日本的Shirokuma 開發(fā)個類似的項目,用到了ChatGPT4-vision的功能,做了說出目標(biāo)進行抓取的一個功能。

https://twitter.com/neka_nat/status/1733517151947108717

這個項目也是相當(dāng)?shù)挠幸馑?,給了我不少開發(fā)這個項目的想法。

wKgaomYXkAOAfa1rAAbFhnzWR4E408.png

更加智能的“賈維斯”


相信大家的肯定都有看過鋼鐵俠,隨著AI的不斷發(fā)展,我覺得在不久的將來,肯定會出現(xiàn)一款如同電影當(dāng)中的機械臂,能夠通過交流的方式來幫助你完成一些工作。

近幾年也能說是人工智能的突發(fā)猛進的幾年,AIGC是近期最火熱的內(nèi)容,只要接收到內(nèi)容就可以生成對應(yīng)的文本,圖像,視頻和音頻等等。

總結(jié)


很期待未來,AI和機器人相結(jié)合能夠融合到怎樣的一個程度,是不是已經(jīng)能夠幫助人類做一定的事情了!如果你有一些好的想法,或者對我的項目修改的意見歡迎隨時跟我提出!

審核編輯 黃宇

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

    關(guān)注

    213

    文章

    31097

    瀏覽量

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

    關(guān)注

    1817

    文章

    50105

    瀏覽量

    265534
  • 機械臂
    +關(guān)注

    關(guān)注

    14

    文章

    596

    瀏覽量

    26134
  • ChatGPT
    +關(guān)注

    關(guān)注

    31

    文章

    1598

    瀏覽量

    10282
  • 大象機器人
    +關(guān)注

    關(guān)注

    0

    文章

    86

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    人形機器人爆發(fā)背后,一個被忽視的核心技術(shù)機器人運動學(xué)控制

    前言近兩年,中國人形機器人產(chǎn)業(yè)進入快速發(fā)展階段。從特斯拉Optimus到國內(nèi)眾多創(chuàng)新企業(yè),人形機器人正逐漸從實驗室走向工業(yè)制造、服務(wù)機器人、醫(yī)療康復(fù)等更多應(yīng)用場景。但在炫目的
    的頭像 發(fā)表于 03-10 17:04 ?226次閱讀
    人形<b class='flag-5'>機器人</b>爆發(fā)背后,一個被忽視的核心<b class='flag-5'>技術(shù)</b>:<b class='flag-5'>機器人</b>運動學(xué)<b class='flag-5'>控制</b>

    自然語言處理NLP的概念和工作原理

    自然語言處理 (NLP) 是人工智能 (AI) 的一個分支,它會教計算機如何理解口頭和書面形式的人類語言。自然語言處理將計算語言學(xué)與機器學(xué)習(xí)
    的頭像 發(fā)表于 01-29 14:01 ?406次閱讀
    <b class='flag-5'>自然語言</b>處理NLP的概念和工作原理

    《AI機器人控制進階教程(入門版)》閱讀指引

    的預(yù)編程,只能在結(jié)構(gòu)化環(huán)境中工作。AI的引入(如計算機視覺、自然語言處理),賦予機器人感知、理解和決策的能力,使其能適應(yīng)開放、動態(tài)的真實世界。2.解決復(fù)雜任務(wù)的核心本
    的頭像 發(fā)表于 01-07 10:56 ?2230次閱讀
    《AI<b class='flag-5'>機器人</b><b class='flag-5'>控制</b>進階教程(入門版)》閱讀指引

    復(fù)合機器人對比傳統(tǒng)AGV和機械的優(yōu)勢何在?

    標(biāo)準(zhǔn)傳統(tǒng)AGV僅能解決“點對點搬運”,機械局限于“固定工位操作”,而經(jīng)世智能復(fù)合機器人通過AGV底盤+機械+視覺系統(tǒng)+一體化
    的頭像 發(fā)表于 11-21 15:32 ?1647次閱讀
    復(fù)合<b class='flag-5'>機器人</b>對比傳統(tǒng)AGV和<b class='flag-5'>機械</b><b class='flag-5'>臂</b>的優(yōu)勢何在?

    高精度機器人控制的核心——基于 MYD-LT536 開發(fā)板的精密運動控制方案

    算法與 C++ 實時模塊開發(fā); - 可作為控制核心部署在高精度測量機器人、激光切割機械、協(xié)作機械
    發(fā)表于 11-14 15:48

    機器人機械效率提升的革命性解決方案:上海永銘電容器實踐

    在現(xiàn)代自動化與精密制造中,機器人機械(人形/工業(yè))的穩(wěn)定性與效率至關(guān)重要。電容器作為電路中的基本組件,對機器人機械的性能發(fā)揮著至關(guān)重要的作用。01
    的頭像 發(fā)表于 09-01 10:06 ?595次閱讀
    <b class='flag-5'>機器人機械</b><b class='flag-5'>臂</b>效率提升的革命性解決方案:上海永銘電容器實踐

    機器人競技幕后:磁傳感器芯片激活 “精準(zhǔn)感知力”

    2025 世界人形機器人運動會于 8 月 17 日圓滿收官,賽場上機器人在跑步、跳躍、抓取等項目中的精彩表現(xiàn),背后是運動控制、環(huán)境感知等技術(shù)的迭代升級。而在這些
    發(fā)表于 08-26 10:02

    海默RC系列機器人控制

    器,基于自主研發(fā)技術(shù)打造,致力于推動機器人核心技術(shù)的持續(xù)突破。RC系列控制器/HMControllerSeriesRC80控制器RC40
    的頭像 發(fā)表于 08-01 15:35 ?1158次閱讀
    海默RC系列<b class='flag-5'>機器人</b><b class='flag-5'>控制</b>器

    MT6701 磁性角度編碼器 IC:引領(lǐng)機器人控制技術(shù)創(chuàng)新

    在科技日新月異的今天,機器人技術(shù)的發(fā)展可謂是突飛猛進。從工業(yè)生產(chǎn)線上不知疲倦的機械,到服務(wù)領(lǐng)域靈活貼心的智能伙伴,機器人正逐漸深入到我們生
    的頭像 發(fā)表于 07-18 17:02 ?829次閱讀

    RDK × 腿機器人:這只 “機械汪” 竟會說人話、走花路!

    開源:Github:https://github.com/Hello-XSJ/RDK\_vlm\_demo.git-本項目聚焦腿機器人在多模態(tài)環(huán)境感知、自然語言交互和自主行為控制方面
    的頭像 發(fā)表于 07-01 20:27 ?1272次閱讀
    RDK × 腿<b class='flag-5'>臂</b><b class='flag-5'>機器人</b>:這只 “<b class='flag-5'>機械</b>汪” 竟會說人話、走花路!

    大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械產(chǎn)品

    大象機器人成立于2016年,專注協(xié)作機器人研發(fā)與應(yīng)用,產(chǎn)品線涵蓋輕量級協(xié)作機器人、人形機器人、仿生機器人等多種形態(tài)。拳頭產(chǎn)品myCobot系
    的頭像 發(fā)表于 06-06 16:55 ?1424次閱讀
    大象<b class='flag-5'>機器人</b>攜手進迭時空推出 RISC-V 全棧開源六軸<b class='flag-5'>機械</b><b class='flag-5'>臂</b>產(chǎn)品

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

    免與行人發(fā)生碰撞,為旅客提供安全、舒適的引導(dǎo)服務(wù)。 智能交互系統(tǒng) 語音識別與理解 :智能指路機器人利用先進的語音識別技術(shù),將旅客輸入的語音信號轉(zhuǎn)化為文字信息。然后,通過自然語言處理算法對文字進行分析
    發(fā)表于 05-10 18:26

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

    的非常好的,特別是一些流程圖,很清晰的闡釋了概念 很適合作為初學(xué)者入門的引路書 還能了解很多技術(shù)和框架,破除初學(xué)者的自負困境,讓初學(xué)者知道功能是由很多開發(fā)者維護的,前人已經(jīng)為各種產(chǎn)品搭建了完善的框架。避免陷入得一個單打獨斗的錯覺 一直蠢蠢欲動ros2和
    發(fā)表于 04-30 01:05

    大象機器人攜手進迭時空推出 RISC-V 全棧開源六軸機械產(chǎn)品

    大象機器人成立于2016年,專注協(xié)作機器人研發(fā)與應(yīng)用,產(chǎn)品線涵蓋輕量級協(xié)作機器人、人形機器人、仿生機器人等多種形態(tài)。拳頭產(chǎn)品myCobot系
    發(fā)表于 04-25 17:59

    具身智能工業(yè)機器人人機交互設(shè)計:重新定義人機協(xié)作新體驗

    在工業(yè) 4.0 時代,機器人不再是冰冷的機械,而是成為與人類協(xié)同創(chuàng)造價值的 “智能伙伴”。富唯智能憑借具身智能工業(yè)機器人人機交互設(shè)計,突破傳統(tǒng)操作界面的局限,通過
    的頭像 發(fā)表于 04-07 15:02 ?1236次閱讀