CA9导航相关参数说明
位于路径(106主机):
/opt/robot/share/planner/config/
一、basic_server:
basic_server中有部分参数与导航部分参数重叠,实现时以basic_server中的参数文件basic_server_new.toml为准:
[Base]
Version = "0.0.1" #配置文件版本
[PowerManagement]
[PowerManagement.Sleep]
time = 5 #min
Auto = true #是否自动进入休眠
[PowerManagement.Battery]
sigleBatteryMode = true #是否自动启动单电池模式,关闭后不会进入单电池模式
[Nav]
###################################### 统一配置项 ###################
[Nav.COMMON]
maxSpeedY = 1.0 #Y最大线速度
maxTheta = 1.0 #yaw角速率最大值
yaw_tolerance = 0.1 #与目标的yaw角度容差
xy_tolerance = 0.1 #与目标的坐标距离容差
###################################### Nav.AUTO.FLAT 自主平地###################
[Nav.AUTO.FLAT.LOW_SPEED]
maxSpeedX = 0.5 #X最大线速度
barking_deceleration = 2.0 #直线导航 - 减速率,值越大减速越快
stop_distance = 0.6 #直线导航 - 停障距离
dl_min_yaw = 0.7 #直线导航 - 最小yaw角速率
dl_min_x = 0.25 #直线导航 - 最小x线速度
dl_min_y = 0.3 #直线导航 - 最小y线速度
dl_line_yaw_min = 0.35 #直线导航 - 直线纠偏最小yaw速度
[Nav.AUTO.FLAT.NORMAL_SPEED]
maxSpeedX = 1.0
barking_deceleration = 2.0
stop_distance = 0.85
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.35
[Nav.AUTO.FLAT.HIGH_SPEED]
maxSpeedX = 1.5
barking_deceleration = 1.5
stop_distance = 1.3
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.35
###################################### Nav.AUTO.STAIR 自主楼梯###################
[Nav.AUTO.STAIR.LOW_SPEED]
maxSpeedX = 0.5
barking_deceleration = 2.0
stop_distance = 0.6
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.35
[Nav.AUTO.STAIR.NORMAL_SPEED]
maxSpeedX = 1.0
barking_deceleration = 2.0
stop_distance = 0.6
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.35
[Nav.AUTO.STAIR.HIGH_SPEED]
maxSpeedX = 1.5
barking_deceleration = 1.5
stop_distance = 1.3
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.35
###################################### Nav.DIRECTLINE.FLAT 直线平地###################
[Nav.DIRECTLINE.FLAT.LOW_SPEED]
maxSpeedX = 0.5
barking_deceleration = 2.0
stop_distance = 0.6
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
[Nav.DIRECTLINE.FLAT.NORMAL_SPEED]
maxSpeedX = 1.2
barking_deceleration = 2.0
stop_distance = 0.85
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
[Nav.DIRECTLINE.FLAT.HIGH_SPEED]
maxSpeedX = 2.0
barking_deceleration = 1.5
stop_distance = 1.3
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
###################################### Nav.DIRECTLINE.STAIR 直线楼梯###################
[Nav.DIRECTLINE.STAIR.LOW_SPEED]
maxSpeedX = 0.8
barking_deceleration = 2.0
stop_distance = 0.6
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
[Nav.DIRECTLINE.STAIR.NORMAL_SPEED]
maxSpeedX = 1.0
barking_deceleration = 2.0
stop_distance = 0.85
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
[Nav.DIRECTLINE.STAIR.HIGH_SPEED]
maxSpeedX = 1.2
barking_deceleration = 2.0
stop_distance = 0.6
dl_min_yaw = 0.7
dl_min_x = 0.25
dl_min_y = 0.3
dl_line_yaw_min = 0.25
## ==========================以下参数与导航无关========================================
[Nav.Charge]
waitEnable = true
waitTime = 5 #min
[Nav.Go2Piont]
enable = false #到点超时判断使能 true:开启判断
time = 30 #到点超时时间 s
distance = 0.5 #到点距离 m
[Nav.Loop]
LoopEnable = false #任务自动循环执行使能
waitTime = 60 #s 秒
LoopCnt = 5 #额外循环次数
[Device]
[FibocomGPS]
[FibocomGPS.ifFibocomGPS]
ifFibocomGPS = true
二、局部规划器参数(对应local_planner)
2.1 local_planner.yaml
- 与basic_server包
basic_server_new.toml中重叠的参数:
directLine_mode: true # 【在basic_server修改】 true:[直线导航] ;false:[自主导航]
xy_tolerance: 0.1 # 【在basic_server修改】位置是否到达目标点的判断阈值
yaw_tolerance: 0.1 # 【在basic_server修改】姿态容差
maxSpeedX: 1.5 # 【在basic_server修改】速度上限
maxSpeedY: 0.6
maxTheta: 1.0
# ------------ 直线导航相关 ------------------------
stop_distance: 1.5 # 【在basic_server修改】[直线导航]- 停障距离
dl_min_yaw: 0.7 # 【在basic_server修改】[直线导航]- 最小yaw角速度
dl_min_x: 0.25 # 【在basic_server修改】[直线导航]- 最小x线速度
dl_min_y: 0.25
dl_line_yaw_min: 0.2 # 【在basic_server修改】直线纠偏最小yaw速度,运动过程中yaw纠正的补偿
- 通用参数:
robotLength: 0.9 # 机体大小,用于碰撞检测
robotWidth: 0.45
sensorOffsetX: 0 # 传感器偏移量 (坐标系转换使用)
sensorOffsetY: 0
## ------ 【碰撞相关】 ---------------
block_number: 3 # 碰撞检测参数,路径碰撞/yaw旋转/直线导航碰撞 中,碰撞超过此系数,视为失败
## ------- 【全局规划相关】 -----------
lookAheadDis: 1.5 # 从global_planner中,选择目标点的前向累积距离阈值
global_count_range: 11 # 将筛选的全局点作为局部规划目标的次数,超过此阈值则直接将目标设为终点
# ---- 急转弯与曲率检测 ----
judge_turn: false # 是否进行急转弯检测
angleThreshold: 30.0 # 急转弯检测 角度阈值 --> 用于轨迹曲率大小判断
sumAngleThreshold: 75.0 # 累积转弯角度阈值 --> 用于轨迹曲率大小判断
minSegmentLength: 0.02 # 轨迹曲率大小判断中,每小段距离最小值,如果过小,则不进行判断
- 自主导航:
## ========= 路径模板筛选相关 =================
pointPerPathThre: 2 # [自主导航] 中,DWA路径模板初次筛选的阈值,记录碰撞次数大于此阈值,筛掉
weight_goal: 1.0 # [自主导航] - DWA筛选 - 目标距离权重
weight_yaw: 0.5 # [自主导航] - DWA筛选 - yaw角距离权重
weight_spdy: 0.2 # [自主导航] - DWA筛选 - 速度权重
weight_ob1: 0.6 # [自主导航] - DWA筛选 - 三个列表权重
weight_ob2: 0.8
weight_ob3: 1.0
speed_ratio: 1.0 # 速度比率, [自主导航]-DWA筛选 - 计算与目标距离相关参数,控制局部目标点
# 距离,如果调大,则局部目标点变近,则整体速度变慢
speed_ratio_yaw: 1.0 # 角速度比率
enable_goal_turn: false # [自主导航]模式下,当距离较远,为true且符合其他判断,则先进行转向
- 直线导航:
close_deceleration: 2.0 # 到点减速率(接近目标时,两个模式都用)
- yaml配置文件完整版:
#导航参数
robotLength: 0.9 # 机体大小,用于碰撞检测
robotWidth: 0.45
sensorOffsetX: 0 # 传感器偏移量 (坐标系转换使用)
sensorOffsetY: 0
# -----------[在点云处理中, 此处暂时不使用]--------------------
laserVoxelSize: 0.05 # 雷达体素分辨率
adjacentRange: 8.00 # 雷达点云过滤 xy欧式距离范围
obstacleHeightThre : 0.15 # 超过此系数高度的点云用于计算惩罚项
minRelZ: -0.5 # 雷达点云过滤z范围 [自主导航] 中,点云预处理(step2)
maxRelZ: 0.5
# -------------------------------------------
pointPerPathThre: 2 # [自主导航] 中,DWA路径模板初次筛选的阈值,记录碰撞次数大于此阈值,筛掉
directLine_mode: true # 【在basic_server修改】 true:[直线导航] ;false:[自主导航]
xy_tolerance: 0.1 # 【在basic_server修改】位置是否到达目标点的判断阈值
yaw_tolerance: 0.1 # 【在basic_server修改】姿态容差
block_number: 3 # 碰撞检测参数,路径碰撞/yaw旋转/直线导航碰撞 中,碰撞超过此系数,视为失败
stop_distance: 1.5 # 【在basic_server修改】[直线导航]- 停障距离
weight_goal: 1.0 # [自主导航] - DWA筛选 - 目标距离权重
weight_yaw: 0.5 # [自主导航] - DWA筛选 - yaw角距离权重
weight_spdy: 0.2 # [自主导航] - DWA筛选 - 速度权重
weight_ob1: 0.6 # [自主导航] - DWA筛选 - 三个列表权重
weight_ob2: 0.8
weight_ob3: 1.0
lookAheadDis: 1.5 # 从global_planner中,选择目标点的前向累积距离阈值
maxSpeedX: 1.5 # 【在basic_server修改】速度上限
maxSpeedY: 0.6
maxTheta: 1.0
barking_deceleration: 1.0 # 【在basic_server修改】减速率
judge_close: false # 是否关闭停障 -- [直线导航]
change_close: true # 控制是否检测碰撞
backward_mode: false # 后退模式,影响角度计算
# ======= LQR相关,目前没用到 =============
Q1: 100
Q2: 60
R1: 1
# ======================================
angleThreshold: 30.0 # 急转弯检测 角度阈值 --> 用于轨迹曲率大小判断
sumAngleThreshold: 75.0 # 累积转弯角度阈值 --> 用于轨迹曲率大小判断
minSegmentLength: 0.02 # 轨迹曲率大小判断中,每小段距离最小值,如果过小,则不进行判断
trackDis: 0.5 # 追踪距离 (暂时不用)
speed_ratio: 1.0 # 速度比率, [自主导航]-DWA筛选 - 计算与目标距离相关参数,控制局部目标点
# 距离,如果调大,则局部目标点变近,则整体速度变慢
speed_ratio_yaw: 1.0
judge_turn: false # 是否进行急转弯检测
enable_goal_turn: false # [自主导航]模式下,当距离较远,为true且符合其他判断,则先进行转向
global_count_range: 11 # 将筛选的全局点作为局部规划目标的次数,超过此阈值则直接将目标设为终点
# ============== 直线导航 (对应2个步态,3个速度模式) ======================
dl_min_yaw: 0.7 # [直线导航]- 最小yaw角速度
dl_min_x: 0.25 # [直线导航]- 最小x线速度
dl_min_y: 0.25
dl_line_yaw_min: 0.2 # 直线纠偏最小yaw速度,运动过程中yaw纠正的补偿 #(15kg负载时候需要改为0.3,如果走直线偏移较大,需要设置更大的值)
close_deceleration: 2.0 # 到点减速率(接近目标时,两个模式都用)
## ----- 目前没用上 -----------
proximity_distance: 0.5 #(m) 接近目标阈值,进入此范围后开始计时,如果超时报送警告
warning_threshold: 10.0 # 监视器超时阈值
input_source: /NAV_POINTS # 点云输入话题
2.2 pcl_pass_grid.yaml--实时点云图处理相关
#点云参数
# ========== 外部点云截取范围 =====================
out_minx: -4.0
out_maxx: 4.0
out_miny: -4.0
out_maxy: 4.0
out_minz: -0.3 # 点云截取Z轴最小值,以机器人中心为原点
out_maxz: 1.0 # 点云截取Z轴最大值,以机器人中心为原点
# ========= 内部地形图截取范围 ====================
in_minx: -0.4
in_maxx: 0.4
in_miny: -0.2
in_maxy: 0.2
in_minz: -0.3 # 与out_minz修改成一致的参数
in_maxz: 1.0 # 与out_maxz修改成一致的参数
# ==============================================
serach_radius: 0.1
minNeighbors: 4

图片内容(已识别并结合上下文整理): 三维坐标示意图展示了以机器人为中心的局部搜索/约束空间:X、Y、Z 三个方向共同限定一个立体范围,用于说明搜索半径和邻域参数影响的是机器人周围的空间点集。
三、118新增参数
3.1 直线导航中的均匀加减速
参数位于local_planner.yaml
## 均匀加减速相关参数
vel_acc_threshold: 1.0 # 加速阈值(m/s):超过此速度需要平滑加速,小于此速度可直接响应
x_acc_increment: 0.05 # x方向每周期速度增量(m/s) --> 10hz acc = 10 * x_acc_increment
含义为,当速度小于vel_acc_threshold时,直接输出给狗,如果大于vel_acc_threshold,则按照每100ms增加x_acc_increment来逐步增加速度指令。
如果觉得狗加减速过猛,可以先调小vel_acc_threshold,再调小x_acc_increment