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

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

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

3天內不再提示

自然語言控制機械臂:ChatGPT與機器人技術的融合創新(上)

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2024-04-11 14:36 ? 次閱讀

1.引言:


自OpenAI發布ChatGPT以來,世界正迅速朝著更廣泛地將AI技術融合到機器人設備中的趨勢發展。機械手臂,作為自動化與智能化技術的重要組成部分,在制造業、醫療、服務業等領域的應用日益廣泛。隨著AI技術的進步,機械手臂不僅能執行復雜的操作任務,還能通過自然語言處理技術進行更加直觀的交互,極大提高了靈活性和用戶友好性。

就比如說微軟的一個人工智能研究中心,研究如何用自然語言來控制機器人設備的一個研究,

所以我想做一個類似的項目,通過允許用戶使用自然語言來控制機械手臂,它可以大大降低機器人編程的門檻,使得非專業人士也能輕松地操作和實驗。

論文link:

https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf

該項目一共分為上下兩篇,本篇文章主要內容是整個人工智能系統的設計和構建的過程,未來的下一篇文章將要介紹在開發項目的過程中遇到的而困難,如何解決,以及該項目有什么擴展的性的功能。

2.項目背景與動機:


想象如果有有一天,你命令一個機械臂“幫我收拾一下桌面,將垃圾丟到垃圾桶里”,機械臂就開始聽從命令,清理你的桌面的垃圾,那該是多么幸福的一件事情呀。

所以準備工作,我們需要一臺小型的機械臂(主要是大的機械臂太貴了),一臺能夠上網的電腦,以及一顆炙熱的心!該項目主要是借鑒微軟的那篇改變機器人使用的研究來入手。

3.技術概覽:


前提本項目是基于python的環境下進行編譯的。

首先我們先來介紹一下本項目會使用到的一些軟件層面上技術:

ChatGPT:(整個項目最關鍵的核心技術)
https://openai.com/chatgpt

ChatGPT是一項人工智能技術,基于GPT(Generative Pre-trained Transformer)模型的架構,GPT是一種基于深度學習的自然語言處理模型,通過大規模的無監督預訓練和有監督微調來實現語言理解和生成任務。

換句話來說,你可以簡單人理解為你在跟一個知識十分淵博的人進行聊天,你可以對它預設一些角色,例如“”你是一個醫生”,你就可以跟他聊醫學相關的知識,但是請注意并不是所生成的所有聊天都是正確的需要進行自我判斷。

wKgZomYXgSCAS1y-AAEkd4qh2CQ262.png

Speech recognition:(搭配處理自然語言必不可少的功能模塊)


我們這邊使用的是Google的一種語音識別服務,Speech-to-text,它允許開發者將語音轉化成文本的形式。并且它也支持多種語言和方言,包括但不限于英語,西班牙語,法語,德語,中文等等,可以滿足全球用戶的需求。

你可以進行在線的嘗試語音轉文本:

https://cloud.google.com/speech-to-text?hl=en#features

pymycobot:(mycobot 280機械臂的控制功能模塊)


https://github.com/elephantrobotics/pymycobot

pymycobot 是大象機器人專門為了my系列產品的機械臂開發的控制模塊,這個功能模塊的開發,大大降低了機械臂編程控制的門檻。pymycobot 提供了大量的機械臂的控制接口,例如關節控制,坐標控制,配套的機械臂的夾爪控制等等,對機械臂變成的初學者是相當有好的。

解釋這些技術如何合作實現自然語言控制機械手臂的功能。

接下來介紹一下硬件設備:

mycobot 280 M5Stack


mycobot 280 M5Stack 是Elephant Robotics 和M5Stack 合作的一款6自由度的協作性機器人。它外觀結構設計小巧精致,一體式全包裹機身設計,采用高精度伺服電機,無任何外漏線纜。mycobot重量只有850g,機械臂末端最大的負載能夠達到250g,最大工作半徑達到280mm,重復定位精度能夠到0.5mm的誤差范圍內。

wKgaomYXgZ-ARsZRABlTBMo1P8Q868.png

4.設計思路與實現過程:


https://www.youtube.com/watch?v=Sq1QZB5baNw&pp=ygUVY2hhdGdwdCBjb250cm9sIHJvYm90

