[运动规划算法]基于硬约束和软约束的轨迹规划


前言

1.基于Minimum snap的轨迹优化

基于Minimum snap框架有利于光滑轨迹的生成但是不利于作避障。
在这里插入图片描述

2.带安全约束的Minimum snap

一般是添施加推力将轨迹往里推(软约束),或者轨迹上添加bounding box(硬约束)。
在这里插入图片描述

3.硬约束和软约束

硬约束(下图上方)要求等式约束和不等式约束都必须在全局的条件下满足,生成的轨迹才能是我们可以接受的解。

软约束(下图下方)将上方的等式约束和不等式约束都加到目标函数中,它是没法保证约束一定是成立的,但它是使约束是倾向性成立。常见的惩罚函数L2 loss、L1 loss、Huber Loss和Barrier function。
在这里插入图片描述


一、硬约束优化

1.基于走廊的光滑轨迹生成

实现步骤:构建八叉树地图 -> 在八叉树地图中搜索可行的路径并构建飞行走廊 -> 飞行走廊进行膨胀 -> 生成飞行走廊里的轨迹。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如何保证整段轨迹在飞行走廊中(安全区域内)?

解法:迭代检查最大值并添加额外约束,当轨迹中存在极值点查过边界限制yb时,在每个极值点出添加额外约束。
在这里插入图片描述
新点约束比原来约束yb的限制要更加紧迫,在有限次的迭代后,会把多项式压在约束边界内。

  • 迭代求解过程耗费大量时间
  • 实际中有些情况是不存在满足所有约束的可行解,但是需要通过多次迭代才能知道解是否存在。

如何能够尽快地判断是否存在可行解?

解法:将基于monomial polynomial轨迹变为基于Bernstein polynomial轨迹。
在这里插入图片描述


2.基于贝塞尔曲线的轨迹优化

贝塞尔曲线的特点

  1. 轨迹一定经过起点和终点,并且轨迹一定不经过中间控制点;
  2. 避免迭代求值,整段贝塞尔曲线一定完全被控制点构成的凸包所包围;
  3. 贝塞尔曲线的导数还是贝塞尔曲线,并且有闭式解,如果定义了轨迹的贝塞尔曲线,那么高阶导数的曲线可以直接得到;
  4. 每段曲线时间间隔都定义在(0,1)之间。
    在这里插入图片描述
    在这里插入图片描述
    waypoints constraints:轨迹经过起点和终点。
    continuity constraints:多段轨迹必须连续。
    safety constraints:各段的control points必须落在飞行走廊中。
    dynamical feasibility constraints:整段的速度和加速度不能超过物理极限。
    在这里插入图片描述
    综合所有约束项之后得到的公式化描述,包括等式约束、不等式约束、动力学约束。回归到一个QP问题,使用Mosek convex solver求解。此时的QP问题只需要求解一次,不需要迭代过程。(之前求解次数较多是因为安全性约束无法保证,并且每次更改边界后也没办法保证可行解的存在性和可行性)。

3.其他解决方法

在这里插入图片描述
在这里插入图片描述


二、软约束优化

1.基于距离的轨迹优化

硬约束方法存在的问题:将所有的安全区域都认为是等价的,很可能会导致轨迹的某些地方距离障碍物太近,如果控制部分不能完全按照轨迹走,则依然会导致碰撞;另一个潜在问题在于如果大量的使用基于视觉的方法,则会产生较多的噪点,那么就会给规划问题带来麻烦(对噪声敏感)。

软约束的方法则是施加一个“推力”,将轨迹往远离障碍物的方向推。核心问题在于设计好的目标函数,因此当目标函数设定不合理时会导致路径可能会碰到障碍物,这是软约束的不足。
在这里插入图片描述

2.目标函数的设计

目标函数 = 光滑代价函数 + 碰撞代价函数 + 动力学代价函数。
光滑代价函数: 使用minimum snap来实现。
碰撞代价函数: 对太靠近障碍物进行惩罚。
动力学代价函数:对超出动力学约束进行惩罚。

在这里插入图片描述
在这里插入图片描述

3.欧式距离场

使用指数函数作为代价函数是为了惩罚太靠近障碍物的轨迹。
在这里插入图片描述

4.数值优化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.规划策略

