机器人导航路径平滑算法:一条符合机器人运动限制的路径
介绍机器人通过栅格地图进行路径规划时,根据静态障碍物得到全局路径,本阶段暂不考虑动态障碍物。通过各种路径规划算法,如 Dijkstra’s,A*,D-star,RRT等,规划出的路径都存在直线之间有急剧拐弯(曲率变化大)的问题。尽管通过将八邻域改为更多邻域,如前文所述,能略微改善曲率变化急剧的问题,但是这样的路径仍然不适于机器人运动模型,尤其是非全向机器人,如阿克曼底盘,所以需要一条符合机器人运动
文章转自 帅气的为为 https://zhuanlan.zhihu.com/p/364421182
介绍
机器人通过栅格地图进行路径规划时,根据静态障碍物得到全局路径,本阶段暂不考虑动态障碍物。通过各种路径规划算法,如 Dijkstra’s,A*,D-star,RRT等,规划出的路径都存在直线之间有急剧拐弯(曲率变化大)的问题。

尽管通过将八邻域改为更多邻域,如前文所述,能略微改善曲率变化急剧的问题,但是这样的路径仍然不适于机器人运动模型,尤其是非全向机器人,如阿克曼底盘,所以需要一条符合机器人运动限制的路径。
路径连续性
连续性包括两个部分:几何连续
,参数连续
。
几何连续指路径的多个片段的起始点相连,而且切向量的方向相同。
参数连续指路径的多个片段的起始点相连,而且切向量的方向和大小相同。
如果两曲线在点
处的第
阶导数相等,那么该两曲线在点
处是
连续,同时也是
连续的,对于
。总之,曲线
的
阶导数
是连续的话,则是
连续曲线。

如上所述,参数连续意味着曲线和其参数化的平滑,而集合连续仅意味着机器人轨迹平滑。例如
连续意味着切向量连续,而
连续意味着斜率连续;
连续意味着加速度矢量连续,而
连续意味着曲率连续。对于机器人运动来说,
连续保持速度,
连续保持加速度。对于机器人路径规划来说,关键是路径是否
或者
连续。高阶连续如
主要处理面,用于 CAD/CAM 设计。
插值法
- 多项式插值
对于
个点
,可以用拉格朗日(Lagrange)插值
,其阶
:
,其中
。
另一种是赫米特(Hermite)插值,定义
阶的
在
处为0:
,
,其中 。
插值法用于路径平滑十分原始,有两个缺点:计算复杂度高;Runge’s 现象。
2. 贝塞尔曲线
对于
个点
,对应的贝塞尔曲线定义为:
,其中
,
。

3. 三次样条曲线
样条曲线适合于对任意方程建模,对于低阶曲线也有较好的效果,能防止 Runge’s 现象。
有两个重要特点:用最小阶数就可以产生
近似;对于小曲率也是足够平滑。
考虑
区间内有序的
个点
,以及相应的分析
,
。因为该样条曲线是3阶的,其二阶导数必须是连续的,因此定义
,
,
,于是有:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/40d440f4269ec7acb878844a2957efb9.png)
其中
,
,并且
可以从
连续系统求得:
。
4. B样条曲线
给定
个实数
,
,
阶的 B 样条曲线:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/3ec0dff454a3ad462b7d84bb4087be01.png)
由基本的
阶 B 样条曲线
线性组成:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/6c154dcaf731352cdc5c26d7ab8713ae.png)
其中
称为控制点,
个控制点形成一个凸包(convex hull),对于
这些基本 B 样条曲线定义为:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/63cd611d76ec7113e61c312b203dd6b7.png)
当控制点的个数比阶数多一个时,例如
,
,B 样条曲线退化为贝塞尔曲线。


5. NURBS 曲线
直接给定义:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/a7e093a007d4438728c51aa1e0260d0d.png)
其中
是阶数,
是 B 样条曲线基本方程,
是控制点,
的权重
是齐次点
的最后一个维度。
特殊曲线
- Dubin’s 曲线
给定平面内两点和运动方向,Dubins 用圆弧和线段在给定曲率范围内找到连接各点的最短平滑路径,如图所示。

Durbin’s 曲线简单但是有效,适用于实时处理因为计算简单,可以用于回环线来满足各种不同限制。
首先介绍一个简单的车,如图所示。

