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
    +关注

    关注

    189

    文章

    3028

    浏览量

    239167
  • 机器人
    +关注

    关注

    213

    文章

    31391

    浏览量

    223545
  • 可编程
    +关注

    关注

    2

    文章

    1332

    浏览量

    41540
  • iRobot
    +关注

    关注

    0

    文章

    34

    浏览量

    14861
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么说关节扭矩传感器是高端机器人的“触觉神经”?

    ,无需护栏 工业协作机器人利用关节扭矩传感器,可在碰撞时3毫秒内检测到力突变,并在10毫秒内停止运动,接触力可控制在50牛以下(安全标准为140牛)。这让机器人无需安全围栏就能与人并肩工作。3. 精细
    发表于 04-17 17:27

    探索UPSD3212A/C/CV:集成8032 MCU、USB与可编程逻辑的闪存可编程系统设备

    : UPSD3212C-40T6.pdf 产品概述 UPSD321xx系列将基于8051的快速微控制器与灵活的内存结构、可编程逻辑以及丰富的外设(包
    的头像 发表于 04-17 15:55 147次阅读

    RK3576机器人核心:三屏异显+八路摄像头,重塑机器人交互与感知

    。· 利用开发板上的MIPI CSI1和CSI2接口,完整接入8路摄像头,实现了所有通道的视频预览与采集,为机器人构建了全方位的视觉感知系统。卓越性能表现:· CPU占用率:34%· DDR占用率:50
    发表于 10-29 16:41

    小萝卜机器人的故事

    经过我的申请, 马老师发放了, 小萝卜机器人的, 开发权限, 原来的小萝卜公司, 因为经营不善倒闭, 作为科研产品, 几个技术对此惋惜, 自掏腰包, 要让小萝卜机器人, 再生, 每次听到小萝卜说
    发表于 10-23 05:24

    什么是机器人?追溯机器人技术的演变和未来

    的定义。机器人的定义,真如表面看起来那么简单直白?还是比我们所认为的更为复杂呢? 从本质上讲,机器人是一种可编程机器,能够感知、处理信息,并自主或在一定程度的人工指令引导下执行任务。与
    的头像 发表于 10-02 16:32 5623次阅读
    什么是<b class='flag-5'>机器人</b>?追溯<b class='flag-5'>机器人</b>技术的演变和未来

    机器人芯片:智能机器的“大脑”与未来趋势

    、低功耗和强适应性的方向演进,推动机器人应用迈向更广阔的领域。   机器人芯片的关键作用    机器人芯片主要包括中央处理器(CPU)、图形处理器(GPU)、神经网络处理器(NPU)和现场可编
    的头像 发表于 07-31 13:43 1330次阅读

    工业机器人的特点

    是实现工业互联网的基础,也是第一步。 三大优势:提高产品品质、提高产出、适用范围广 机器人在生产上的优势可以分为提高产品品质、提高产出以及适用范围广三个方面。提高产品品质 工业机器人的标准化、精细化
    发表于 07-26 11:22

    松下机器人示教编程教学课件资料

    松下机器人示教编程教学课件(新)
    发表于 06-11 17:23 1次下载

    明远智睿SSD2351开发板:语音机器人领域的变革力量

    ,提高语音识别的准确率;同时也可连接高质量的扬声器,确保语音合成后的声音清晰、自然。TF卡接口能够存储大量的语音数据、对话模型以及语音机器人的知识库,使其具备更丰富的语言表达和知识储备。以太网和WIFI
    发表于 05-28 11:36

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网机器人开发套件 Kria KR260机器人开发套件 Kria KR260-
    发表于 05-13 15:02

    详细介绍机场智能指路机器人的工作原理

    带)定位、Wi - Fi 定位等。蓝牙定位可以通过与机场内部署的蓝牙信标进行通信,获取机器人的大致位置信息。UWB 定位则利用超宽带信号实现更精确的定位,能够在复杂的室内环境中达到较高的定位精度,误差
    发表于 05-10 18:26

    【「# ROS 2智能机器人开发实践」阅读体验】机器人入门的引路书

    ROS的全称:Robot Operating System 机器人操作系统 ROS的 目的 :ROS支持通用库,是通信总线,协调多个传感器 为了解决机器人里各厂商模块不通用的问题,让机器人快速开发
    发表于 04-30 01:05

    【「# ROS 2智能机器人开发实践」阅读体验】+内容初识

    机器人技术的飞速发展,ROS 2 作为其核心工具之一,为开发者提供了强大的支持。与传统的理论书籍不同,本书深入浅出地讲解了 ROS 2 的架构、开发流程以及在智能机器人项目中的应用,以代码作为切入口,让
    发表于 04-27 11:24

    大象机器人携手进迭时空推出 RISC-V 全栈开源六轴机械臂产品

    机器人场景的量产应用。更多的面向智能机器人的RISC-V AI软硬件技术创新以及应用案例,将陆续在公司微信公众号做介绍,敬请大家期待。
    发表于 04-25 17:59

    什么是机器人?追踪机器人技术的发展和未来

    是一个可编程机器,能够感知,处理信息,并自主或在一定程度上的人类指导下执行任务。与传统工具不同,机器人可以适应周围环境,并经常执行重复或危险的工作,让我们有时间从事更具创造性的工作。有一种常见的误解,即
    的头像 发表于 04-24 19:21 4928次阅读