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

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

3天内不再提示

如何将MATLAB运动规划应用于各种自主系统

MATLAB 来源:MATLAB 作者:MATLAB 2021-09-03 10:04 次阅读

曾几何时,汽车离不开驾驶员,机器也离不开实体控制器。但现在不一样了:如今,高度智能自动驾驶汽车已经能够自己变道、礼让行人甚至侧方停车。

自动驾驶汽车、机器人操作臂、无人地面交通工具 (UGV) 和无人机等系统要实现自主,离不开三大支柱,运动规划就是其中之一。另外两大支柱则是感知和控制。

与人类非常相似,自主系统也是通过扫描环境来探索新环境,以了解自己所在的位置和周围环境。

一旦得出环境地图,运动规划算法就会规划一条通往指定目的地的无障碍路径。

算法会决定沿着路径要采取的下一步,控制器根据这一决定向作动器发送命令,使得系统移动。

什么是运动规划?

运动规划是一种计算问题,旨在寻找将机器人或车辆从初始状态移动至目标状态的动作序列。

“运动规划”和“路径规划”这两个词经常混用,但两者有一个关键区别。

运动规划在车辆位置随时间变化时生成车辆的运动,而路径规划只生成车辆的路径。

通过运动规划,车辆可以在遵循现有路径的同时改变运动,如以下两个自动驾驶汽车场景所示:

场景 1:红灯亮起时,汽车减速后停止;绿灯亮起时,汽车继续行驶,这是运动变化,不是规划路径变化。

状态空间和其他运动规划关键概念

在实际应用中,运动规划的实现有赖于多个功能部件。其中包括使用同步定位与地图构建 (SLAM) 算法生成的环境地图,以及机器人或车辆的状态(位置和方向)。

机器人的状态间变换定义了其运动。可以应用于机器人的变换集合称为状态空间或配置空间(Cspace)。配置空间可以包括自由空间(其中的机器人状态被视为有效)和障碍空间(其中的机器人状态被视为无效)。

例如,在自动驾驶汽车中,汽车的位置及其驶向或方向共同代表了它的状态。

对于自动驾驶汽车的自动泊车,停车场的地图标识了自由空间和障碍空间,状态空间表示使用运动模型定义的所有可能的前进和后退机动的集合。

路径代价、最优性和完备性

路径代价

当机器人或车辆在寻找路径时,它所采取的每一步都与代价相关联。穿越自由空间的代价通常设为零,穿越包含障碍物的空间的代价设为无穷大。

最优性

如果路径规划算法总能找到最优路径,则称其为最优算法。为了使路径最优,其转换代价(边缘代价)之和在从初始位置到目标位置的所有可能路径中必须是最低的。

完备性

在有限的时间内,当路径存在时,路径规划算法能找出路径,当路径不存在时,算法能报告路径不存在,则称该算法为完备的。

最优且完备的路径规划算法所提供的路径不一定是最短的,但代价会是最小的。

在某些特定的情况下(例如,让室内机器人沿着走廊移动),可以将机器人沿走廊中心移动的代价定义为低于靠近墙壁移动的代价。

在这种情况下,最优路径是让机器人沿着走廊中心移动,减少与墙壁碰撞的机会。

运动规划的常见类型

运动规划有许多不同类型的方法。最常见的方法如下:

基于搜索的规划和基于采样的规划方法,取决于搜索树或图的创建方式

全局和局部路径规划方法,取决于规划是在整个地图中还是在某一子集中完成

接下来我们将逐一探讨每种方法。

基于搜索的规划

基于搜索的规划创建一个可搜索的图,将每个车辆状态或配置标识为一个节点。该图从起始节点扩展到目标节点,使用基于代价和启发式的方法来寻找最短路径。

基于搜索的规划通常在离散化地图上执行,其中地图被细分为栅格单元,状态数是有限的或可数无限的(可以为每个状态分配一个唯一的整数)。

离散状态空间通常用二维栅格地图表示,其中各个网格的中心是要搜索的状态。一种常见的地图表示方法是占据栅格地图。

A* 算法是一种常用的基于搜索的方法,用于在离散栅格地图中寻找路径。

当车辆或机器人可被视为一个点且规划阶段不涉及运动模型或运动学方程时,栅格地图上基于搜索的规划通常适用。

如果路径规划算法为机器人提供了要遵循的路点,则可以使用控制算法来添加运动学约束。

基于采样的规划

在基于采样的规划中,搜索树或路线图是通过在状态空间中随机添加节点来创建的。使用连续运动模型,可以找到可能的无碰撞路径。

基于采样的规划通常使用启发式方法来探索搜索空间并偏转搜索方向。创建后,树或路线图使用碰撞检查或搜索方法来寻找到达目标的最短路径。

