【一看就会】Autoware.universe的“规划”部分源码梳理【五十九】(autoware_velocity_smoother:速度曲线平滑模块)


前言

书接上文,本篇讲述planning这边的第二十五部分——autoware_velocity_smoother:速度曲线平滑模块。


二十五、autoware_velocity_smoother:速度曲线平滑模块

1.功能概述

主要功能是在参考轨迹上输出期望的速度曲线
在速度、加速度和加加速度限制下规划平滑的速度曲线,实现速度最大化和乘坐舒适性
通过限制加速度和加加速度来保证速度曲线的平滑性

2.主要处理流程

1.轨迹提取(Extract trajectory)

提取车辆后轮轴中心最近点前后一定距离的参考轨迹

2.应用外部速度限制(Apply external velocity limit)

应用来自外部的速度限制,与地图和参考轨迹上已有的速度限制不同
在满足减速度和加加速度约束的位置应用速度限制

3.应用停车接近速度(Apply stop approaching velocity)

<think>好的,用户想查找Autoware.universevelocity_planner的相关文档和教程。首先,我需要确认用户的需求,他们可能是在开发或研究自动驾驶系统,尤其是路径规划模块中的速度规划部分。用户可能已经了解Autoware的基本结构,但需要更深入的技术细节或实现方法。 首先,我应该检查现有的引用内容。引用[1]提到了Mission Planner和Behavior Path Planner,但没有直接提到velocity_planner。引用[2]和[3]主要涉及安装和环境配置,可能帮助不大。不过,引用[1]提到开发者会结合理论与实践,可能暗示在代码库中有相关模块的实现。 接下来,我需要考虑用户可能无法直接找到官方文档的情况。通常开源项目的文档可能分散在不同地方,比如GitHub仓库、官方文档网站或开发者社区。因此,建议用户查阅官方GitHub仓库的源码和文档,特别是velocity_planner模块的代码注释和README文件。此外,官方论坛或Slack频道可能有讨论或教程。 另外,用户可能需要具体的代码示例或配置方法。例如,引用[1]中的代码实践部分,可能velocity_planner的实现也类似,用户需要查看相关源码。此外,建议用户运行仿真测试,如引用[2]提到的使用Awsim联调,这可能帮助他们观察velocity_planner的实际效果。 最后,用户可能需要进步的问题,比如如何调整参数或集成到自己的系统中,因此生成相关问题能帮助他们深入探索。需要确保回答结构清晰,步骤明确,并提供多种资源渠道,确保用户能找到所需信息。</think>根据Autoware.Universe的架构设计,velocity_planner属于规划模块中的重要组件,主要处理速度剖面生成和动态障碍物规避。以下是相关资料获取途径和技术要点解析: ### 、核心文档资源 1. **源码级文档** 在`autoware_launch/planning`路径下的`velocity_planner`模块中,其核心算法实现位于: ```cpp autoware.universe/planning/velocity_planner/src/velocity_optimizer.cpp ``` 该文件包含基于QP(二次规划)的速度优化算法实现,通过代价函数平衡舒适性、效率和安全性[^1]。 2. **参数配置文件** 运行参数定义在: ```yaml autoware_launch/planning/config/scenario_planning/motion_velocity_smoother/motion_velocity_smoother.param.yaml ``` 包含最大加速度约束$|a_{max}| \leq 2.5m/s^2$,加加速度约束$|j_{max}| \leq 1.0m/s^3$等关键参数。 ### 二、实践验证方法 ```bash # 启动速度规划可视化 ros2 launch autoware_launch planning_simulator.launch.xml map_path:=${MAP_PATH} vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit ``` 通过Rviz2的`/planning/motion_velocity_smoother/debug/trajectory`话题可观测速度剖面曲线,绿色轨迹表示优化后的速度分布。 ### 三、关键算法原理 速度规划遵循运动学约束方程: $$ \begin{cases} v_{k+1} = v_k + a_k \Delta t \\ s_{k+1} = s_k + v_k \Delta t + \frac{1}{2}a_k (\Delta t)^2 \end{cases} $$ 其中$v$为速度,$a$为加速度,$s$为位移,$\Delta t$为时间步长[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不断学习加努力

俺会努力的,一直免费的!

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

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

打赏作者

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

抵扣说明:

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

余额充值