- 本教程来自:Nav2中文网
- Nav2交流社区:https://fishros.org.cn/forum
- ROS2/Nav2千人交流群:(QQ)139707339
- 更多精彩教程请关注微信公众号:鱼香ROS
- 欢迎添加机器人小伊微信,解锁机器人学习特殊服务
Smac国家格规划器 [待校准@3247]
参数 <name>
是为此类型选择的对应的planner插件账号。 [待校准@2730]
注意: 由于最小控制集与生成时的地图分辨率相关联,状态晶格没有costmap下采样器。最小转弯半径也不是状态晶格中的参数,因为这是在最小控制集预计算阶段指定的。请参阅Smac规划器包,为您的车辆生成自定义控制集,或使用我们预先生成的示例之一。 [待校准@3249]
上图你可以看到反向扩展已启用,这样机器人就可以回到靠近障碍物的紧张要求的位置。 [待校准@3250]
参数
<name>
.allow_unknown
类型 | 默认值 |
---|---|
bool | True |
描述是否允许在未知空间中遍历/搜索。 [待校准@3193]
<name>
.max_iterations [待校准@3194]
类型 | 默认值 |
---|---|
int | 1000000 [待校准@3195] |
描述未能限制计算时间之前的最大搜索迭代次数,由-1禁用。 [待校准@3196]
<name>
.max_planning_time [待校准@3200]
类型 | 默认值 |
---|---|
double | 5.0 [待校准@2659] |
描述最大计划时间 (秒)。 [待校准@3201]
<name>
.analytic_expansion_ratio [待校准@3218]
类型 | 默认值 |
---|---|
double | 3.5 [待校准@3219] |
描述SE2节点将尝试用与该值成比例的频率和最小启发式方法来完成解析扩展。 [待校准@3251]
<name>
.analytic_expansion_max_length [待校准@3221]
类型 | 默认值 |
---|---|
double | 3.0 [待校准@2948] |
描述如果长度太远,则拒绝此扩展。这防止了不安全的捷径进入远离目标本身的高成本区域,让搜索在分析扩展将其带回家之前接近的工作。这绝不应该小于使用的最小转弯半径的4-5倍,否则计划时间将开始增加。 [待校准@3222]
<name>
.reverse_penalty [待校准@3230]
类型 | 默认值 |
---|---|
double | 2.0 |
描述如果反向搜索,将启发式惩罚应用于SE2节点。仅用于 allow_reverse_expansion<span> =<span> true
。 [待校准@3252]
<name>
.change_penalty [待校准@3232]
类型 | 默认值 |
---|---|
double | 0.05 |
描述如果在搜索中改变方向 (例如从左到右),将对SE2节点施加启发式惩罚。 [待校准@3253]
<name>
.non_straight_penalty [待校准@3234]
类型 | 默认值 |
---|---|
double | 1.05 [待校准@3254] |
描述如果在非直线方向搜索,则适用于SE2节点的启发式惩罚。 [待校准@3236]
<name>
.cost_penalty [待校准@3237]
类型 | 默认值 |
---|---|
double | 2.0 |
描述将启发式惩罚应用于SE2节点的姿态成本。允许状态格知道成本。 [待校准@3255]
<name>
.cost_penalty [待校准@3256]
类型 | 默认值 |
---|---|
double | 5.0 [待校准@2659] |
描述Penalty to apply for rotations in place, if minimum control set contains in-place rotations. This should always be set sufficiently high to weight against in-place rotations unless strictly necessary for obstacle avoidance or there may be frequent discontinuities in the plan where the plan requests the robot to rotate in place to short-cut an otherwise smooth forward-moving path for marginal path distance savings. [待校准@3257]
<name>
.lattice_filepath [待校准@3258]
类型 | 默认值 |
---|---|
string | “” [待校准@2379] |
描述文件路径到状态晶格最小控制集图形,这将默认为位于 test/
的16箱,0.4米转弯半径控制集,用于基本测试和评估。 [待校准@3259]
<name>
.lookup_table_size [待校准@3239]
类型 | 默认值 |
---|---|
double | 20.0 [待校准@2576] |
描述杜宾/芦苇的大小-绵羊到缓存的距离窗口,以米为单位。 [待校准@3240]
<name>
.cache_obstacle_heuristic [待校准@3241]
类型 | 默认值 |
---|---|
bool | false |
描述缓存障碍图动态编程距离扩展启发式算法在相同目标位置的辅助补充之间。如果costmap在很大程度上是静态的,则极大地加快了重新规划性能 (40倍)。 [待校准@3242]
<name>
.allow_reverse_expansion [待校准@3260]
类型 | 默认值 |
---|---|
bool | false |
描述如果为true,则允许机器人使用原语在镜像方向上扩展当前机器人方向的相反方向 (反向)。 [待校准@3261]
<name>
.smooth_path [待校准@3243]
类型 | 默认值 |
---|---|
bool | true [待校准@2813] |
描述如果为true,则对从搜索到路径的后处理进行简单快速的平滑处理 [待校准@3244]
参数 <name>
.平滑器.最大 _ 迭代 [待校准@3207]
类型 | 默认值 |
---|---|
int | 1000 [待校准@3198] |
描述平滑器必须平滑路径的最大迭代次数,以绑定潜在计算。 [待校准@3208]
<name>
.smoother.w_smooth
类型 | 默认值 |
---|---|
double | 0.3 |
描述适用于平滑数据点的平滑器重量 [待校准@3210]
<name>
.smoother.w_data
类型 | 默认值 |
---|---|
double | 0.2 |
描述适用于保留原始数据信息的平滑器的重量 [待校准@3212]
参数 <name>
。平滑。公差 [待校准@3213]
类型 | 默认值 |
---|---|
double | 1e-10 [待校准@3214] |
描述终止平滑会话的参数公差更改量 [待校准@3215]
参数 <name>
.平滑器.do_refinement [待校准@3245]
类型 | 默认值 |
---|---|
bool | true [待校准@2813] |
描述执行额外的细化平滑运行。本质上,这使用上一个平滑周期的输出递归调用平滑器,以进一步平滑宏趋势的路径。这通常提高质量,尤其是在混合-A*planner中,但有助于国家晶格planner减少由有限数量的标题引起的国家晶格中的 “blocky” 运动。 [待校准@3262]
Example
planner_server:
ros__parameters:
planner_plugins: ["GridBased"]
use_sim_time: True
GridBased:
plugin: "nav2_smac_planner/SmacPlannerLattice"
allow_unknown: true # Allow traveling in unknown space
max_iterations: 1000000 # Maximum total iterations to search for before failing (in case unreachable), set to -1 to disable
max_planning_time: 5.0 # Max time in s for planner to plan, smooth
analytic_expansion_ratio: 3.5 # The ratio to attempt analytic expansions during search for final approach.
analytic_expansion_max_length: 3.0 # For Hybrid/Lattice nodes: The maximum length of the analytic expansion to be considered valid to prevent unsafe shortcutting
reverse_penalty: 2.0 # Penalty to apply if motion is reversing, must be => 1
change_penalty: 0.05 # Penalty to apply if motion is changing directions (L to R), must be >= 0
non_straight_penalty: 1.05 # Penalty to apply if motion is non-straight, must be => 1
cost_penalty: 2.0 # Penalty to apply to higher cost areas when adding into the obstacle map dynamic programming distance expansion heuristic. This drives the robot more towards the center of passages. A value between 1.3 - 3.5 is reasonable.
rotation_penalty: 5.0 # Penalty to apply to in-place rotations, if minimum control set contains them
lattice_filepath: "" # The filepath to the state lattice graph
lookup_table_size: 20.0 # Size of the dubin/reeds-sheep distance window to cache, in meters.
cache_obstacle_heuristic: false # Cache the obstacle map dynamic programming distance expansion heuristic between subsiquent replannings of the same goal location. Dramatically speeds up replanning performance (40x) if costmap is largely static.
allow_reverse_expansion: false # If true, allows the robot to use the primitives to expand in the mirrored opposite direction of the current robot's orientation (to reverse).
smooth_path: True # If true, does a simple and quick smoothing post-processing to the path
smoother:
max_iterations: 1000
w_smooth: 0.3
w_data: 0.2
tolerance: 1e-10
do_refinement: true
- 本文主要校准贡献:小鱼
- 本文遵循知识共享协议,禁止未授权商用转载