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

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

3天内不再提示

如何使用MATLAB这把“利器”开发机器人

454398 来源:电子发烧友网 作者:MathWorks杨兴 2016-01-21 10:29 次阅读

机器人绝对是当前的一个热门话题之一。从工业机器人到扫地机器人,从实验室机器人到各种创新玩具机器人,机器人逐渐走进了大众的视野,进入了普通人的生活。不管是技术发烧友还是普通消费者,都越来越多的把目光投向了机器人。随着网络众筹的兴起,技术创业的经济门槛降低,一个又一个明星众筹项目也激发了越来越多的技术爱好者从关注到实践,纷纷投身机器人开发的怀抱。每个人都期待着自己开发的创新原型,能称为下一个被投资人或公众所瞩目的焦点。

古人云,“工欲善其事,必先利其器。” 现在让我们来看看如何使用MATLAB 这个“利器” 来帮助我们快速实现我们的创意

MATLAB 平台

MATLAB 是全球知名的数据分析和处理软件,这个红色的二次曲面 LOGO 几乎出现在每一所大学的教科书里。

如何使用MATLAB 这把“利器”开发机器人

图1 MATLAB LOGO

但事实上,它不再仅仅是那个我们在学生时代所认识的仅仅用于数据处理与画图的“超级计算器”,它在行业内的应用远比教育领域更为广泛和深入。从下图的工具箱结构可以窥知一二。可以看到右侧的深蓝色模块,它也为各个专门的应用领域开发了一系列工具箱。

如何使用MATLAB 这把“利器”开发机器人

图2 MATLAB 工具箱

MATLAB/Simulink 算法开发平台也几乎是汽车、军工等行业进行控制算法设计的必备工具。基于 Simulink模型的建模、仿真、测试验证以及代码生成,这种基于模型的设计理念 (MBD)也正在替代传统的手写 C 代码的开发流程,成为算法开发的主流与未来的趋势。

如何使用MATLAB 这把“利器”开发机器人

图3 基于模型的设计

那么,这对于开发机器人意味着什么呢?这意味着,你不仅可以摆脱繁复的 C 代码编程,还可以借助 MATLAB 强大的工具箱系列,通过仿真来帮助你测试算法、优化参数等等。如果用户购买了代码生成工具箱,还可以提取所生成的嵌入式 C/C++ 算法函数,集成到自己外部的工程项目中去,如图4左侧箭头,这也是商业产品开发的主流选择。

电子发烧友《机器人技术特刊》,更多优质内容,马上下载阅览


MATLAB/Simulink Support Package

我这里主要想介绍一下免费硬件支持包: MATLAB/Simulink Support Package。它相当于是 MATLAB 与各种低成本硬件之间的桥梁。

下载安装官方免费的 MATLAB/Simulink Support package,简单设置好对应的板卡后,Simulink 框图或者 MATLAB脚本便可以一键编译下载到硬件运行了,如下图右侧箭头。这对于快速实现早期创意非常有用,尤其是对小的开发团队来说,可以将注意力更多的放到算法设计与开发上,而不是基本的 C 代码实现。

如何使用MATLAB 这把“利器”开发机器人

图4 从模型到实现

MATLAB/Simulink Support Package为一系列所支持的板卡提供了基本的驱动模块,只需要在软件界面上进行简单的配置,就可以将实现框图式的算法模型一键下载到硬件板卡上去,有助于我们快速实现早期创意,缩短原型开发周期。

通过它,我们可以很容易实现与这些硬件通讯,读取数据到 MATLAB 环境进行分析和处理,轻松下载 Simulink这种框图式的算法来实现各种有创意的应用。

如何使用MATLAB 这把“利器”开发机器人

图5 MATLABSimulink Support Package

案例介绍

下面,我们使用 Arduino MEGA 2560来演示如何实现将模型一键下载到硬件。这是一个非常简单的例子:使用光敏电阻来控制LED灯的明暗。

硬件连线

简单的说就是利用光敏电阻与固定电阻串联形成分压电路,并将分压电压读入Arduino,然后用这个值来输出控制发光二极管的明暗。将分压电压值读入Arduino的A1 引脚;将发光二极管的正极连接PWM的第二个引脚,如下图所示。其它的基本连线不再繁述。

