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

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

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

如何利用MATLAB以及改進(jìn)的iRobot可編程機(jī)器人

454398 ? 來源:wv ? 2019-10-09 09:39 ? 次閱讀

步驟1:零件和材料

MATLAB 2018a

-MATLAB是2018年的首選版本,主要是因?yàn)樗c連接到移動(dòng)設(shè)備的代碼配合使用效果最佳。但是,我們的大多數(shù)代碼都可以在大多數(shù)MATLAB版本中進(jìn)行解釋。

iRobot創(chuàng)建設(shè)備

-該設(shè)備是專用的特殊設(shè)備目的是用于編程和編碼。 (這不是實(shí)際的真空)

Raspberry Pi(帶相機(jī))

-作為iRobot的大腦的主板。它可能很小,但是可以處理許多事情。相機(jī)是附加附件。它還使用樹莓派獲取其所有功能和命令。上圖所示的攝像機(jī)安裝在田納西大學(xué)工程基礎(chǔ)系創(chuàng)建的3D打印支架上。

步驟2:Roomba數(shù)據(jù)庫(kù)文件

您需要一個(gè)主文件,以便為Roomba使用適當(dāng)?shù)墓δ芎兔?。您可以在此文件中編寫代碼來借鑒功能,以使Roomba的操作更易于管理。

您可以從此鏈接下載文件,也可以從下面的可下載文件下載

https://ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

步驟3:連接到Roomba

首先,您必須確保將機(jī)器人連接到樹莓派通過使用微型USB插頭安裝主板。然后,您需要將計(jì)算機(jī)和機(jī)器人正確連接到同一WiFi。完成此操作后,您可以打開機(jī)器人電源并使用機(jī)器人數(shù)據(jù)庫(kù)文件中的給定命令連接到它。 (在使用機(jī)器人前后,請(qǐng)務(wù)必對(duì)其進(jìn)行硬重置)。例如,我們使用命令“ r.roomba(19)”連接到我們的機(jī)器人,將變量r分配給我們的設(shè)備。這是指數(shù)據(jù)庫(kù)文件,該文件將我們的變量設(shè)置為可以在任何給定時(shí)刻引用的結(jié)構(gòu)。

第4步:代碼

我們?cè)谙旅娓郊恿送暾拇a,但這是一個(gè)簡(jiǎn)要概述,突出顯示了腳本中的重要元素。我們利用了所有傳感器以及攝像頭,以充分發(fā)揮機(jī)器人的潛力。我們還包含了允許我們將移動(dòng)設(shè)備連接到機(jī)器人并使用其Gryoscope手動(dòng)控制它的代碼。

我們從簡(jiǎn)單的命令“ r.setDriveVelocity(.06)”開始,該命令將機(jī)器人的前進(jìn)速度設(shè)置為.06 m/s。這只是為了讓機(jī)器人事先移動(dòng)。

然后,我們的主腳本從一個(gè)while循環(huán)開始,該循環(huán)通過創(chuàng)建可以在下面的條件語句中引用和使用的結(jié)構(gòu)來檢索給定機(jī)器人的數(shù)據(jù)。我們告訴機(jī)器人根據(jù)機(jī)器人用其傳感器讀取的結(jié)構(gòu)數(shù)據(jù)執(zhí)行某個(gè)命令。我們對(duì)其進(jìn)行設(shè)置,以便機(jī)器人讀取其懸崖傳感器并遵循一條黑色路徑。

while true%while循環(huán)會(huì)一直進(jìn)行到出現(xiàn)“ false”(在這種情況下,它會(huì)無限進(jìn)行)。

data = r.getCliffSensors; data2 = r.getBumpers;%連續(xù)獲取有關(guān)懸崖傳感器值的數(shù)據(jù),并將其分配給變量%img = r.getImage; %從已安裝的相機(jī)拍攝照片%image(img); %顯示拍攝的圖像。%red_mean = mean(mean(img(:,:,1)));%如果data.rightFront 《2000 r.turnAngle(-2);則獲取綠色的平均值。一旦右前懸崖傳感器的值降至2000 r.set%以下,Room將Roomba旋轉(zhuǎn)約.2度C.setDriveVelocity(.05); elseif data.leftFront 《2000 r.turnAngle(2);一旦左前側(cè)懸崖傳感器的值降至2000 r。%以下,Room將Roomba逆時(shí)針旋轉(zhuǎn)約0.2度。setDriveVelocity(.05); elseif 2000》 data.leftFront && 2000》 data.rightFront r.moveDistance(.1); %指示Roomba如果來自右前傳感器和左前傳感器的兩個(gè)值都低于2000%r.turnAngle(0),則繼續(xù)以大約.2 m/s的速度前進(jìn)。 %告訴Roomba如果上述條件為真,則不要打開

