0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用MATLAB以及改进的iRobot可编程机器人

454398 来源:wv 2019-10-09 09:39 次阅读

步骤1:零件和材料

MATLAB 2018a

-MATLAB是2018年的首选版本,主要是因为它与连接到移动设备的代码配合使用效果最佳。但是,我们的大多数代码都可以在大多数MATLAB版本中进行解释。

iRobot创建设备

-该设备是专用的特殊设备目的是用于编程和编码。 (这不是实际的真空)

Raspberry Pi(带相机)

-作为iRobot的大脑的主板。它可能很小,但是可以处理许多事情。相机是附加附件。它还使用树莓派获取其所有功能和命令。上图所示的摄像机安装在田纳西大学工程基础系创建的3D打印支架上。

步骤2:Roomba数据库文件

您需要一个主文件,以便为Roomba使用适当的功能和命令。您可以在此文件中编写代码来借鉴功能,以使Roomba的操作更易于管理。

您可以从此链接下载文件,也可以从下面的可下载文件下载

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

步骤3:连接到Roomba

首先,您必须确保将机器人连接到树莓派通过使用微型USB插头安装主板。然后,您需要将计算机和机器人正确连接到同一WiFi。完成此操作后,您可以打开机器人电源并使用机器人数据库文件中的给定命令连接到它。 (在使用机器人前后,请务必对其进行硬重置)。例如,我们使用命令“ r.roomba(19)”连接到我们的机器人,将变量r分配给我们的设备。这是指数据库文件,该文件将我们的变量设置为可以在任何给定时刻引用的结构。

第4步:代码

我们在下面附加了完整的代码,但这是一个简要概述,突出显示了脚本中的重要元素。我们利用了所有传感器以及摄像头,以充分发挥机器人的潜力。我们还包含了允许我们将移动设备连接到机器人并使用其Gryoscope手动控制它的代码。

我们从简单的命令“ r.setDriveVelocity(.06)”开始,该命令将机器人的前进速度设置为.06 m/s。这只是为了让机器人事先移动。

然后,我们的主脚本从一个while循环开始,该循环通过创建可以在下面的条件语句中引用和使用的结构来检索给定机器人的数据。我们告诉机器人根据机器人用其传感器读取的结构数据执行某个命令。我们对其进行设置,以便机器人读取其悬崖传感器并遵循一条黑色路径。

while true%while循环会一直进行到出现“ false”(在这种情况下,它会无限进行)。

data = r.getCliffSensors; data2 = r.getBumpers;%连续获取有关悬崖传感器值的数据,并将其分配给变量%img = r.getImage; %从已安装的相机拍摄照片%image(img); %显示拍摄的图像。%red_mean = mean(mean(img(:,:,1)));%如果data.rightFront 《2000 r.turnAngle(-2);则获取绿色的平均值。一旦右前悬崖传感器的值降至2000 r.set%以下,Room将Roomba旋转约.2度C.setDriveVelocity(.05); elseif data.leftFront 《2000 r.turnAngle(2);一旦左前侧悬崖传感器的值降至2000 r。%以下,Room将Roomba逆时针旋转约0.2度。setDriveVelocity(.05); elseif 2000》 data.leftFront && 2000》 data.rightFront r.moveDistance(.1); %指示Roomba如果来自右前传感器和左前传感器的两个值都低于2000%r.turnAngle(0),则继续以大约.2 m/s的速度前进。 %告诉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循环之后,我们进入另一个while循环,该循环触发通过摄像机获取的数据。而且,我们在while循环中使用了if语句,该语句使用特定程序(alexnet)识别图像,并且一旦识别出图像,就会立即触发移动设备的远程控制。

anet = alexnet; %将alexnet深度学习分配给变量

while true%无限while循环img = r.getImage; img = imresize(img,[227,227]);标签= classify(anet,img);如果label ==“纸巾” || label ==“ refrigerator” label =“ water”;结束图片(img);标题(炭(标签)); Drawnow;

