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

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

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

實現(xiàn)使用語音控制機械臂運動

大象機器人科技 ? 來源:大象機器人科技 ? 作者:大象機器人科技 ? 2023-03-17 18:13 ? 次閱讀

基于語音識別技術(shù)的機器人手臂控制智能化嘗試

介紹:

在電影《鋼鐵俠》中,我們看到托尼·斯塔克在建造設(shè)備時與人工智能賈維斯交流。托尼向賈維斯描述了他需要的零件,賈維斯控制機械臂協(xié)助托尼完成任務(wù)。隨著當今技術(shù)的發(fā)展,這種實現(xiàn)只是時間問題。因此,我決定嘗試自己實現(xiàn)這個功能,用語音控制來操作機械臂,實現(xiàn)人工智能的簡單應(yīng)用。

我全權(quán)負責連接和控制機械臂和語音開發(fā)板,通過特定命令觸發(fā)機械臂的運動。這是一個具有挑戰(zhàn)性的項目,因為語音控制技術(shù)涉及多個方面,如語音識別、信號處理和機器人控制,需要我學習和理解相關(guān)知識。通過這篇文章,我希望分享我的項目實施過程、成就和經(jīng)驗教訓,以激勵和幫助在機器人和語音控制領(lǐng)域工作的同學。

為了實施這個項目,我首先需要解決兩個主要問題:如何處理語音信號以及如何控制機械臂。

處理語音信號:

處理語音信號的步驟:

硬件選擇:選擇合適的開發(fā)板(Arduino、樹莓派等)。

● 麥克風信號處理:選擇合適的麥克風進行采集,通過模數(shù)轉(zhuǎn)換器將采集到的語音信號轉(zhuǎn)換為數(shù)字信號。

● 信號處理:采集到的信號通過降噪、濾波等方式進行處理。提取有用的特征,并使用語音識別算法處理特征信號,以將數(shù)字信號輸出到計算機。

控制機械臂:

● 使用簡單易操作的機械臂。

以上是解決兩個主要問題的方法。然而,經(jīng)過研究,開發(fā)可以處理語音信號的開發(fā)板需要大量的工作!幸運的是,現(xiàn)在市場上有集成語音開發(fā)板,我們可以直接購買一個來使用。

HLK-V20 語音開發(fā)板

HLK-V20 開發(fā)板是一個具有兩個 IO 接口的復雜板 - 一個用于語音輸出,另一個用于語音輸入。它可以通過串行端口連接到計算機。

MyCobot 280 M5Stack 2023 機械臂

對于機械臂,我選擇了流行的桌面機械臂,myCobot 280 M5Stack 2023,由大象機器人公司開發(fā)。該機械臂最近進行了重大的軟件更新,實現(xiàn)了20ms的串行通信速度,并提供與PythonC++等流行編程語言兼容的豐富接口。我選擇這個機械臂有幾個原因,包括它緊湊的尺寸、豐富的 Python API 接口(我擅長編程)以及易于安裝和使用。

編程語言: Python 3.7+

平臺: windows11

使用的Python庫:serial,pymycobot,time。

項目的發(fā)展

在項目的開發(fā)中,涉及四個主要步驟:

● 語音輸入

● 開發(fā)板檢索語音信息并傳輸?shù)絇C

● PC處理接收到的信息

● 向機械臂發(fā)送運動控制命令以進行運動

為了觀察開發(fā)板如何傳輸數(shù)據(jù)以及返回的數(shù)據(jù)類型,使用Python中的串行庫來操作串行端口。該庫具有從串行端口打開、關(guān)閉、讀取和寫入數(shù)據(jù)的方法。

'''
For instance, the serial.Serial() method is used to open the serial port and connect it to the PC, while the serial.read() method reads the data transmitted from the serial port.
'''
import serial
s = serial.Serial("COM9",115200)
r = s.read()
while True:
print(r)

復制

這是從 read() 獲取的數(shù)據(jù)。

