2.5.c Dubins曲线代码解析
category
type
status
slug
date
summary
tags
password
icon
我见青山多妩媚,料青山见我应如是。—辛弃疾
🏰代码及环境配置:请参考 环境配置和代码运行!
本节提供了Dubins曲线的代码测试
2.5.c.1 Dubins曲线代码实现
plan_dubins_path
函数, 是Dubins曲线生成接口. 输入始末点状态和曲率:s_x, s_y, s_yaw, g_x, g_y, g_yaw, curvature
, 输出一组曲线点的状态,组合方式和总长度:x_list, y_list, yaw_list, modes, lengths
_PATH_TYPE_MAP
中存储了Dubins曲线的6种组合方式, 之后先把全局坐标系下的始末点做了平移旋转, 转换到了以起始点为原点的坐标系下. 调用了_dubins_path_planning_from_origin
接口.在
_dubins_path_planning_from_origin
中, 计算了2.5.4中的几个参数: 之后遍历所有组合, 生成曲线.
d1, d2, d3
是3个运动基元曲线的长度, mode
是3个运动基元类型. 在所有曲线中, 挑选总长度最小的作为最佳曲线.
具体的运动基元组合
planner
, 以上一节推导的LSL
为例.d1, d2, d3
对应, 对应是2.5.4提到的正则化, 因为R是1, 角度即是弧长.挑出最佳曲线之后, 需要将坐标转回到全局坐标系. 也要将曲率半径重新乘回去, 收放到正则化之前坐标.
2.5.c.2 Dubins曲线代码测试
在
main()
函数中, 生成了一组始末状态的随机数, 调用接口, 并可视化.上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...