while循环使我们可以用手机控制设备,从手机的陀螺仪中检索该数据,然后将其插入矩阵,该矩阵将数据连续地流回计算机上的MATLAB中。我们使用一条if语句,该语句读取矩阵的数据,并根据电话陀螺仪的某些值提供输出以移动设备。重要的是要知道我们使用了移动设备的方向传感器。上面提到的一乘三矩阵按电话方向传感器的每个元素分类,即方位角,间距和侧面。 if语句创建的条件表明当边超过50或低于-50时,机器人将向前(正50)或向后(负50)移动一定距离。音调值也一样。如果螺距值超过落在-25以下的25个值,则机器人将以1度(正25度)或负1度(负25度)的角度旋转。

,而true

pause(.1)%暂停0.5秒,然后取每个值Controller = iphone.Orientation; %将iPhone方向值的矩阵分配给变量Azimuthal = Controller(1); %将矩阵的第一个值分配给变量Pitch = Controller(2); %将矩阵的第二个值分配给一个变量(将iPhone侧放时向前和向后倾斜)Side = Controller(3); %将矩阵的第三个值分配给变量(当iPhone侧向倾斜时,向左和向右倾斜)%如果Side》 130 ||,则基于电话的方向进行输出侧面《-130%如果手机正面朝下翻转,它将停止Roomba并退出循环r.stop break elseif侧面》 25 r.moveDistance(-。1)%如果iPhone是iPhone,则将Roomba向后移动约.1米向后倾斜至少25度,否则Side 《-25 r.moveDistance(.1)%如果iPhone向前倾斜至少25度,则将Roomba向前移动约0.1米,否则如果俯仰》 25 r.turnAngle(-1)%旋转如果iPhone向左倾斜至少25度,则将Roomba逆时针旋转1度左右;如果Pitch 《-25 r.turnAngle(1)%如果将iPhone倾斜至少25度,则将Roomba逆时针旋转1度。

这些只是我们代码主要部分的重点内容,如果您需要快速复制并粘贴一段内容以利于您,我们将其中包含这些内容。但是,如果需要,我们的整个代码附在下面。

步骤5:结论

我们编写的这段代码是专门为机器人以及项目的总体愿景而设计的。我们的目标是利用我们所有的MATLAB编码技能,以设计出能够充分利用机器人大部分功能的精心设计的脚本。使用电话控制器并不像您想像的那么困难,我们希望我们的代码可以帮助您更好地理解对iRobot进行编码的概念。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    185

    文章

    2977

    浏览量

    230620
  • 机器人
    +关注

    关注

    211

    文章

    28476

    浏览量

    207419
  • 可编程
    +关注

    关注

    2

    文章

    867

    浏览量

    39845
  • iRobot
    +关注

    关注

    0

    文章

    33

    浏览量

    14429