通過分析從開發(fā)板傳輸?shù)臄?shù)據(jù),開發(fā)板的喚醒詞被識別為“wakeup_uni”,而關(guān)鍵字“uArTcp”表示下一個命令的開始。

發(fā)現(xiàn)接收到的數(shù)據(jù)連接在一起,每次輸入命令時,都會與前一個命令連接在一起。

發(fā)現(xiàn)接收到的數(shù)據(jù)連接在一起,每次輸入命令時,都會與前一個命令連接在一起。為了檢查開發(fā)板是否已收到語音輸入,使用了 if a in b: 語句,并預(yù)先準備了輸入命令及其相應(yīng)的關(guān)鍵字。例如,喚醒詞設(shè)置為“wakeup_uni”,并設(shè)置了 4 個提示詞以進行測試。

#set prompt word
hi_mycobot = b'openled'
dancing = b'zengjialiangdu'
nod_head = b'jianxiaoliangdu'
go_back = b'closeled'
# run frame
while True:
r += s.read()
if wake_up in r:
print("wake")
wake = True
r = b''
if wake and hi_mycobot in r:
print("Hi myCobot")
r = b''
if wake and dancing in r:
print("dancing")
r = b''
if wake and nod_head in r:
print('nod your head')
r = b''
if wake and go_back in r:
print('Go back')
r = b''
if wake and _exit in r:
print("exit")
r = b''
# print(r)s

復制

這是測試結(jié)果

pymycobot庫是由Elephant Robotics開發(fā)的機械臂API調(diào)用接口庫。具體的使用方法在Gitbook(由Elephant Robotics提供)上。

# import library
from pymycobot import Mycobot
import time
# Create an instance object for later use
mc = Mycobot('COM9',115200)
#Control the mechanical arm to move at a speed of 70 according to the angle in the list,send_angles([angles],speed)
mc.send_angles([0.87,(-50.44),47.28,0.35,(-0.43),(-0.26)],70)
# Execute the next command after a delay of x seconds (the movement of the robotic arm takes time)
time.sleep(x)

復制

接下來,將代碼的兩個部分組合在一起。

import serial
from pymycobot import MyCobot
import time
s = serial.Serial("COM6",115200)
mc = MyCobot('COM3',115200)
r = b''
wake_up = b'wakeup_uni'
_exit = b'exitUni'
hi_mycobot = b'openled'
dancing = b'zengjialiangdu'
nod_head = b'jianxiaoliangdu'
go_back = b'closeled'
wake = False
while True:
r += s.read()
if wake_up in r:
print("wake")
wake = True
r = b''
if wake and hi_mycobot in r:
print("Hi myCobot")
# say hi shake with you
mc.send_angles([0.87,(-50.44),47.28,0.35,(-0.43),(-0.26)],70)
time.sleep(1)
for count in range(3):
mc.send_angle(1,30,80)
time.sleep(1)
mc.send_angle(1,(-30),80)
time.sleep(1)
mc.send_angles([0,0,0,0,0,0],70)
r = b''
if wake and dancing in r:
print("dancing")
mc.send_angles([0,0,0,0,0,0],80)
time.sleep(1)
for count in range(2):
mc.send_angles([(-0.17),(-94.3),118.91,(-39.9),59.32,(-0.52)],80)
time.sleep(1.2)
mc.send_angles([67.85,(-3.42),(-116.98),106.52,23.11,(-0.52)],80)
time.sleep(1.7)
mc.send_angles([(-38.14),(-115.04),116.63,69.69,3.25,(-11.6)],80)
time.sleep(1.7)
mc.send_angles([2.72,(-26.19),140.27,(-110.74),(-6.15),(-11.25)],80)
time.sleep(1)
mc.send_angles([0,0,0,0,0,0],80)
r = b''
if wake and nod_head in r:
print('nod your head')
mc.send_angles([0,0,0,0,0,0],70)
time.sleep(1)
mc.send_angles([3.07,(-86.3),75.32,11.86,2.72,(-0.35)],70)
time.sleep(0.5)
for count in range(4):
mc.send_angle(4,13,70)
time.sleep(0.5)
mc.send_angle(4,(-60),70)
time.sleep(1)
mc.send_angle(4,13,70)
time.sleep(0.5)
mc.send_angles([0,0,0,0,0,0],70)
r = b''
if wake and go_back in r:
print('Go back')
mc.send_angles([12.83,(-138.95),156.09,(-12.3),(-12.91),35.41],70)
r = b''
if wake and _exit in r:
print("exit")
r = b''