elseif data2.right == 1 r.moveDistance(-。12); r.turnAngle(160); r.setDriveVelocity(0.05); elseif data2.left == 1 r.moveDistance(-。2); r.turnAngle(5); r.setDriveVelocity(0.05); elseif data2.front == 1 r.moveDistance(-。12); r.turnAngle(160); r.setDriveVelocity(.05);

此while循環(huán)之后,我們進(jìn)入另一個(gè)while循環(huán),該循環(huán)觸發(fā)通過攝像機(jī)獲取的數(shù)據(jù)。而且,我們?cè)趙hile循環(huán)中使用了if語句,該語句使用特定程序(alexnet)識(shí)別圖像,并且一旦識(shí)別出圖像,就會(huì)立即觸發(fā)移動(dòng)設(shè)備的遠(yuǎn)程控制。

anet = alexnet; %將alexnet深度學(xué)習(xí)分配給變量

while true%無限while循環(huán)img = r.getImage; img = imresize(img,[227,227]);標(biāo)簽= classify(anet,img);如果label ==“紙巾” || label ==“ refrigerator” label =“ water”;結(jié)束圖片(img);標(biāo)題(炭(標(biāo)簽)); Drawnow;

while循環(huán)使我們可以用手機(jī)控制設(shè)備,從手機(jī)的陀螺儀中檢索該數(shù)據(jù),然后將其插入矩陣,該矩陣將數(shù)據(jù)連續(xù)地流回計(jì)算機(jī)上的MATLAB中。我們使用一條if語句,該語句讀取矩陣的數(shù)據(jù),并根據(jù)電話陀螺儀的某些值提供輸出以移動(dòng)設(shè)備。重要的是要知道我們使用了移動(dòng)設(shè)備的方向傳感器。上面提到的一乘三矩陣按電話方向傳感器的每個(gè)元素分類,即方位角,間距和側(cè)面。 if語句創(chuàng)建的條件表明當(dāng)邊超過50或低于-50時(shí),機(jī)器人將向前(正50)或向后(負(fù)50)移動(dòng)一定距離。音調(diào)值也一樣。如果螺距值超過落在-25以下的25個(gè)值,則機(jī)器人將以1度(正25度)或負(fù)1度(負(fù)25度)的角度旋轉(zhuǎn)。

,而true

pause(.1)%暫停0.5秒,然后取每個(gè)值Controller = iphone.Orientation; %將iPhone方向值的矩陣分配給變量Azimuthal = Controller(1); %將矩陣的第一個(gè)值分配給變量Pitch = Controller(2); %將矩陣的第二個(gè)值分配給一個(gè)變量(將iPhone側(cè)放時(shí)向前和向后傾斜)Side = Controller(3); %將矩陣的第三個(gè)值分配給變量(當(dāng)iPhone側(cè)向傾斜時(shí),向左和向右傾斜)%如果Side》 130 ||,則基于電話的方向進(jìn)行輸出側(cè)面《-130%如果手機(jī)正面朝下翻轉(zhuǎn),它將停止Roomba并退出循環(huán)r.stop break elseif側(cè)面》 25 r.moveDistance(-。1)%如果iPhone是iPhone,則將Roomba向后移動(dòng)約.1米向后傾斜至少25度,否則Side 《-25 r.moveDistance(.1)%如果iPhone向前傾斜至少25度,則將Roomba向前移動(dòng)約0.1米,否則如果俯仰》 25 r.turnAngle(-1)%旋轉(zhuǎn)如果iPhone向左傾斜至少25度,則將Roomba逆時(shí)針旋轉(zhuǎn)1度左右;如果Pitch 《-25 r.turnAngle(1)%如果將iPhone傾斜至少25度,則將Roomba逆時(shí)針旋轉(zhuǎn)1度。