收藏 人收藏

    评论

    相关推荐

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主机器人
    发表于 01-04 19:22

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    的局限性以及衡量大模型的关键指标。阅读了该部分后,我感受到了一种前所未有的震撼,这种震撼不仅来源于技术本身的先进性,更来源于它对传统机器人控制方式的颠覆。 传统机器人的局限性与大模型的变革 传统的
    发表于 12-29 23:04

    欧姆龙协作机器人TM25S可使用多种方法进行编程

    按钮,即可完成位置示教。   图形化编程 TM25S可通过使用软件工具TMflow在屏幕上绘制流程图,可以轻松描述机器人的动作和处理逻辑。TMflow还可以对协作机器人进行管理与设定,包含程序
    的头像 发表于 11-25 16:36 317次阅读
    欧姆龙协作<b class='flag-5'>机器人</b>TM25S可使用多种方法进行<b class='flag-5'>编程</b>

    扫地机器人厂商iRobot将裁员16%

    裁员潮似乎没有任何停止的迹象,据外媒报道,知名扫地机器人厂商iRobot将裁员16%;裁员人数大约是105。 据悉iRobot是全球机器人
    的头像 发表于 11-07 15:31 671次阅读

    爱普生SG-8101CA可编程晶振应用在工业自动化机器人

    在工业自动化的浪潮中,机器人无疑是最耀眼的明星,它们以高效、精准的工作能力重塑了现代工业生产的格局。而在这些工业自动化机器人的核心深处,爱普生SG-8101CA可编程晶振就像一颗强大而稳定的心脏,为
    的头像 发表于 11-04 10:58 140次阅读
    爱普生SG-8101CA<b class='flag-5'>可编程</b>晶振应用在工业自动化<b class='flag-5'>机器人</b>

    国产可编程硅振在机器人伺服系统中的应用,替换SiTime

    国产可编程硅振在机器人伺服系统中的应用,替换SiTime
    的头像 发表于 09-26 10:09 267次阅读
    国产<b class='flag-5'>可编程</b>硅振在<b class='flag-5'>机器人</b>伺服系统中的应用,替换SiTime

    工业机器人常用的编程方式

    机器人完成特定的任务。编程可以手动完成,也可以通过计算机辅助设计(CAD)软件自动生成。编程方式的选择取决于任务的复杂性、机器人的类型、以及
    的头像 发表于 09-04 09:26 882次阅读

    Al大模型机器人

    丰富的知识储备。它们可以涵盖各种领域的知识,并能够回答相关问题。灵活性与通用性: AI大模型机器人具有很强的灵活性和通用性,能够处理各种类型的任务和问题。持续学习和改进: 这些模型可以通过持续的训练
    发表于 07-05 08:52

    如何使用PLC控制机器人

    随着工业自动化技术的飞速发展,机器人技术作为其中的重要组成部分,其应用范围日益广泛。在机器人的控制系统中,PLC(Programmable Logic Controller,可编程逻辑控制器)以其
    的头像 发表于 06-17 10:50 1796次阅读

    abb工业机器人编程语言是什么

    ABB工业机器人编程语言主要是RAPID(Robot Application Programming Interface for Development),它是一种高级编程语言,专门为工业
    的头像 发表于 06-16 16:49 2635次阅读

    可编程电源使用方法

    可编程电源使用方法 可编程电源使用方法 摘要:本文详细介绍了可编程电源的使用方法,包括其基本概念、主要功能、选择原则、操作步骤、注意事项以及实际应用案例,旨在帮助读者全面了解
    的头像 发表于 06-10 15:29 1053次阅读

    可编程电源如何编程

    可编程电源如何编程  可编程电源是一种可以调节输出电压和电流的电源设备,广泛应用于电子设备测试、研发和生产等领域。通过编程,用户可以根据需要设置电源的输出参数,实现自动化测试和控制。本
    的头像 发表于 06-10 15:24 1394次阅读

    现场可编程门阵列是什么

    现场可编程门阵列(Field Programmable Gate Array,简称FPGA)是一种超大规模可编程逻辑器件,由可编程逻辑资源、可编程互连资源和
    的头像 发表于 03-16 16:38 2491次阅读

    亚马逊收购iRobot失败,中国扫地机器人竞争优势凸显

    电子发烧友网报道(文/黄山明)经过数年的谈判,亚马逊对扫地机器人iRobot的收购最后还是以失败告终。近日,亚马逊公开宣布将放弃对iRobot的14亿美元的收购交易,而这笔交易失败的主要原因在于未能
    的头像 发表于 02-28 01:20 3224次阅读

    亚马逊放弃收购扫地机器人制造商iRobot

    亚马逊与扫地机器人制造商iRobot宣布,由于受到欧盟持续加强的监管力度影响,原计划收购iRobot的交易被迫终止。
    的头像 发表于 01-31 14:54 711次阅读