大家可以看一下近期OpenAI發布的一條視頻,人跟機器人聊天,機器人來處理自然語言并且生成相對應的動作執行。

也有一些其他的額機械臂也集成了類似的場景。

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

我要做的項目就是類似于這個小型版!通過自然語言跟機械臂進行溝通,然后,機械臂執行相對應的指令。

wKgZomYXgdqAByX4AABMOJwj1WY709.png

接下來我將要說明項目的過程。

語音識別轉文本功能speech-to-text:


為什么要用語音識別轉文本功能呢?用過chatgpt的人知道chatgpt有內置的語音聊天的功能,但是我們要集成到PC端和機械臂當中去使用,就不能夠使用ChatGPT的web版本,而是要在本地的計算機當中實現,就要用到ChatGPT的API接口。

ChatGPT API的形式的話只能夠接收“文本”的形式來使用,所以speech-to-text可以講我們講話轉化成文本的形式輸入到電腦當中。

def speech_to_text():
   recognizer = sr.Recognizer()

   with sr.Microphone() as source:
       print("start speaking...")
       audio = recognizer.listen(source)

       try:
           # text = recognizer.recognize_google(audio, language='zh-CN')
           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("Could not request results from Google Speech Recognition service; {0}".format(e))
           return None
wKgZomYXgjSAFLsqAABDoQUoL74246.png

調用ChatGPT API &預訓練


獲取了語音的文本形式,就可以調用API在本地跟ChatGPT進行聊天了。以下是OpenAI 提供調用ChatGPT API的使用方法。

def generate_control_code(prompt):
   openai.api_key = ''
   prompt = f"{pre_training}The command the user wants to execute is:'{prompt}'."

   try:
       response = openai.Completion.create(
           engine="gpt-3.5-turbo",
           prompt=prompt,
           temperature=0.5,
           max_tokens=100,
           top_p=1.0,
           frequency_penalty=0.0,
           presence_penalty=0.0
       )
       code = response.choices[0].text.strip()
       return code
   except Exception as e:
       print(f"error: {e}")
       return ""

代碼當中的API_KEY需要自己去官方申請(需要付費)。

可以關注一下prompt這一句話,這將是要提及到的預訓練。

 prompt = f"{pre_training}The command the user wants to execute is:'{prompt}'."


如果想要獲取精準的回復,需要提前給ChatGPT知道它需要干什么,要讓他干什么,按照我們的想法來輸出。我們先用web版本來進行測試,因為API的搭建比較復雜。

以下是我的prompt(針對于這個項目),我只想要它輸出機械臂執行的代碼給我所以我是這么做的。

Generate Python code that matches the following requirements: 
Use an instance of the MyCobotController class robot to perform a specific action. The instance already contains methods such as move_to_zero() to return to the initial position, grab_position() to move to the grab position, and plus_x_coords(value), plus_y_coords(value), plus_z_coords(value) to move specific distances on the X, Y, and Z axes. 
You don’t need to output other textual content, just output the code directly, for example, the robot arm returns to the origin. robot.move_to_zero()

Here is what I said:
I want the robot arm to return to the origin, and then go to the position to be grabbed to perform grabbing.
wKgaomYXguyAES15AABiPBwZdfI923.png

這里可以看到能夠成功的完成我的基本需求,但是他輸出了代碼的注釋,這會影響我們之后的結果,所以還是需要進行修改。(讓他只輸出代碼,不要輸出注釋。)

wKgZomYXgv-AEGvNAABmUe8cNr4638.png

構建新的機械臂API


為什么要構建新的API呢,pymycobot不是已經提供了嗎?

當然,pymycobot 提供的API很全面,也很多。我們如果給的語音比較復雜,ChatGPT會生成其他的復雜的代碼可能會導致出錯。我根據我想要目前測試的一些需求構建了一個新的機械臂的API。