三. 經(jīng)驗和教訓

在完成這個項目的過程中,我收獲了很多寶貴的經(jīng)驗和見解。首先,我意識到一個項目的完成不僅取決于對技術(shù)的掌握,還需要事先的研究和理解。當我在研究語音識別開發(fā)板的制作時,我發(fā)現(xiàn)工作量非常大,實現(xiàn)起來會非常困難。但是,市場上已經(jīng)有許多成熟的技術(shù)和工具。我們只需要選擇合理的組合和整合。其次,項目的圓滿完成需要明確的框架和充分的準備。在這個項目中,我需要了解語音識別算法、機械臂設(shè)計和控制技術(shù),掌握硬件設(shè)備和軟件開發(fā)工具的使用方法和性能特點。

在這個項目中,我成功地將語音識別技術(shù)與機械臂控制技術(shù)相結(jié)合,實現(xiàn)了機械臂的語音控制。雖然這個項目的規(guī)模相對較小,但它代表了人工智能技術(shù)在現(xiàn)實生活中的應(yīng)用和發(fā)展趨勢。雖然這只是一個人工智能項目的原型,但它的完成對我來說是一次寶貴的經(jīng)驗。在以后的研究中,我將繼續(xù)探索更多相關(guān)信息,以進一步完善這個項目。如果您有任何好的想法,請在下面發(fā)表評論。

審核編輯 黃宇

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

    關(guān)注

    5

    文章

    474

    瀏覽量

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

    關(guān)注

    12

    文章

    502

    瀏覽量

    24296