這些只是我們代碼主要部分的重點(diǎn)內(nèi)容,如果您需要快速?gòu)?fù)制并粘貼一段內(nèi)容以利于您,我們將其中包含這些內(nèi)容。但是,如果需要,我們的整個(gè)代碼附在下面。

步驟5:結(jié)論

我們編寫的這段代碼是專門為機(jī)器人以及項(xiàng)目的總體愿景而設(shè)計(jì)的。我們的目標(biāo)是利用我們所有的MATLAB編碼技能,以設(shè)計(jì)出能夠充分利用機(jī)器人大部分功能的精心設(shè)計(jì)的腳本。使用電話控制器并不像您想像的那么困難,我們希望我們的代碼可以幫助您更好地理解對(duì)iRobot進(jìn)行編碼的概念。

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

    關(guān)注

    186

    文章

    2983

    瀏覽量

    231239
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    211

    文章

    28759

    瀏覽量

    208962
  • 可編程
    +關(guān)注

    關(guān)注

    2

    文章

    877

    瀏覽量

    40004
  • iRobot
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    14476
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    使用 Thonny 對(duì) XRP 機(jī)器人進(jìn)行編程

    作者: [Aswin S Babu] 在 SLAM 博客系列[第 1 部分] ,我們討論了什么是 SLAM(同步定位與繪圖)以及機(jī)器人如何利用它進(jìn)行導(dǎo)航。[第 2 部分] 則深入探討了 SLAM
    的頭像 發(fā)表于 01-26 17:31 ?132次閱讀
    使用 Thonny 對(duì) XRP <b class='flag-5'>機(jī)器人</b>進(jìn)行<b class='flag-5'>編程</b>

    【「具身智能機(jī)器人系統(tǒng)」閱讀體驗(yàn)】2.具身智能機(jī)器人的基礎(chǔ)模塊

    具身智能機(jī)器人的基礎(chǔ)模塊,這個(gè)是本書的第二部分內(nèi)容,主要分為四個(gè)部分:機(jī)器人計(jì)算系統(tǒng),自主機(jī)器人的感知系統(tǒng),自主機(jī)器人的定位系統(tǒng),自主機(jī)器人
    發(fā)表于 01-04 19:22

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

    的局限性以及衡量大模型的關(guān)鍵指標(biāo)。閱讀了該部分后,我感受到了一種前所未有的震撼,這種震撼不僅來源于技術(shù)本身的先進(jìn)性,更來源于它對(duì)傳統(tǒng)機(jī)器人控制方式的顛覆。 傳統(tǒng)機(jī)器人的局限性與大模型的變革 傳統(tǒng)的
    發(fā)表于 12-29 23:04

    歐姆龍協(xié)作機(jī)器人TM25S可使用多種方法進(jìn)行編程

    按鈕,即可完成位置示教。 ? 圖形化編程 TM25S可通過使用軟件工具TMflow在屏幕上繪制流程圖,可以輕松描述機(jī)器人的動(dòng)作和處理邏輯。TMflow還可以對(duì)協(xié)作機(jī)器人進(jìn)行管理與設(shè)定,包含程序
    的頭像 發(fā)表于 11-25 16:36 ?369次閱讀
    歐姆龍協(xié)作<b class='flag-5'>機(jī)器人</b>TM25S可使用多種方法進(jìn)行<b class='flag-5'>編程</b>

    掃地機(jī)器人廠商iRobot將裁員16%

    裁員潮似乎沒有任何停止的跡象,據(jù)外媒報(bào)道,知名掃地機(jī)器人廠商iRobot將裁員16%;裁員人數(shù)大約是105。 據(jù)悉iRobot是全球機(jī)器人
    的頭像 發(fā)表于 11-07 15:31 ?722次閱讀

    愛普生SG-8101CA可編程晶振應(yīng)用在工業(yè)自動(dòng)化機(jī)器人

    在工業(yè)自動(dòng)化的浪潮中,機(jī)器人無疑是最耀眼的明星,它們以高效、精準(zhǔn)的工作能力重塑了現(xiàn)代工業(yè)生產(chǎn)的格局。而在這些工業(yè)自動(dòng)化機(jī)器人的核心深處,愛普生SG-8101CA可編程晶振就像一顆強(qiáng)大而穩(wěn)定的心臟,為
    的頭像 發(fā)表于 11-04 10:58 ?194次閱讀
    愛普生SG-8101CA<b class='flag-5'>可編程</b>晶振應(yīng)用在工業(yè)自動(dòng)化<b class='flag-5'>機(jī)器人</b>

    國(guó)產(chǎn)可編程硅振在機(jī)器人伺服系統(tǒng)中的應(yīng)用,替換SiTime

    國(guó)產(chǎn)可編程硅振在機(jī)器人伺服系統(tǒng)中的應(yīng)用,替換SiTime
    的頭像 發(fā)表于 09-26 10:09 ?331次閱讀
    國(guó)產(chǎn)<b class='flag-5'>可編程</b>硅振在<b class='flag-5'>機(jī)器人</b>伺服系統(tǒng)中的應(yīng)用,替換SiTime

    工業(yè)機(jī)器人常用的編程方式

    機(jī)器人完成特定的任務(wù)。編程可以手動(dòng)完成,也可以通過計(jì)算機(jī)輔助設(shè)計(jì)(CAD)軟件自動(dòng)生成。編程方式的選擇取決于任務(wù)的復(fù)雜性、機(jī)器人的類型、以及
    的頭像 發(fā)表于 09-04 09:26 ?1180次閱讀

    Al大模型機(jī)器人

    豐富的知識(shí)儲(chǔ)備。它們可以涵蓋各種領(lǐng)域的知識(shí),并能夠回答相關(guān)問題。靈活性與通用性: AI大模型機(jī)器人具有很強(qiáng)的靈活性和通用性,能夠處理各種類型的任務(wù)和問題。持續(xù)學(xué)習(xí)和改進(jìn): 這些模型可以通過持續(xù)的訓(xùn)練
    發(fā)表于 07-05 08:52

    如何使用PLC控制機(jī)器人

    隨著工業(yè)自動(dòng)化技術(shù)的飛速發(fā)展,機(jī)器人技術(shù)作為其中的重要組成部分,其應(yīng)用范圍日益廣泛。在機(jī)器人的控制系統(tǒng)中,PLC(Programmable Logic Controller,可編程邏輯控制器)以其
    的頭像 發(fā)表于 06-17 10:50 ?2086次閱讀

    abb工業(yè)機(jī)器人編程語言是什么

    ABB工業(yè)機(jī)器人編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級(jí)編程語言,專門為工業(yè)機(jī)
    的頭像 發(fā)表于 06-16 16:49 ?2909次閱讀

    可編程電源使用方法

    可編程電源使用方法 可編程電源使用方法 摘要:本文詳細(xì)介紹了可編程電源的使用方法,包括其基本概念、主要功能、選擇原則、操作步驟、注意事項(xiàng)以及實(shí)際應(yīng)用案例,旨在幫助讀者全面了解
    的頭像 發(fā)表于 06-10 15:29 ?1203次閱讀

    可編程電源如何編程

    可編程電源如何編程? 可編程電源是一種可以調(diào)節(jié)輸出電壓和電流的電源設(shè)備,廣泛應(yīng)用于電子設(shè)備測(cè)試、研發(fā)和生產(chǎn)等領(lǐng)域。通過編程,用戶可以根據(jù)需要設(shè)置電源的輸出參數(shù),實(shí)現(xiàn)自動(dòng)化測(cè)試和控制。本
    的頭像 發(fā)表于 06-10 15:24 ?1616次閱讀

    現(xiàn)場(chǎng)可編程門陣列是什么

    現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,簡(jiǎn)稱FPGA)是一種超大規(guī)模可編程邏輯器件,由可編程邏輯資源、可編程互連資源和
    的頭像 發(fā)表于 03-16 16:38 ?2607次閱讀

    亞馬遜收購(gòu)iRobot失敗,中國(guó)掃地機(jī)器人競(jìng)爭(zhēng)優(yōu)勢(shì)凸顯

    電子發(fā)燒友網(wǎng)報(bào)道(文/黃山明)經(jīng)過數(shù)年的談判,亞馬遜對(duì)掃地機(jī)器人iRobot的收購(gòu)最后還是以失敗告終。近日,亞馬遜公開宣布將放棄對(duì)iRobot的14億美元的收購(gòu)交易,而這筆交易失敗的主要原因在于未能
    的頭像 發(fā)表于 02-28 01:20 ?3334次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品