class MyCobotController:
   def __init__(self, port, baud):
        self.mc = MyCobot(port, baud)
        self.speed = 80
        self.mode =0
        self.coords = []

   def grab_position(self):
       # self.mc.send_angles([4.83, 13.97, (-99.31), (-1.75), 4.39, (-0.26)], 80)
       self.mc.send_coords([149.2, (-48.3), 201.7, (-176.98), 4.55, (-84.66)], 80, 0)
       time.sleep(2)

   def move_to_zero(self):
       self.mc.send_angles([0,0,0,0,0,0],70)
       time.sleep(2)

   def gripper_open(self):
       self.mc.set_gripper_state(0,80,1)
       time.sleep(2)

目的是為了快速的將整個項目搭建起來,之后還可以在豐富其中的內容。

這么做是有原因的,比如說,要讓機械臂去到一個點位進行抓取,用pymycobot的方法可能是下面這樣的:

robot.send_angles([0,0,0,0,0,0],80)
time.sleep(2)
#open gripper
robot.set_grippr_value(1,80,1)
time.sleep(1)
#clos grippr
robot.set_grippr_value(0,80,1)
time.sleep(1)


這樣的話就要輸出很多行的代碼,在其他復雜的情況下可能會導致出錯,重新構建一個方法的話咱就只需要調用一個方法就可以執行了,兩行代碼就能解決。

class Newmycobot():
   def grab_action(self):
       self.send_angles([0,0,0,0,0,0],80)
       time.sleep(2)
       #open gripper
       self.set_grippr_value(1,80,1)
       time.sleep(1)
       #clos grippr
       self.set_grippr_value(0,80,1)
       time.sleep(1)
   
robot = Newmycobot()
robot.grab_action()


5.初步成果與展示:


我們先來個快速的調試,用web版本的ChatGPT來實踐一下。

wKgZomYXhGeAOT3MAAC3Ae2WtHE000.png

復制生成的代碼去運行。

wKgZomYXhL2AWINGAHjQGzQa6LU646.png

可以看到簡單的測試是OK的。

6. 結論:
本次的記錄就到這里,整個項目還未完成,在未來不久的日子里我將會繼續完善這個項目,下一篇的內容我會完善整個項目,以及分享一下在開發的過程出現的一些問題是如何進行解決的。如果你喜歡這篇文章的話,歡迎在下方留言給出你的想法。

審核編輯 黃宇

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

    關注

    1791

    文章

    47279

    瀏覽量

    238513
  • 機械臂
    +關注

    關注

    12

    文章

    515

    瀏覽量

    24588
  • 自然語言
    +關注

    關注

    1

    文章

    288

    瀏覽量

    13350
  • ChatGPT
    +關注

    關注

    29

    文章

    1561

    瀏覽量

    7675
