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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

1.引言:


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

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

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

論文link:

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

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

2.項目背景與動機:


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

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

3.技術(shù)概覽:


前提本項目是基于python的環(huán)境下進行編譯的。

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

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

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

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

wKgZomYXgSCAS1y-AAEkd4qh2CQ262.png

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


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

你可以進行在線的嘗試語音轉(zhuǎn)文本:

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

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


https://github.com/elephantrobotics/pymycobot

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

解釋這些技術(shù)如何合作實現(xiàn)自然語言控制機械手臂的功能。

接下來介紹一下硬件設(shè)備:

mycobot 280 M5Stack


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

wKgaomYXgZ-ARsZRABlTBMo1P8Q868.png

4.設(shè)計思路與實現(xiàn)過程:


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

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

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

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

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

wKgZomYXgdqAByX4AABMOJwj1WY709.png

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

語音識別轉(zhuǎn)文本功能speech-to-text:


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

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

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

調(diào)用ChatGPT API &預訓練


獲取了語音的文本形式,就可以調(diào)用API在本地跟ChatGPT進行聊天了。以下是OpenAI 提供調(diào)用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需要自己去官方申請(需要付費)。

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

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


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

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

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

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

wKgZomYXgv-AEGvNAABmUe8cNr4638.png

構(gòu)建新的機械臂API


為什么要構(gòu)建新的API呢,pymycobot不是已經(jīng)提供了嗎?

當然,pymycobot 提供的API很全面,也很多。我們?nèi)绻o的語音比較復雜,ChatGPT會生成其他的復雜的代碼可能會導致出錯。我根據(jù)我想要目前測試的一些需求構(gòu)建了一個新的機械臂的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)

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

這么做是有原因的,比如說,要讓機械臂去到一個點位進行抓取,用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)


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

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.初步成果與展示:


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

wKgZomYXhGeAOT3MAAC3Ae2WtHE000.png

復制生成的代碼去運行。

wKgZomYXhL2AWINGAHjQGzQa6LU646.png

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

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

審核編輯 黃宇

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

    關(guān)注

    1806

    文章

    49028

    瀏覽量

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

    關(guān)注

    13

    文章

    554

    瀏覽量

    25397
  • 自然語言
    +關(guān)注

    關(guān)注

    1

    文章

    292

    瀏覽量

    13656
  • ChatGPT
    +關(guān)注

    關(guān)注

    29

    文章

    1590

    瀏覽量

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

    關(guān)注

    0

    文章

    86

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    什么是LLM?LLM在自然語言處理中的應用

    隨著人工智能技術(shù)的飛速發(fā)展,自然語言處理(NLP)領(lǐng)域迎來了革命性的進步。其中,大型語言模型(LLM)的出現(xiàn),標志著我們對語言理解能力的一次飛躍。LLM通過深度學習和海量數(shù)據(jù)訓練,使得
    的頭像 發(fā)表于 11-19 15:32 ?3659次閱讀

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

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

    自然語言處理與機器學習的區(qū)別

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

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

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