这个算法很简单,可以说是对路径的拉直。可以用于处理A*
。也可以说是无约束的降采样,可以消除小的抖动,但无法保证路径仍然安全。
有时路径规划获得的点太多,或者录制机器人路径获得的点太多,可以使用RDP算法,对得到的点进行缩减,用少量目标点表示路径。
首先,将起始点和终点连成一条线,找到剩下的点中距离这条线垂直距离最大的点P,记住点P和最大距离max
,如果max
小于设定的距离epsilon
,则直接返回起始点和终止点就可以了。由于最大距离离这条直线也不远,因此可以把所有的点都看做在这条直线上,相当于把整个路径按照首尾拉直了。
如果max
大于设定的距离epsilon
,那么开始递归,以点P为中心将线段分为两部分,每一部分都重复上述过程,直到递归结束,相当于对两部分各自拉直。