收藏 人收藏

    評論

    相關推薦

    《具身智能機器人系統》第7-9章閱讀心得之具身智能機器人與大模型

    研讀《具身智能機器人系統》第7-9章,我被書中對大模型與機器人技術融合的深入分析所吸引。第7章詳細闡述了ChatGPT for Roboti
    發表于 12-24 15:03

    自然語言處理在聊天機器人中的應用

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

    自然語言處理與機器學習的關系 自然語言處理的基本概念及步驟

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能和語言學領域的一個分支,它致力于研究如何讓計算機能夠理解、解釋和生成人類語言機器學習(Ma
    的頭像 發表于 12-05 15:21 ?483次閱讀

    語音識別與自然語言處理的關系

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

    自然語言處理與機器學習的區別

    在人工智能的快速發展中,自然語言處理(NLP)和機器學習(ML)成為了兩個核心的研究領域。它們都致力于解決復雜的問題,但側重點和應用場景有所不同。 1. 自然語言處理(NLP) 定義: 自然語
    的頭像 發表于 11-11 10:35 ?586次閱讀

    機器人技術的發展趨勢

    能力。 機器人能夠通過學習和訓練,不斷優化自身的行為和性能,實現更高效、更智能的工作。 自然語言處理與理解 : 隨著自然語言處理技術的進步,機器人
    的頭像 發表于 10-25 09:27 ?940次閱讀

    自然語言處理技術有哪些

    自然語言處理(Natural Language Processing,簡稱NLP)是人工智能領域的一個分支,它致力于使計算機能夠理解、解釋和生成人類語言自然語言處理技術的發展已經取得
    的頭像 發表于 07-03 14:30 ?1154次閱讀

    自然語言處理模式的優點

    得到了廣泛的應用,如搜索引擎、語音助手、機器翻譯、情感分析等。 1. 提高信息獲取效率 自然語言處理技術能夠快速地從大量文本數據中提取關鍵信息,幫助用戶節省查找和篩選信息的時間。例如,搜索引擎通過NLP
    的頭像 發表于 07-03 14:24 ?789次閱讀

    自然語言處理技術的核心是什么

    ,廣泛應用于機器翻譯、情感分析、語音識別、智能問答、文本摘要等眾多領域。 自然語言處理技術的發展可以追溯到20世紀50年代。1950年,圖靈提出了著名的圖靈測試,標志著自然語言處理
    的頭像 發表于 07-03 14:20 ?755次閱讀

    自然語言處理是什么技術的一種應用

    廣泛,包括機器翻譯、語音識別、情感分析、信息檢索、問答系統、文本摘要、聊天機器人等。 一、自然語言處理的基本概念 自然語言自然語言是人類用
    的頭像 發表于 07-03 14:18 ?909次閱讀

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

    本文已經或者同濟子豪兄作者授權對文章進行編輯和轉載 引言 隨著人工智能和機器人技術的快速發展,機械在工業、醫療和服務業等領域的應用越來越廣泛。通過結合大模型和多模態AI,
    的頭像 發表于 07-03 14:09 ?935次閱讀
    大象<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大模型!

    自然語言處理技術的原理的應用

    自然語言處理(Natural Language Processing, NLP)作為人工智能(AI)領域的一個重要分支,旨在使計算機能夠理解和處理人類自然語言。隨著互聯網的普及和大數據技術的發展
    的頭像 發表于 07-02 12:50 ?531次閱讀

    國產Cortex-A55工智能教學實驗箱_基于Python機械跳舞實驗案例分享

    發行包管理,它也提供一些工具和庫用于獲取、建立、編寫和執行多機融合的程序。 機械通過ROS機器人操控系統,簡化了6自由度串行總線舵機復雜運動控制
    發表于 06-28 14:37

    自然語言控制機械ChatGPT機器人技術融合創新(下)

    引言 在我們的一篇文章中,我們探索了如何將ChatGPT集成到myCobot 280機械臂中,實現了一個通過自然語言控制
    的頭像 發表于 04-11 15:54 ?899次閱讀
    <b class='flag-5'>自然語言</b><b class='flag-5'>控制</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>:<b class='flag-5'>ChatGPT</b>與<b class='flag-5'>機器人</b><b class='flag-5'>技術</b>的<b class='flag-5'>融合</b><b class='flag-5'>創新</b>(下)

    自動化革命:大象機器人的Mercury A1機械

    引言 大象機器人的Mercury系列,是面向工業自動化和智能制造的新型機械產品線。這些機械不僅在設計
    的頭像 發表于 01-15 14:41 ?727次閱讀
    自動化革命:大象<b class='flag-5'>機器人</b>的Mercury A1<b class='flag-5'>機械</b><b class='flag-5'>臂</b>
    主站蜘蛛池模板: 高清视频在线观看+免费| 黄黄视频免费看| 在线观看网站黄| 伊伊成人网| 欧美城天堂网| 天天操夜夜夜| 亚洲色图27p| 色y情视频免费看| 夜夜爱夜夜操| 好紧好爽的午夜寂寞视频| 天堂在线网| 伊人天伊人天天网综合视频| 日本人69xxⅹ69| 色亚洲色图| 午夜影院在线看| 视频一区 中文字幕| 日韩一级一欧美一级国产| 午夜在线影视| 亚洲成在人天堂一区二区| 欧美成人午夜视频| 日本一本一道久久香蕉免费| 老师受年下高h男| 久久国产精品久久久久久| 末满18以下勿进色禁网站| 在线啪| 狠狠激情五月综合婷婷俺| 成人黄色三级| 色窝网| 日日骑夜夜操| 中文字幕亚洲天堂| 丁香花在线影院观看在线播放| 日韩一区二区三区在线| 亚洲爽视频| 乱人伦的小说| 国产精品黄网站免费进入 | 男人视频网站| 日本吻胸抓胸激烈视频网站| 手机看片日韩在线| 亚洲性后网| 午夜影院免费在线观看| 看黄视频免费|