RRT 算法是一种常用的基于采样的方法,用于在连续状态空间中寻找路径。

基于采样的运动规划适用于高维搜索空间,例如寻找一组有效的配置,使机械臂能够拾取物体。基于采样的规划广泛适用于多种实际应用,虽然不能提供完备解,但仍广受欢迎。

如果搜索树的密度使样本足够接近,则当解存在时,找到解的概率会收敛到 1。这使得一些基于采样的规划器(例如 RRT 和 RRT*)在概率上是完备的。

全局和局部路径规划

全局路径规划又称基于地图的规划,它根据有关环境的先验知识寻找最优路径。

全局规划算法规划初始路径,以避开环境中已知的静态障碍。

例如,一个自主移动机器人可以规划一条全局路径,在有墙壁等静态障碍物的走廊上,将一本书从一个办公室送到另一个办公室。

局部路径规划又称动态重规划,它重新计算路径,以避开未知的动态障碍。

局部规划算法跟踪全局规划并创建局部轨迹,同时避开新引入的障碍。

例如,一辆自动驾驶汽车可能会规划局部轨迹,变道以避开其他车辆,然后重新汇入全局路径以抵达目的地。

使用 MATLAB 进行运动规划的四步工作流

Navigation Toolbox 提供了用于实现各种规划算法的类,包括常见的基于搜索的规划器(例如 A*)和基于采样的规划器(例如 RRT 和 RRT*)。

该工具箱还提供路径指标,来评估所规划路径的避障间隙和平滑度。

此外,Navigation Toolbox 提供了一个接口,可让您在系统化的四步工作流中实现基于采样的运动规划算法:

表示状态空间。

定义状态校验器。

对新状态进行采样并检查有效性。

将一组有效状态表示为路径。

表示状态空间

自定义状态空间类 nav.StateSpace 允许您定义一个状态空间,在其中包含任何应用的可能状态或配置。例如,stateSpaceDubins 和 stateSpaceReedsShepp 通过连接状态空间中的任意两个状态来支持自动泊车规划,以便状态空间模拟汽车类机器人或带有阿克曼转向的机器人的运动。

Navigation Toolbox 提供以下现成的状态空间。

28d1574a-0bed-11ec-8fb8-12bb97331649.png

定义状态校验器

状态校验器基于状态空间,并与通过 SLAM 算法获得的地图相对应。它检查单个状态的有效性或两个采样状态之间的运动的有效性。例如,碰撞检查器是一种状态校验器,可指示机器人状态或配置与障碍物发生碰撞的情况。

Navigation Toolbox 提供以下状态校验器,用于校验二维和三维占据地图中的状态和离散化运动。

2935bfd2-0bed-11ec-8fb8-12bb97331649.png

这些状态校验器派生自工具箱中提供的自定义状态校验器 nav.StateValidator,可用于确定单个状态的有效性或任意两个状态之间的运动的有效性。

对新状态进行采样并检查有效性

基于采样的规划算法在定义的状态空间中随机对状态采样,并使用状态校验器创建从起点到目标的无障碍路径。RRT 和 PRM 等算法使用不同的采样方案对状态进行采样,并创建搜索树或路线图。

对于通过 SLAM 算法获得的地图,为对地图内的状态进行采样,会应用与地图外侧界限相对应的状态空间边界。

表示采样状态的集合

您可以使用 Navigation Toolbox 中的 plan 函数将规划算法的输出整理成树状数据结构。您可以使用 navPath 类存储给定状态空间中的状态集合,并对它们进行插值以获得路径。

运动规划函数:https://ww2.mathworks.cn/help/nav/motion-planning.html

选择运动规划算法

Navigation Toolbox 中提供了以下运动规划算法。

2944f592-0bed-11ec-8fb8-12bb97331649.png

进一

责任编辑:haq

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

    关注

    175

    文章

    2922

    浏览量

    228430
  • 控制器
    +关注

    关注

    112

    文章

    15198

    浏览量

    171096
  • 机器人
    +关注

    关注

    206

    文章

    27015

    浏览量

    201357
  • 自动驾驶
    +关注

    关注

    773

    文章

    13022

    浏览量

    163186

原文标题:自主系统 | 使用 MATLAB 进行运动规划