如何使用MATLAB 这把“利器”开发机器人

图6 硬件连线图

软件准备

通过 MATLAB 主界面上的 Add-Ons 的 Get Hardware Support Packages向导,选择所需要安装的支持包。

如何使用MATLAB 这把“利器”开发机器人

图7 安装包下载入口

选择 Arduino,根据向导提示下载或安装支持包。

如何使用MATLAB 这把“利器”开发机器人

图8 下载安装向导

安装完成后,打开Simulink Library Browser 中的Simulink Support Package for Arduino Hardware库,如下图。我们可以看到为 Arduino提供的一系列驱动模块,从模块的示意图以及端口的符号,我们可以大概推测它的作用:从各种类型的板卡接口读取或输出信号

另外从左侧树状图可以看到,还提供了 Ethernet Shield 与 Wifi Shield 的驱动模块。

如何使用MATLAB 这把“利器”开发机器人

图9 Arduino 支持库

建模

Simulink 建模简单可以描述为模块的拖拽与连线的过程。

我们需要从A1端口(分压线接入)读取分压信号,所以从库里拖入一个 Analog Input模块,并双击设置端口号为1,设置采样时间为 0.01 S。另外还需要输出到 PWM的第二个引脚( LED连接处),所以拖入一个 PWM 模块,并双击设置端口号为2。

为了简化整个下载过程,我们这里对信号不做任何算法处理,直接将两个模块连接起来,如下图。这也就意味着 LED 的亮度与光敏电阻状态直接相关。

如何使用MATLAB 这把“利器”开发机器人

图10 模型截图

编译下载

Simulink Support Package for Arduino Hardware支持几乎所有的 Arduino 型号。在点击红色方框的按钮编译下载之前,需要通过配置页面来指定当前所使用的 Arduino 板卡类型,如下图。

如何使用MATLAB 这把“利器”开发机器人

图11 设置Arduino板卡

确保 Arduino 与电脑相连,点击上图模型截图中红色方框的编译按钮,框图将会自动生成C/C++ 代码,并后台自动调用 Arduino IDE 进行编译下载到 Arduino板卡上去。

此时,你用手捂住光敏电阻,便会看到 LED 灯亮度的变化。

在线调试

对于 Arduino MEGA 2560等型号,还支持在线调试。在配置页面,除了选择型号外,如下图设置为 ‘External mode’。

如何使用MATLAB 这把“利器”开发机器人

图12 设置在线调试运行

点击图中的绿色仿真按钮。

如何使用MATLAB 这把“利器”开发机器人

图13 在线调试

此时,框图同样被生成代码并编译下载到 Arduino 上运行,同时 Simulink 模型运行,双击打开示波器 Scope 模块实时看到当前所读取的传感器信号。这个数据也可以保存下载,做后期传感器标定与分析。

如何使用MATLAB 这把“利器”开发机器人

图14 信号波形

传感器标定,也就是经常都需要将原始值进行线性或非线性缩放以及平移,得到有物理含义的数值,比如自定义的光照强度等级。如下图,中间接入一个简单的查表模块进行线性缩放。

如何使用MATLAB 这把“利器”开发机器人

后续

支持一键下载的硬件除了举例的 Arduino之还有很多,算法的设计也可以非常复杂。实际上,越是复杂的算法,才越能体现框图式算法设计方法的优势。

下载安装对应的硬件支持包之后,帮助文档里都会提供由浅入深的应用案例。如下图是一个LEGO解魔方算法的一个案例。

如何使用MATLAB 这把“利器”开发机器人

图15 LEGO解魔方算法模型

打开这个模型,点击编译,就可以把这个算法完整下载到 LEGO 机器人上去了,有兴趣的可以自己亲自动手试一试。

图16 LEGO解魔方

结语

