随着医疗保健、农业、制造业等不同行业对机器人和自动化应用技能的需求不断增长,全球对教学工具的需求也在与日俱增。这些工具有助于快速提升高校学生和相关专业人士在机器人和自主系统 (RAS) 方面的技能和能力。
机器人是科学和工程领域的一个跨学科分支,涵盖物理、电子、控制、机电一体化、编程和电信等众多学科的知识。同样,大学教学也面临着诸多挑战,包括从课程的准备和开发到技术项目的评估和监督等一系列活动。
能否使用一套工具满足多种学科的教学需求?
在本白皮书中,我们提供了利用 MATLAB® 和 Simulink® 开展机器人教学的实用示例、资源和工具。通过分析从基础课程到毕设项目的典型学术课程(如下所示),我们将说明如何加快相关知识的教学进度,以及如何在各种教学活动中使用统一的学习平台。
学习目标
您有哪些工具可供使用?您可以在哪里找到它们?
大学提供的工具
本白皮书中介绍的所有教学工具都基于 MATLAB 和 Simulink。全球许多大学都有 Campus-Wide License,支持在校内访问 MATLAB、Simulink 和 125+ 个工具箱。
MATLAB
MATLAB 是数百万工程师和科学家们用来分析数据、开发算法和创建模型的编程和数值计算平台。MATLAB 也是基于各种编程库开发和共享交互式科学计算内容的平台。
Simulink
“使用 MATLAB 和 Simulink 的基于模型的设计,适用于高级机器人系统设计中的各种软件领域。它支持复杂机电系统和控制器的仿真、实时 HIL 测试的代码生成、信号和图像处理,以及数据分析和可视化。”
Berthold Bäuml,德国航空航天中心自主学习机器人实验室主任
适用于机器人应用领域的工具箱
工具箱是 MATLAB 科学计算环境中的内置函数集合。与机器人应用密切相关的一些工具箱包括:
- Automated Driving Toolbox™、Navigation Toolbox™、Robotics System Toolbox™ 等与机器人和自主系统相关的工具箱。
- 社区工具箱:您可以对 MATLAB 文件进行打包,以创建可与其他人共享的工具箱。这些文件可以包括代码、数据、App、示例和文档。查找相关的社区工具箱,例如由昆士兰科技大学的教授兼出版作家 Peter Corke 提供的 Robotics Toolbox。
教学材料
使用针对机器人专门设计的资源,让教学不再局限于教室。
课件
发布基于工程的 MATLAB 和 Simulink 学习课件,供教授复用或通过改编内容将其应用到所授的课程中。一些常见课程包括:
GitHub 仓库
MathWorks 的 GitHub® 仓库包含各种开源机器人项目和资源,可供使用 MATLAB 和 Simulink 的教育工作者选择。
如何让您的课程更具吸引力、交互性和实用性?
源源不断的动力
与您的学生分享全球工程师如何使用 MATLAB 和 Simulink 加快机器人领域的创新步伐:
- 苏黎世联合理工学院开发跳跃机器人:学生构建创新跳跃机器人作为毕设项目
- 埃因霍芬理工大学开发 Preceyes:全球首款采用基于模型的设计的眼科手术机器人
在线解决方案
使用 MATLAB Online™ 和 Simulink Online™ 开展机器人教学,让学生无需下载或安装相关软件,即可学习包含实时示例的课程,例如路径规划页面上显示的以下示例。通过这种基于云的资源,您能够始终访问最新版本的软件。
云存储
MATLAB Drive™ 提供了基于云的常用存储位置,用于存储您的 MATLAB 文件。通过将它与 MATLAB Online 结合使用,您可与您的学生共享机器人课程材料,并使您的课程更具交互性。
App 设计
借助 MATLAB App 设计工具,您无需成为专业的软件开发人员,即可创建专业的机器人 App。
创建诸如工业机器人 App 的应用只需下面两个步骤:
- 使用拖放式组件设计用户界面,而无需编写代码。
- 编写用于确定 App 行为的代码。
工业机器人工作区 App 的 MATLAB App 设计工具设计视图(左)和代码视图(右)。
请访问 MATLAB App 库和 File Exchange,了解与机器人相关的更多示例。
交互式脚本
您可以在实时编辑器这种单一环境中创建交互式文档,以将 MATLAB 代码与格式化文本、方程和图像相结合。此外,实时脚本可存储输出,并将该输出显示在创建它的代码旁。
访问实时脚本库和 File Exchange,以及查找与机器人相关的更多示例。
您如何为学生自学提供便利?他们可以利用哪些平台?
通过机器人方面的相关练习学习如何编程。MATLAB Academy 托管灵活的交互式自定进度在线课程,提供带分步指导和自动反馈的实操练习。
入门之旅课程
入门之旅课程是免费的交互式自定进度在线课程。查找图像处理、深度学习等领域的机器人相关入门之旅课程。
更多课程
通过以下完整的课程体系,更深入地了解不同学科:
- MATLAB 课程 - 编程
- Simulink 课程 - 物理、控制、信号处理
- 人工智能、机器学习和深度学习课程 - 计算机视觉、智能
- 数学和优化课程 - 微积分、线性代数
- 图像和信号处理课程
MATLAB Academy 界面,其中显示机器人练习(左)和机器人项目(右)。
查找有关 MATLAB、Simulink 及其他机器人相关产品和服务的视频与在线研讨会:
- 视频与在线研讨会:观看大约 400 个机器人相关视频。
- MATLAB 技术讲座:通过这些系列视频了解科学领域的基本概念。
MathWorks 书籍计划, 支持编撰 MATLAB 和 Simulink 相关书籍的全球作者和出版商。此库包括 30 多本与机器人和自主系统相关的书籍。
您是否正在或计划撰写一本关于使用 MATLAB 和 Simulink 产品系列开发机器人应用的书籍?您可能有资格成为 MathWorks 书籍计划, 的成员。
您如何使用或设计实验,来让学生积极参与和主动学习?
虚拟实验,
使用 MATLAB 和 Simulink,您可以通过集成建模和仿真来构建交互式虚拟实验,。
MATLAB:编程实验,
MATLAB 可以帮助学生将机器人方面的想法和理念转换为在现实环境中无缝运行的自主系统模型。
应用示例:
Simulink:设计和仿真
Simulink 可用于建模和仿真。您可以使用可复用的组件和库(包括专用的第三方建模工具)仿真大型机器人系统模型:
- Simulink 3D Animation™:使用虚拟现实技术可视化系统的动态行为。
- Simulink 和 RoadRunner:设计三维场景以仿真自动驾驶。
- Simulink 和 Gazebo:使用 Gazebo 设置同步仿真。
- Simulink 和 Quanser 虚拟实验,:在混合式或远程实验,配置下工作。
- Simulink 和 Unreal Engine®:开发驾驶算法并测试和查看其性能。
使用 Simulink 3D Animation、Gazebo 和 Quanser 虚拟实验,进行 Simulink 仿真。
Simscape:物理系统建模
Simscape™ 可用于在 Simulink 环境中快速创建机器人系统的模型。使用 Simscape,您无需编写代码即可求方程组的数值解。您只需构建自定义模块,并以图形方式连接它们,求解器便可完成这项求解工作。
送货四轴飞行器的 Simscape 模型(左)和仿真(右)。
应用示例:
- Simscape Driveline™、Simscape Electrical™ 和 Simscape Multibody™:送货四轴飞行器
- Simscape Multibody 和人工智能:使用强化学习智能体训练双足机器人行走
Stateflow:状态机和流程图
Stateflow® 提供了一种图形语言,其中包括状态转移图、流程图、状态转移表和真值表。您可以使用 Stateflow 来描述 MATLAB 算法和 Simulink 模型如何对输入信号、事件和基于时间的条件作出反应。
取放工作流的 Stateflow 模型与仿真。
实体实验,
设计和仿真系统对于尝试新概念并可视化其工作原理至关重要。转向硬件有利于学生获得使用真实系统的实践经验。
工程师和科学家们可以将 MATLAB 和 Simulink 连接到物理硬件,以设计、测试和验证结合硬件组件和软件算法的系统。
MATLAB Mobile:移动设备和传感器
学生兜里其实就有个带有加速度计、速度计、磁力计、方向跟踪器、GPS 和摄像头等传感器的小型便携式实验室。这些传感器通常用于机器人和自主系统环境感知方面的应用。
使用智能手机和平板电脑等移动设备,学生可以:
- 从设备传感器采集数据,并在 MATLAB 中分析数据。
- 拍摄照片和录制视频,以供进一步处理和分析。
借助 MATLAB Mobile™ 这款工具,您可以通过连接到运行在 MathWorks Cloud 上的 MATLAB 会话,在移动设备上学习和讲授机器人和自主系统相关的主题。
实操示例(计算机视觉与人工智能):
在您的移动设备上,使用 MATLAB Mobile 运行此脚本,并使用 Deep Learning Toolbox™ 拍摄和分类照片。
>> m=mobiledev; %acquire data from the mobile device sensors
>> c=camera(m); %connect to the camera
>> c.Autofocus='on’; %activate autofocus
>> im=snapshot(c,'manual’); %take a photo
>> imshow(im) %review your photo
>> net=alexnet; %use AlexNet pretrained neural network
>> layer=net.Layers;
>> outlayer=layer(end); %last AlexNet layer is where the categories name are
>> categorias=outlayer.ClassNames;
>> img=imresize(im,[227,227]); %resize your image to meet AlexNet requirements
>> [pred,scores]=classify(net,img); %classify your photo
>> highscores=scores>0.04; %define the highscores
>> bar(scores(highscores)) %plot the results
>> set(gca,'xtick',1:7);
>> xticklabels(categorias(highscores)) %add categories name to the plot
后续步骤示例:打开您的计算机,探索深度网络设计器和深度学习网络分析器,并根据您的需要调整此预训练网络!
硬件支持
您一旦对自己的模型感到满意,就可以根据算法自动生成 C、HDL 或 PLC 代码,并在操作臂、无人机、移动机器人和 MATLAB 和 Simulink 支持的任何机器人硬件上运行它们。
低成本硬件
通过使用 MATLAB 和 Simulink 进行实践学习,并结合低成本的硬件,学生可以参与具有激励意义的项目,并在此期间积累宝贵的专业知识。
实时应用
您还可以使用专业硬件对机器人、操作臂、自主系统和电机等的控制设计及动态特性进行仿真和测试。
Speedgoat® 机器是一种实时目标计算机,专门设计用来与 Simulink 和 Simulink Real-Time™ 配合使用,以创建、控制和监测实时应用。
如何改进和简化传统评估?
自动化评估
MATLAB Grader™ 可帮助您在各种教学环境或 Web 浏览器中实现批量作业评判,并自动给 MATLAB 编程作业打分。
提交作业
在问题描述中使用富文本、图像、超链接和 LaTeX 方程。选择及格/不及格分制或加权分制。
即时反馈
MATLAB Grader 让您可以详细了解学生难以掌握的知识点:
- 查看答案图,了解学生答案的代码量、收到时间以及与答案之间的差距。
- 查看学生调试代码以接近正确答案的完整历史记录。
- 查看学生成绩(仅限教师和经授权的助教查看)。
- 为学生提供有关答案的实时上下文反馈。
MATLAB Grader 反馈图。
“编写复杂的代码片断时,我能得到实时反馈(或者确认),这真是棒极了;否则,调试自己的代码真是毫无头绪。这也激励我在做所有 MATLAB 作业时都力争满分。”
Juoost P.,弗吉尼亚理工学院学生
LMS 集成
MATLAB Grader 可以提供自动评判的结果,并将其直接馈送到您的学习平台,同时在您平时使用的课程管理工具中提供报告。
题库
MATLAB Grader 习题集(如电路和动力学)仅供认证教师使用。教师可以通过客户支持请求访问权限。
您如何让学生接受挑战?您可以在哪里找到相关毕设项目主题?
学生竞赛
MathWorks 支持与机器人、汽车和人工智能相关的竞赛。
欧洲漫游车挑战赛(左)、MathWorks 迷你无人机竞赛(中)和大学生方程式大赛(右)的演示。
研究项目
寻找 RAS 研究项目的新想法,提交您的成果,并获得 MathWorks 的官方认可:
了解更多
- 面向教育工作者的资源 - 总览
- 使用 App 设计工具创建和运行简单的应用 - 文档
- 创建您的第一个 MATLAB Grader 练习 - 随附软件
- MATLAB 和 Simulink 助力机器人教学 (10:10) - 视频
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
亚太
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)