一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

引言


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

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

wKgZomYXhL2AWINGAHjQGzQa6LU646.png

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


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

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


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

wKgZomYXjQiAdddWAAA5T4Pbqmk535.png

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

2.OpenAI API的實(shí)用性和地域限制


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

因?yàn)榈貐^(qū)的問(wèn)題,沒(méi)有辦法直接通過(guò)API進(jìn)行訪問(wèn)OpenAI,會(huì)出現(xiàn)網(wǎng)絡(luò)延遲,不能夠使用代理等軟件來(lái)實(shí)現(xiàn)訪問(wèn)。除此之外還得確保網(wǎng)絡(luò)的穩(wěn)定性才能夠快快速的進(jìn)行處理。

wKgZomYXjTqAJnVDAAB5lnQ5YAc478.png

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


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

"robot.move_to_zero()"


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

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


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

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

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


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

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

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

"robot.move_to_zero()"


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

# 以.為節(jié)點(diǎn)分為前后兩個(gè)部分 command_str = "robot.move_to_zero()" parts = command_str.split(".") parts[0] = "robot" part[1] = "move_to_zero()" # 去掉括號(hào)保留,方法名 method_name = part[1].split("()")[0] method = getatter(robot,method_name) method() #處理轉(zhuǎn)化方法 def execute_command(instance,command_str): try: #分割對(duì)象名和方法 parts = command_str.split(".") if len(parts) != 2 or parts[0] != 'robot': print("Invalid command format.") return method_name = parts[1].split("()")[0] #移除括號(hào) #使用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}")

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

上述三個(gè)是我主要遇到的問(wèn)題,接下來(lái)我將一一的進(jìn)行解答。

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


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


根據(jù)我上述描寫(xiě)的識(shí)別延遲的問(wèn)題,我是通過(guò)設(shè)置時(shí)間來(lái)優(yōu)化我的程序。

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


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

接下來(lái)完成的功能代碼

import speech_recognition as sr def speech_to_text(): # 初始化識(shí)別器 recognizer = sr.Recognizer() with sr.Microphone() as source: print("start speaking...") # 監(jiān)聽(tīng)源,設(shè)置timeout和phrase_time_limit # timeout:在這段時(shí)間內(nèi)沒(méi)有檢測(cè)到聲音,則停止監(jiān)聽(tīng) # phrase_time_limit:監(jiān)聽(tīng)的最大時(shí)長(zhǎng) 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的語(yǔ)音識(shí)別服務(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)可以滿足大部分的需求了,實(shí)際的使用情況下來(lái)來(lái)看,整個(gè)的功能還是比較完整的,能夠有效的識(shí)別出語(yǔ)音內(nèi)容,特別是讓我說(shuō)數(shù)字的時(shí)候他主動(dòng)轉(zhuǎn)化成阿拉伯?dāng)?shù)字,在進(jìn)行交互的過(guò)程中省了處理數(shù)字的問(wèn)題。

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


如何來(lái)解決多行的指令問(wèn)題呢。

當(dāng)我們收到,多行的指令就不能跟之前單純的分離來(lái)進(jìn)行處理了得考慮其他的方式,以下的情況默認(rèn)ChatGPT生成的指令是下面這種換行行的字符串,沒(méi)有帶注釋的(ChatGPT很喜歡寫(xiě)注釋?zhuān)?/p>

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


只要把多個(gè)當(dāng)成一個(gè)來(lái)看就好了!

# 分割成多行 commands = command_str.strip().split('n') #萬(wàn)一里面存在一些空白符,得先進(jìn)行處理 for cmd in commands: cmd = cmd.strip() if not cmd: continue # 我們默認(rèn)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è)的) # 移除可能的空白字符,并按逗號(hào)分隔參數(shù) args = [arg.strip() for arg in args_str.split(',')] if args_str else []

wKgaomYXj6qAJXcQAABhB7CAPh4382.png

it works!

3.ChatGPT API的問(wèn)題

關(guān)于這個(gè)問(wèn)題,我目前并沒(méi)能很好的進(jìn)行解決,大家如果有好的方法可以,私信我跟我溝通,因?yàn)榈貐^(qū)的問(wèn)題,并不能夠直接的用API獲取響應(yīng)。

項(xiàng)目的擴(kuò)展功能和未來(lái)展望
視覺(jué)功能


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

之前也有看到日本的Shirokuma 開(kāi)發(fā)個(gè)類(lèi)似的項(xiàng)目,用到了ChatGPT4-vision的功能,做了說(shuō)出目標(biāo)進(jìn)行抓取的一個(gè)功能。

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

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

wKgaomYXkAOAfa1rAAbFhnzWR4E408.png

更加智能的“賈維斯”


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

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

總結(jié)


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