文章出处:【微信号:MATLAB,微信公众号:MATLAB】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    EtherCAT运动控制器的MATLAB开发

    以正运动ZMC408CE运动控制器为例,讲解MATLAB进行运动控制应用开发。
    的头像 发表于 04-17 10:54 91次阅读
    EtherCAT<b class='flag-5'>运动</b>控制器的<b class='flag-5'>MATLAB</b>开发

    自主机器人近距离操作运动路径规划算法

    自主控制技术研究至今,先后出现了多种体系结构形式,目前被广泛应用于实践的是分布式体系结构,其各个功能模块作为相对独立的单元参与整个体系。
    发表于 01-12 10:42 274次阅读
    <b class='flag-5'>自主</b>机器人近距离操作<b class='flag-5'>运动</b>路径<b class='flag-5'>规划</b>算法

    LabVIEW的六轴工业机器人运动控制系统

    LabVIEW开发六轴工业机器人运动控制系统 本项目开发了一个高效的工业机器人控制系统,重点关注于运动学算法和轨迹规划算法的实现和测试。La
    发表于 12-21 20:03

    如何正确的8009应用于反相放大电路中?

    左右(正相饱和),但是我使用multisim仿真是没有问题的,请问应如何正确的8009应用于反相放大电路中?如果不能用于反相放大电路请问如何通过手册鉴别?其中的机理是什么? 仿真输出波形 通道A
    发表于 11-21 07:07

    什么是ICM 如何将ICM用于加密

    电子发烧友网站提供《什么是ICM 如何将ICM用于加密.pdf》资料免费下载
    发表于 09-25 11:03 0次下载
    什么是ICM <b class='flag-5'>如何将</b>ICM<b class='flag-5'>用于</b>加密

    智能轮椅导航定位的研究现状及趋势

    人的正常生活中去,是社会关注的主要问题之一。智能轮椅又称轮椅式移动机器人,具有记忆地图,避障.自动行走、与用户交互及为用户提供特殊服务等功能,可以为行动不便人群提供帮助。智能轮椅智能机器人技术应用于
    发表于 09-25 07:13

    自主可控,全国产龙芯2K0500应用于工业自动化设备方案

    自主可控,全国产龙芯2K0500核心板应用于工业自动化设备方案-迅为电子
    的头像 发表于 08-23 14:46 675次阅读
    <b class='flag-5'>自主</b>可控,全国产龙芯2K0500<b class='flag-5'>应用于</b>工业自动化设备方案

    如何将Git与用于DS-5 1.0版的Eclipse配合使用

    源代码管理系统(SCS)允许您对源文件进行版本设置,并与其他开发人员共享。有许多可用的源代码管理系统,既有商业的,也有开源的。 本教程介绍如何将开源Git源代码管理系统集成到Eclip
    发表于 08-10 07:11

    运动控制和电机控制的区别

    运动控制与电机控制经常同时出现,有点让人混淆。这两个概念有什么区别?在工业自动化中,我们如何将恰当的解决方案应用于其中一个概念,或同时应用于这两个概念?
    的头像 发表于 08-01 16:16 648次阅读
    <b class='flag-5'>运动</b>控制和电机控制的区别

    如何从电机控制转换为运动控制

    运动控制与电机控制经常同时出现,有点让人混淆。这两个概念有什么区别?在工业自动化中,我们如何将恰当的解决方案应用于其中一个概念,或同时应用于这两个概念?
    的头像 发表于 07-13 16:20 192次阅读
    如何从电机控制转换为<b class='flag-5'>运动</b>控制

    【科普】干货!带你从0了解移动机器人(三) ——自主导航系统及上位机软件设计与实现

    量,保证移动机器人按照规划路径顺利地到达目标位置。而开环控制则是根据预先设定的控制量进行运动控制,不考虑机器人当前状态的影响。开环控制相对简单,但精度较低,常用于一些简单的任务。 然而由于自主
    发表于 06-28 09:36

    使用激光雷达和运动捕捉进行自主路径规划

    电子发烧友网站提供《使用激光雷达和运动捕捉进行自主路径规划.zip》资料免费下载
    发表于 06-27 09:37 0次下载
    使用激光雷达和<b class='flag-5'>运动</b>捕捉进行<b class='flag-5'>自主</b>路径<b class='flag-5'>规划</b>

    如何在MATLAB中使用线性规划求解不同的问题

    MATLAB是一种广泛使用的数学软件,它提供了各种工具箱和函数来解决多种问题,包括线性规划。下面介绍几个线性规划的示例,演示在MATLAB
    的头像 发表于 06-14 10:25 536次阅读

    如何建立matlab和freemaster的关系?如何将freemaster数据导入matlab/simulink?

    你能帮助我们的客户解决以下问题吗? 如何建立matlab和freemaster的关系? 如何将freemaster数据导入matlab/simulink?
    发表于 05-29 08:25

    运动自主研发实时软核MotionRT7与Labview单轴点动例程开发

    MotionRT7是正运动推出的跨平台运动控制实时内核,也是国内首家完全自主自研,自主可控的Windows运动控制实时软核。 1.Mot
    发表于 05-12 09:59