收藏 人收藏

    評論

    相關(guān)推薦

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

    本文已經(jīng)或者同濟子豪兄作者授權(quán)對文章進行編輯和轉(zhuǎn)載 引言 隨著人工智能和機器人技術(shù)的快速發(fā)展,機械在工業(yè)、醫(yī)療和服務(wù)業(yè)等領(lǐng)域的應(yīng)用越來越廣泛。通過結(jié)合大模型和多模態(tài)AI,機械能夠
    的頭像 發(fā)表于 07-03 14:09 ?544次閱讀
    大象機器人開源協(xié)作<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>機械</b><b class='flag-5'>臂</b>接入GPT4o大模型!

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

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

    機械運動控制系統(tǒng)的組成和應(yīng)用

    機械運動控制系統(tǒng),作為現(xiàn)代機械工程領(lǐng)域的重要組成部分,對于實現(xiàn)機械設(shè)備的自動化、智能化和精確控制
    的頭像 發(fā)表于 06-07 14:46 ?716次閱讀

    stm32f0怎么不使用語音IC做合成語音?

    我這邊板子就一個功放電路,要求不使用語音IC做語音,我聽別人說去了解MP3這一方面,但我只找到MCU軟解碼,但我怎么不了解,不清楚怎么做成自己的語音,要的是語音,不是歌曲
    發(fā)表于 04-25 06:00

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

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

    如何去提升機械的位置控制性能?

    1.背景介紹 機械的位置控制機械最重要的功能。機械
    的頭像 發(fā)表于 03-05 08:43 ?597次閱讀
    如何去提升<b class='flag-5'>機械</b><b class='flag-5'>臂</b>的位置<b class='flag-5'>控制</b>性能?

    【國產(chǎn)FPGA+OMAPL138開發(fā)板體驗】(原創(chuàng))2.手把手玩轉(zhuǎn)游戲機械

    ChatGPT來增強其交互能力。 5.1 ChatGPT集成 AI算法實現(xiàn) 為了使機械具有AI功能,我會使用機器學習和AI算法來優(yōu)化其運動軌跡和
    發(fā)表于 02-01 20:18

    【開源獲獎案例】四軸機械控制系統(tǒng)

    ——來自迪文開發(fā)者論壇本期為大家推送迪文開發(fā)者論壇獲獎開源案例——四軸機械控制系統(tǒng)。工程師采用T5L智能屏,基于DGUS軟件“旋轉(zhuǎn)指示”控件實現(xiàn)
    的頭像 發(fā)表于 12-23 08:13 ?899次閱讀
    【開源獲獎案例】四軸<b class='flag-5'>機械</b><b class='flag-5'>臂</b><b class='flag-5'>控制</b>系統(tǒng)

    七軸開源協(xié)作機械myArm視覺跟蹤技術(shù)!

    處理技術(shù),使用ArUco標記的機械系統(tǒng)可以實現(xiàn)更高級的自動化功能,如精確定位、導航和復雜動作的執(zhí)行。 本案例旨在展示結(jié)合ArUco標記和機械
    的頭像 發(fā)表于 12-18 11:14 ?936次閱讀
    七軸開源協(xié)作<b class='flag-5'>機械</b><b class='flag-5'>臂</b>myArm視覺跟蹤技術(shù)!

    奧比中光助力機器人客戶快速實現(xiàn)創(chuàng)新應(yīng)用開發(fā)與量產(chǎn)制造

    是時候給大模型造個身體了。 近期,奧比中光研發(fā)團隊結(jié)合機械與大模型,利用語音、語言、視覺-語言大模型,輔以O(shè)rbbec Gemini 2系列深度相機的數(shù)據(jù)輸入,打造出一個能夠理解、執(zhí)行語音
    的頭像 發(fā)表于 12-13 09:07 ?756次閱讀

    開源六軸協(xié)作機械MechArm案例演示!

    介紹 今天,我將向大家展示一個我獨立設(shè)計并實現(xiàn)機械模型。這個模型的核心功能是實現(xiàn)實時的手勢追蹤——只需用手輕輕拖拽,機械
    的頭像 發(fā)表于 11-28 15:58 ?742次閱讀
    開源六軸協(xié)作<b class='flag-5'>機械</b><b class='flag-5'>臂</b>MechArm案例演示!

    如何解決柔性機械建模過程問題

    柔性機械 剛性機械建模方法已經(jīng)可以有效地求解出機械各部分之間的耦合情況,但是對于柔性
    的頭像 發(fā)表于 11-17 17:12 ?705次閱讀

    剛性機械的動力學建模

    剛性機械 機械建模是機械控制的基礎(chǔ),
    的頭像 發(fā)表于 11-17 17:03 ?661次閱讀

    機械焊接機器人軌跡控制原理

    隨著制造業(yè)的不斷發(fā)展,機器人技術(shù)在各個領(lǐng)域都得到了廣泛應(yīng)用,其中機械焊接機器人在汽車制造、電子產(chǎn)品制造等行業(yè)中發(fā)揮著重要作用。機械焊接機器人的軌跡
    的頭像 發(fā)表于 11-16 17:20 ?705次閱讀

    開源七軸myArm協(xié)作機械正逆運動學技術(shù)講解

    引言: 在本文中,我們將深入探討機器人學的兩個核心概念:正運動學和逆運動學。這兩個概念是理解和控制機械
    的頭像 發(fā)表于 11-06 14:58 ?1341次閱讀
    開源七軸myArm協(xié)作<b class='flag-5'>機械</b><b class='flag-5'>臂</b>正逆<b class='flag-5'>運動</b>學技術(shù)講解