整个规划流程:

  1. 导航开始前先获取一条全局的路径;
  2. 使用前端获取局部路径和局部的目标点;
  3. 使用后端优化生成局部轨迹;
  4. 跟踪生成的轨迹

扩展策略

  1. 建图模块出现异常值阻塞轨迹时进行激活;
  2. 在附近区域生成短而安全可行的轨迹;
  3. 悬停进行观察。
    在这里插入图片描述
  • 使用minimum snap初始化轨迹

    • 有利于光滑的轨迹生成;
    • 可能会因为过冲而造成碰撞损失,初始值不安全。
  • 使用沿着路径的直线轨迹来初始化轨迹

    • 生成的轨迹不够光滑;
    • 初始值安全且不会发生碰撞;
    • 通过使用指数函数来作为惩罚函数可以给出一条无碰撞安全可行的初始轨迹。
      在这里插入图片描述
  • 优化策略

    • 仅以碰撞代价来优化轨迹;
    • 重新分配时间和重新调整参数来优化轨迹;
    • 通过添加平滑项和动态惩罚项来优化目标。
      在这里插入图片描述

6.实验结果

在这里插入图片描述
https://github.com/HKUST-Aerial-Robotics/grad_traj_optimization


参考资料

【1】深蓝学院运动规划课程。
【2】【泡泡机器人公开课】第九十三课:Online quadrotor trajectory generation-高飞
https://www.bilibili.com/video/BV1W4411E7jq

  • 10
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
讲述机器人运动规划原理的经典书籍。 《规划算法》目录: 第Ⅰ部分 介绍性的资料  第1章 绪论   1.1 从规划(的过程)到规划(的结果)   1.2 实例与应用   1.3 规划的基本组成   1.4 算法规划器与规划    1.4.1 算法    1.4.2 规划器    1.4.3 规划   1.5 本书的组织安排  第2章 离散规划   2.1 离散可行规划简介    2.1.1 问题表述    2.1.2 离散规划的实例    2.2 可行规划的搜索    2.2.1 一般前向搜索    2.2.2 特殊前向搜索    2.2.3 其他搜索方案    2.2.4 搜索方法的统一描述   2.3 离散最优规划    2.3.1 最优定长规划    2.3.2 不指定长度的最优规划    2.3.3 再论Dijkstra算法   2.4 用逻辑来表示离散规划    2.4.1 类似STRIPS的表示    2.4.2 转换到状态空间表示   2.5 基于逻辑的规划方法    2.5.1 部分规划空间中的搜索    2.5.2 建立规划图    2.5.3 满足性规划   进一步阅读   习题   实现 第Ⅱ部分 运动规划  第3章 几何表示与变换   3.1 几何建模    3.1.1 多边形与多面体模型    3.1.2 半代数模型    3.1.3 其他模型   3.2 刚体变换    3.2.1 一般概念    3.2.2 二维变换    3.2.3 三维变换   3.3 物体运动链的变换    3.3.1 二维运动链    3.3.2 三维运动链   3.4 运动树的变换   3.5 非刚体的变换   进一步阅读   习题   实现  第4章 位形空间   4.1 拓扑的基本概念    4.1.1 拓扑空间    4.1.2 流形    4.1.3 路径与连通   4.2 位形空间    4.2.1 二维刚体:SE(2)    4.2.2 三维刚体:SE(3)    4.2.3 物体的链与树   4.3 位形空间障碍物    4.3.1 基本运动规划问题    4.3.2 显式建模Cobs:加:平移情况    4.3.3 显式建模Cobs:一般情形   4.4 闭运动链    4.4.1 数学概念    4.4.2 R2上的运动链    4.4.3 定义一般连杆组的簇   进一步阅读   习题   实现  第5章 基于采样的运动规划  第6章 组合运动规划  第7章 基本运动规划的扩展  第8章 反馈运动规划 第Ⅲ部分 决策论规划  第9章 基本永生理论  第10章 序贯决策理论  第11章 传感器与信息空间  第12章 存在感测不确定性条件下的规则 第Ⅳ部分 微分约束条件下的规划   第13章 微分模型  第14章 微分约束条件下基于采样的规划  第15章 系统理论与分析技术
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Travis.X

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值