審核編輯 黃宇

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

    關(guān)注

    213

    文章

    29726

    瀏覽量

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

    關(guān)注

    1806

    文章

    49007

    瀏覽量

    249282
  • 機(jī)械臂
    +關(guān)注

    關(guān)注

    13

    文章

    554

    瀏覽量

    25374
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1589

    瀏覽量

    9082
  • 大象機(jī)器人
    +關(guān)注

    關(guān)注

    0

    文章

    86

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    RDK × 腿機(jī)器人:這只 “機(jī)械汪” 竟會(huì)說(shuō)人話、走花路!

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

    大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開(kāi)源六軸機(jī)械產(chǎn)品

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

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

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

    大象機(jī)器人攜手進(jìn)迭時(shí)空推出 RISC-V 全棧開(kāi)源六軸機(jī)械產(chǎn)品

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

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

    的設(shè)計(jì)不僅提高了機(jī)器人對(duì)環(huán)境的理解能力,還使其能夠更精準(zhǔn)地執(zhí)行復(fù)雜任務(wù)。 擴(kuò)散模型的新思路 除了大模型,擴(kuò)散模型的引入為機(jī)器人控制開(kāi)辟了新的研究方向。在以UniPi為代表的創(chuàng)新工作中,
    發(fā)表于 12-29 23:04

    《具身智能機(jī)器人系統(tǒng)》第7-9章閱讀心得之具身智能機(jī)器人與大模型

    研讀《具身智能機(jī)器人系統(tǒng)》第7-9章,我被書(shū)中對(duì)大模型與機(jī)器人技術(shù)融合的深入分析所吸引。第7章詳細(xì)闡述了ChatGPT for Roboti
    發(fā)表于 12-24 15:03

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

    動(dòng)態(tài)互動(dòng)的。 該理論強(qiáng)調(diào)智能行為源于智能體的物理存在和行為能力,智能體必須具備感知環(huán)境并在其中執(zhí)行任務(wù)的能力。具身智能的實(shí)現(xiàn)涵蓋了機(jī)器學(xué)習(xí)、人工智能、機(jī)器人學(xué)、計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理及強(qiáng)化學(xué)習(xí)等領(lǐng)域
    發(fā)表于 12-20 19:17

    《具身智能機(jī)器人系統(tǒng)》第1-6章閱讀心得之具身智能機(jī)器人系統(tǒng)背景知識(shí)與基礎(chǔ)模塊

    物理交互納入智能系統(tǒng)的核心要素。 第3章是探討機(jī)器人計(jì)算系統(tǒng)。這一章節(jié)詳細(xì)闡述了自主機(jī)器人的軟硬件架構(gòu)。計(jì)算系統(tǒng)需要滿足機(jī)器人任務(wù)對(duì)算法的精度、實(shí)時(shí)性和功耗要求。書(shū)中介紹的多傳感器融合
    發(fā)表于 12-19 22:26

    自然語(yǔ)言處理在聊天機(jī)器人中的應(yīng)用

    上歸功于自然語(yǔ)言處理技術(shù)的進(jìn)步。 聊天機(jī)器人的工作原理 聊天機(jī)器人的核心是一個(gè)對(duì)話系統(tǒng),它能夠處理用戶的輸入(通常是文本形式),并生成相應(yīng)的回復(fù)。這個(gè)系統(tǒng)通常包括以下幾個(gè)關(guān)鍵組件:
    的頭像 發(fā)表于 12-05 15:24 ?1186次閱讀

    自然語(yǔ)言處理與機(jī)器學(xué)習(xí)的關(guān)系 自然語(yǔ)言處理的基本概念及步驟

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱(chēng)NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它致力于研究如何讓計(jì)算機(jī)能夠理解、解釋和生成人類(lèi)語(yǔ)言機(jī)器學(xué)習(xí)(Ma
    的頭像 發(fā)表于 12-05 15:21 ?1973次閱讀

    語(yǔ)音識(shí)別與自然語(yǔ)言處理的關(guān)系

    在人工智能的快速發(fā)展中,語(yǔ)音識(shí)別和自然語(yǔ)言處理(NLP)成為了兩個(gè)重要的技術(shù)支柱。語(yǔ)音識(shí)別技術(shù)使得機(jī)器能夠理解人類(lèi)的語(yǔ)音,而自然語(yǔ)言處理則讓
    的頭像 發(fā)表于 11-26 09:21 ?1491次閱讀

    ASR與自然語(yǔ)言處理的結(jié)合

    ASR(Automatic Speech Recognition,自動(dòng)語(yǔ)音識(shí)別)與自然語(yǔ)言處理(NLP)是人工智能領(lǐng)域的兩個(gè)重要分支,它們?cè)谠S多應(yīng)用中緊密結(jié)合,共同構(gòu)成了自然語(yǔ)言理解和生成的技術(shù)體系
    的頭像 發(fā)表于 11-18 15:19 ?1023次閱讀

    自然語(yǔ)言處理與機(jī)器學(xué)習(xí)的區(qū)別

    在人工智能的快速發(fā)展中,自然語(yǔ)言處理(NLP)和機(jī)器學(xué)習(xí)(ML)成為了兩個(gè)核心的研究領(lǐng)域。它們都致力于解決復(fù)雜的問(wèn)題,但側(cè)重點(diǎn)和應(yīng)用場(chǎng)景有所不同。 1. 自然語(yǔ)言處理(NLP) 定義: 自然語(yǔ)
    的頭像 發(fā)表于 11-11 10:35 ?1535次閱讀

    機(jī)器人技術(shù)的發(fā)展趨勢(shì)

    能力。 機(jī)器人能夠通過(guò)學(xué)習(xí)和訓(xùn)練,不斷優(yōu)化自身的行為和性能,實(shí)現(xiàn)更高效、更智能的工作。 自然語(yǔ)言處理與理解 : 隨著自然語(yǔ)言處理技術(shù)的進(jìn)步,機(jī)器人
    的頭像 發(fā)表于 10-25 09:27 ?2343次閱讀

    圖像識(shí)別技術(shù)包括自然語(yǔ)言處理嗎

    圖像識(shí)別技術(shù)自然語(yǔ)言處理是人工智能領(lǐng)域的兩個(gè)重要分支,它們?cè)诤芏喾矫嬗兄芮械穆?lián)系,但也存在一些區(qū)別。 一、圖像識(shí)別技術(shù)自然語(yǔ)言處理的關(guān)系 1.1 圖像識(shí)別
    的頭像 發(fā)表于 07-16 10:54 ?1561次閱讀