学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#金宝app

自治系统设计的MATL金宝appAB和Simulink

大家好,我是塞巴斯蒂安。我一直在学校和机器人活动上做一些演讲,所以我想把这些演讲转换成一篇全面的博客文章,供其他人阅读。我希望你喜欢这个材料!

很多人都知道MATLAB(也许还有Simulink)是他们在本科工程课金宝app上必须使用的“计算器”。在我的演讲中,我希望通过在高层次上分享这些软件工具可以帮助你设计机器人和自主系统来揭穿这个神话。有些是新的功能,有些已经有一段时间了,并在工业中使用。

不久前,我们和我的队友、机器人竞技场的联合主持人一起做了一个视频,康奈尔大学D’索萨.我们尝试着对我们所从事的所有工作进行分类,并提出了一些解决问题的方法。在本博客中略有改动,但要点不变。

  • 什么功能你的机器人需要什么?任何自主系统成功运行都需要一个完整的能力层次结构——从可靠地运行每个单独的传感器和执行器到执行整个任务或任务。
  • 你怎么样?设计你的机器人吗?机器人越复杂,直接为所有必要的硬件编程并期望机器人工作就越具有挑战性。

在这篇文章中,我将更深入地探讨上面的问题,并展示一些MATLAB和Simulink的例子。金宝app

注意:虽然我经常使用“机器人”这个词,但你也可以把它换成“自动驾驶汽车”、“无人驾驶飞行器”、“自动烤面包机”,或者你正在研究的任何由传感器、执行器和智能组成的东西。

你的机器人需要什么能力?

首先,我们将探索大多数现代机器人系统自主操作所需的典型能力。

计划、导航和控制

我认为这三个术语是任何在环境中移动的机器人的“命令链”。给定一个特定的任务,你需要给你的机器人编程来计划一个解决方案,弄清楚如何达到这样的目标,并能够在充满不确定性的现实环境中可靠地做到这一点。

我在哪里?这包括两个要素:映射知道环境是什么样的,而我ocalization知道机器人在那个环境中的位置。通常,这些问题是并行解决的,这被称为同步定位与测绘(SLAM)

我需要去哪里?完成一项任务需要机器人从当前状态进入一个状态目标.目标可以由操作员或独立的自主组件指定,例如,检测目标物体位置的摄像机。

我怎么去那里?现在机器人有了一个已知的开始和目标,它必须做出一个计划.该计划可以使用诸如已知环境地图中的障碍、机器人运动的限制(例如,四轮类汽车车辆不能原地移动)和其他最优性约束(例如,轨迹平滑性或能量消耗)等信息来生成。

让我们去那里!这与执行上面的计划有关,也就是所谓的导航.换句话说,给定给定的路径或轨迹,如何控制驱动器以可靠地遵循路径?系统是否足够健壮,能够处理不确定性,如动态障碍、传感器和执行器噪声或其他意外情况?

移动机器人导航实例
[左]机器人初始位置和目标,[中]从起点到目标的规划路径,[右]机器人使用激光雷达避墙的实际路径

感知与智力

在前一节中,我们简要地提到了传感器作为规划、导航和控制的辅助角色。金宝app然而,处理传感器以轻松做出智能决策的挑战值得拥有自己的部分。这一点对于感知像相机和激光雷达这样的传感器(分别作为图像和点云)包含大量关于环境的信息,但需要大量的处理才能理解它们。

机器人系统的感知在过去几年里已经发展得非常强大,这主要是由于机器学习的兴起。仍然值得注意的是不同类别的感知算法,因为它们都适合解决不同的问题。

分析:使用带有校准的预定义程序的传感器数据-例如,通过对颜色、强度或位置应用阈值来查找对象,检测线条和拟合多项式,以及使用已知的相机信息在图像和真实坐标之间转换。

特点:使用知名的特征检测器来定位边、角、斑点等,从而降低数据的维数,以便进一步处理。特征提取和匹配具有广泛的应用,例如通过与一组“地面真相”特征进行比较来检测目标,或通过记录传感器和/或环境在连续读数之间的姿势变化来估计姿态。

机器学习:机器学习方法有不同的风格,所有这些方法都在感知方面有一定的应用。

  • 无监督学习方法通常包括将图像或点云聚类为感兴趣的单个对象
  • 监督式学习可以与基于特征的方法进行对比,除了使用预先确定的特征之外,标记数据用于训练这些特征,以便将它们调整为要解决的特定问题。这是最常见的目标分类和检测。
  • 强化学习另一个表面区域是可行的吗端到端应用程序——换句话说,学习如何直接使用图像或点云等传感器数据来生成可以解决任务的控制策略。

一般来说,从分析技术转向机器学习技术可以帮助解决更困难的问题,并很好地推广到不同的操作条件,但代价是必须收集数据,增加训练和执行模型的计算需求,以及更少的洞察力*为什么*算法是有效的。

人脸检测实例
[左]RGB图像的颜色阈值,[中]模板图像的KAZE特征匹配,[右]经过训练的YOLO对象检测器的深度学习

你如何设计和编程你的机器人?