使用MATLAB/Simulink Support Package 相当于铺平了从Simulink 到硬件实现的路,使得不擅长写 C 代码的人可以彻底摆脱代码实现的困扰,借助 Simulink 平台也能轻易的开发出更多有趣的应用来。

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

    关注

    175

    文章

    2914

    浏览量

    228374
  • 人工智能
    +关注

    关注

    1775

    文章

    43625

    浏览量

    230430
  • 机器人技术
    +关注

    关注

    18

    文章

    179

    浏览量

    31472
收藏 人收藏

    评论

    相关推荐

    matlab机器人

    请问一下机器人的计算工作是否用MATLAB在计算呢?能简单说明一下吗?
    发表于 05-30 16:58

    机器人餐厅

    哈尔滨首开机器人餐厅 生意爆棚2013年1月12日,哈尔滨市中央大街上有一家机器人为主题的餐厅。据了解,这家机器人主题餐厅营业半年来,顾客盈门,很受食客的欢迎。餐厅有煮水饺机器人、煮面
    发表于 07-26 09:11

    什么是工业机器人

    3个阶段:70年代的萌芽期,80年代的开发期和90年代的适用化期。70年代是世界科技发展的一个里程碑:人类登上了月球,实现了金星、火星的软着陆。我国也发射了人造卫星。世界上工业机器人应用掀起一个高潮
    发表于 01-19 10:58

    nao机器人与其他机器人的区别

    相比于之前的机器人,NAO机器人穿上人类的服装,那就像是一个真人出现在我们面前似得,NAO机器人的四肢设计的非常的灵活,具有多个自由度的身体,使得NAO机器人能够灵敏的行走以及参加一
    发表于 02-13 15:43

    第2章 机器人控制MATLAB 仿真程序

    第2章 机器人控制MATLAB 仿真程序
    发表于 09-24 11:34

    第3章 机器人控制MATLAB 仿真程序

    第3章 机器人控制MATLAB 仿真程序
    发表于 09-24 11:36

    第9章 机器人控制MATLAB 仿真程序

    第9章 机器人控制MATLAB 仿真程序.zip
    发表于 09-24 11:45

    机器人基础书籍

    列举部分学习过程中接触的部分书籍,部分有中文版,部分有更新版本。1.机器人基础书籍适合入门的书籍:机器人机器人建模规划与控制机器人学、机器
    发表于 05-22 06:53

    请问未来机器人可以进行FPGA开发吗?

    随着人工智能技术的发展,机器人已经开始接管人类的部分工作,例如快递、工厂作业、餐厅服务员甚至媒体编辑---纽约时报就聘请了一位机器人做总编。未来,机器人可以介入半导体设计开发吗?例如,
    发表于 10-10 06:33

    机器人的定义是什么?工业机器人的应用有哪些?

    机器人的定义是什么?机器人优点和缺点是什么?机器人是由哪些部分组成的?工业机器人的应用有哪些?
    发表于 07-05 06:48

    浅谈差速机器人的纯轨迹跟踪仿真

    差速机器人的纯轨迹跟踪仿真(Matlab)刚入门,有的地方不对,烦请大家指正。目录差速机器人的纯轨迹跟踪仿真(Matlab)1 差速机器人
    发表于 09-01 08:11

    基于Matlab的开源六自由度协作机器人实验平台

    一前言针对机器人相关专业的教学需求,商飞信息科技开发出此开源六自由度协作机器人实验平台。该平台有以下几大特色机器人本体采用自主设计的3Kg负载六自由度协作
    发表于 09-07 07:10

    机器人简介

    业、建筑业,或是危险的工作[1]。同时,机器人的研究和开发制造一直将下面三条原则作为机器人开发的准则。即:...
    发表于 09-07 06:05

    什么是服务机器人

    问:什么是服务机器人?答:根据国际机器人联合会(InternationalFederationofRobotics,IRF)的定义,服务机器人是一种半自主或全自主工作的机器人,它能帮助
    发表于 09-17 07:49

    基于Matlab和VR技术的移动机器人建模及仿真

    利用 Matlab 建立移动机器人的动力学模型 ,在虚拟现实 (VR )环境下 ,实时仿真移动机器人路径跟踪的运动特性 ,为基于 Internet 的机器人遥操作试验搭建了仿真平台 。
    发表于 09-20 06:24