它的 C 空间
,定义为
,车子运动方程如下:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/17844c8cd3d56bff5f74b6c3acb41b12.png)
时间间隔
极小时,车子大致走后轮指向。
趋近于0,意味着
,因为
,
,于是有:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/aee5360743717a2dbeaec0a3a10263d5.png)
要满足该限制,方程的解为:
,
,
为常数。
下面解关于
的方程,
为汽车转弯半径,
,因为
,有
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/a9f36509067f721a5f4aa246475212ef.png)
两边同时除以
,因为
,有
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/7c6452e7a7cca03c7cb75c5d6be0b44a.png)
假定速度
和转向角
等同于动作参数
和
,动作向量
,汽车动力学方程为:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/ceeede9d725ea14636492d54601c57d9.png)
因为车子有最小转弯半径
,而路径规划的任务是最小化起点到终点的车子运动曲线,如果
那么就没有曲率限制,走两点间直线距离最短,但实际上需要优化
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/9fdd3dc868669e8e1b7921e491537282.png)
,其中
是到达终点
的时间,如果没有到达则
。
因为速度恒定,运动方程可以简化为:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/ec1725ad7012a87f37c2b1c0d9336227.png)
其中
属于区间
,对于 ,以下结果都成立:
| Symbol | Steering: u |
|---|---|
| S | 0 |
| L | 1 |
| R | -1 |
在[1]中已经证明,在任何两个空间之间,Dubins 汽车的最短路径可以由不超过三个基本运动的组合表示,所以动作空间为
,只有如下六个关键词是最优的:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/4664f53d545e4c8d154814b9954caca5.png)
为了更加准确,要表示每个基本动作的持续时间。对于
或
,加入下标表示转角,对于
,加入下标表示距离,因此 Dubins 曲线可以更加精确的表示为:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/dc95ffa52e67b7bd45e4f3e498638664.png)
其中
,
,
。如图所示两种可能情况。

也可以用
来代表曲线,即
或
,那么6个词可以简化为仅2个词:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/eca09ece85ce5bfb7f282da3fb8969f7.png)
更准确的版本为: ![[公式]](https://i-blog.csdnimg.cn/blog_migrate/f75c21e052bc1b68d85b8b9d0c9fdc29.png)
当
时,分割如下图所示:

已有了关键信息,但是对于给定的
和
,仍存在两个问题:
六个词中哪些可以生成最短路径?
对于某个词,相应下标的值
,
,
是多少?
一个简单的方法就是穷举法,如图所示。

2. Clothoid
Clothoid,也被称为欧拉螺旋线或者 Cornu’s 螺旋线,表示在复平面:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/78a9a7184f0fbf73deb0609dcdfc12ca.png)
其中
和
是菲涅尔函数,有时候也成为菲涅尔余弦积分和菲涅尔正弦积分。
当
时两个菲涅尔函数都趋近于
,所以这个曲线逐渐趋近于第一象限
,对称的来说,因为两个方程都是奇函数,这个曲线逐渐趋近于第一象限
。
Cornu’s 螺旋线的曲率和曲线距离成正比,因此车子的角加速度恒定,意味着驾驶员匀速转动方向盘即可,更加安全。
3. Hypocycloid
当一个半径
小圆在大一点的半径 大圆内滚动时,小圆上的某固定点产生:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/a2cac79b15685db49b0700a0630815cb.png)
其中
是峰点(曲线不可导的地方)的个数,
是两圆半径比即
,例子如图所示

如果在 hypocycloid 内有
个峰点,小圆半径则为
,因为小圆转
圈回到原点,也就生成
个峰点。
有一种新的方法成为 Smooth Hypocycloidal Paths(SHP),可以生成任何角度,该算法用来尽量保持直线路径,只平滑急转弯处,例子如图所示

4. Reeds-Shepp Curves
和 Dubins 相似,直接给运动方程:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/99b5f78930dccc16c5188916ebe54087.png)
其中 ,
。第一个变量
决定变速箱向前(
)或向后(
),为了简化假定
, 对于所有
都成立。
因此词袋为:
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/b3dee16f3b83193ef8f49d90523eaf69.png)
其中
表示变速箱逆向,即向前到向后,或向后到向前。

下图举例 。

下表为 Reeds and Shepp 的48种不同曲线,然而第一行的
和
可以被剔除,因此只有46种。

5. Balkcom-Mason 曲线
将动作集定义为
,优化方程
![[公式]](https://i-blog.csdnimg.cn/blog_migrate/501ee94670c19d4e4008f551787bbedb.png)
因此可以有四个基本运动:

可证明得出最短路径最多由五个基本部分组成,因此有9个词即:

准确形式由下表给出:

为了显示的更易懂,给出九种运动模型图:

当
,
时,最优曲线如图所示:

[1] Dubins, L.E. (1957) On Curves of Minimal Length with a Constraint on Average Curvature, and with Prescribed Initial and Terminal Positions and Tangents. American Journal of Mathematics, 79, 497-516.
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)