接下来,我们将讨论MATLAB和Simulink等软件工具如何帮助设计过程,而不是直接为自主系统构建和编程硬件。金宝app下面是你应该问自己的几个关键问题:

  • 我如何知道我已经正确地构建了我的系统?
  • 在系统上尝试代码之前,我如何测试它?

建模与仿真

安全测试硬件设计和软件算法的一种方法是使用模拟。模拟有初始成本,即创建系统的良好虚拟表示所需的时间和精力,以允许您测试某些行为。通常,硬件越昂贵,环境越危险,您就越倾向于尝试模拟。

模拟可以有多种形式,我们经常根据它们的细节级别对模拟进行分类忠诚

  • 低保真:简单快速的模拟,用于测试高级行为,而不关注机器人或环境的物理细节。这可能只需要一个基本的运动学模型,或代表实际问题中关键元素子集的近似动力学。
  • 高保真物理:对机器人和环境的详细模拟,通常涉及机器人力学、驱动(电子、流体等)以及与环境的相互作用(碰撞、扰动等)的物理模型。这对于验证在CAD工具中执行的复杂硬件设计具有动态仿真,确定执行器尺寸的需求,以及设计低级控制算法都是很好的。
  • 高保真环境:这是一种不同的高保真模拟,我认为需要一个单独的类别。本文的重点不是机器人的物理特性,而是为系统级测试重新创建一个真实的环境。这可能涉及到使用流行的模拟器,如露台虚幻引擎,这允许逼真的传感器模拟(相机,激光雷达等)和快速,虽然通常近似,碰撞物理复杂的环境。

虽然您当然可以使用高保真物理和环境模型建立模拟,但您应该始终牢记模拟的计算成本。我的一般原则是高保真物理适用于机器人建筑商,而高保真的环境适合机器人程序员

模拟逼真的机器人机械手
【左上】MATLAB刚体树进行运动学分析,【右上】Simscape多体三维刚体仿真
[下]使用Gazebo模拟虚拟世界

那么为什么要用MATLAB和Simulink进行仿真呢?金宝app我的首要答案是MATLAB是一个通用的环境,这意味着您的仿真直接集成了重要的设计工具,用于脚本编制、优化、并行计算、数据分析和可视化等。以下面的动画为例,这是我从同事那里借来的史蒂夫•米勒.在他的“带传送带的机械臂”的例子, Steve包含了一个优化脚本,可以调整运动轨迹的参数,以最大限度地减少功耗。我认为这是模拟如何帮助设计的一个很好的概念性例子。

软件开发和硬件部署

让我们退一步,想想我们迄今为止为机器人行为原型所创造的一切。涉及到两种类型的工件:

  • 设计工件:模拟、分析工具(优化、数据加载/记录、可视化等)
  • 软件构件:算法可以单独测试,针对模拟,然后部署到机器人硬件上

根据你如何原型化和测试你的算法,你创建的任何东西都可能需要改变——甚至完全移植到另一种语言——才能在预期的机器人硬件上运行。MATLAB和Simu金宝applink提供了自动代码生成工具,可以减少更改设计以符合硬件的手工工作。更重要的是,不必对原始设计进行手动更改可以降低引入错误的风险。

自动部署包括:

  • 独立代码生成:生成可移植代码、库或可执行文件,这些代码可以像任何其他手写代码一样与其他软件集成。
  • 部署到软件框架:生成连接到流行框架的代码,例如机器人操作系统(ROS)NVIDIA gpu库
  • 硬件部署:生成在受支持的硬件上自动传输和编译文件的代码(金宝app点击这里查看我们的目录).这样做的主要好处是减少了在硬件上获取代码的时间,以及最大限度地减少了编写设备驱动程序的需要。

特定于我们的工具,这些可部署的“软件工件”可以被视为源代码,即使它们是使用图形化建模工具开发的,因为代码生成可以将它们转换为实际的机器人代码。事实上,有3种主要的建模“语言”可以(而且应该)结合起来实现复杂的机器人算法:

  • MATLAB是一种基于文本的编程语言,适用于矩阵运算、搜索和排序等数学计算。
  • 金宝app是一种图形框图环境,适用于反馈控制系统、信号处理和多速率系统。
  • Stateflow支持逻辑构造的建模,如流程图和有限状态机,具有持久内存、时间逻辑和基于事件的执行等重要特性。

结论

这篇文章概述了一种分类自治系统开发的方法。我们首先区分了系统的功能以及如何从概念到实现设计这些功能。总而言之,

  • 功能涉及系统如何使用关于自身和环境的信息来自主地采取行动并解决问题。
  • 设计涉及软件和硬件原型如何系统地建模、测试,并最终部署到自主系统。

我想指出:上述自治系统设计过程的崩溃并不是唯一的。另一种分割过程的方法是从原型设计和探索到机器人硬件上的实现。Peter Corke教授我在我们的机器人教育与MATLAB和Simulink视频金宝app

要了解更多,你可以阅读我们的博客文章,关注我们的MATLAB和Simu金宝applink机器人竞技场视频系列,并浏览我们的网页视频教程

如果您想与我们取得联系,请随时给我们留下评论或与我们的MATLAB和Simulink机器人竞技场社区联系。金宝app

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。