TEB参数说明

  • 一. 参数说明
    • 1.Trajectory
    • 2.Robot
    • 3. GoalTolerance
    • 4.Obstacles
    • 5.Optimization
    • 6. Homotopy Class Planner
    • 7.Recovery
  • 二.调试手记

一. 参数说明

teb_local_planner的参数较多,分为以下几类

1.Trajectory

 #*******************************************************************************# Trajectory#*******************************************************************************teb_autosize: True #优化期间允许改变轨迹的时域长度#TEB通过状态搜索树寻找最优路径,而dt_ref则是最优路径上的两个相邻姿态#(即位置、速度、航向信息,可通过TEB可视化在rivz中看到)的默认距离#此距离不固定,规划器自动根据速度大小调整这一距离,速度越大,相邻距离自然越大,#较小的值理论上可提供更高精度dt_ref: 0.3               #局部路径规划的解析度dt_hysteresis: 0.1        #允许改变的时域解析度的浮动范围, 一般为 dt_ref 的 10% 左右;max_samples: 200          #global_plan_overwrite_orientation: True      #覆盖全局路径中局部路径点的朝向allow_init_with_backwards_motion: False      #允许在开始时想后退来执行轨迹#考虑优化的全局计划子集的最大长度(累积欧几里得距离)#如果为0或负数:禁用;长度也受本地Costmap大小的限制max_global_plan_lookahead_dist: 2.5global_plan_viapoint_sep: -1  #从全局路径中选取的每两个连续通过点之间的最小间隔global_plan_prune_distance: 1  #该参数决定了从机器人当前位置的后面一定距离开始裁剪#如果为真,规划器在速度、加速度和转弯率计算中使用精确的弧长[增加的CPU时间],否则使用欧几里德近似。exact_arc_length: False#在判断生成的轨迹是否冲突时使用,此时设置为3,即从轨迹起点开始逐个检查轨迹上的3个点,#若3个点均不发生碰撞,则认为本次轨迹有效。若小于0则检查所有路径点feasibility_check_no_poses: 3   #检测位姿可到达的时间间隔publish_feedback: False        #发布包含完整轨迹和活动障碍物列表的规划器反馈

2.Robot

#*******************************************************************************# Robot
#*******************************************************************************max_vel_x: 0.3             #最大x前向速度max_vel_x_backwards: 0.05  #最大x后退速度max_vel_y: 0.0             #最大y方向速度max_vel_theta: 0.25        #最大转向角速度acc_lim_x: 0.15            #最大x加速度acc_lim_theta: 0.15        #最大角速度min_turning_radius: 0.0    #车类机器人的最小转弯半径

阿克曼底盘配置参数

 #********************** Carlike robot parameters ********************
min_turning_radius: 0.5     #车类机器人的最小转弯半径
#(compute value using a model or adjust with rqt_reconfigure manually)
wheelbase: 0.4         # Wheelbase of our robot 驱动轴和转向轴之间的距离
#(仅适用于启用了“Cmd_angle_而不是_rotvel”的Carlike机器人);对于后轮式机器人,该值可能为负值
cmd_angle_instead_rotvel: True #将收到的角速度消息转换为 操作上的角度变化

底盘模型设置

 # types: "point", "circular", "two_circles", "line", "polygon"footprint_model:
#type: "polygon"    #多边形
#vertices: [[-0.3, -0.2], [0.3, -0.2], [0.3, 0.2], [-0.3, 0.2]]type: "circular"   #圆radius: 0.25 # for type "circular"#line_start: [0.0, 0.0] # for type "line" #直线#line_end: [0.4, 0.0] # for type "line"#front_offset: 0.2 # for type "two_circles" #front_radius: 0.2 # for type "two_circles"#rear_offset: 0.2 # for type "two_circles"#rear_radius: 0.2 # for type "two_circles"

3. GoalTolerance

  #*******************************************************************************# GoalTolerance#*******************************************************************************xy_goal_tolerance: 0.05   #目标 xy 偏移容忍度yaw_goal_tolerance: 0.1   #目标 角度 偏移容忍度free_goal_vel: False      #允许机器人以最大速度驶向目的地,为False时,车到达终点时的目标速度为0;complete_global_plan: True

4.Obstacles

 #*******************************************************************************# Obstacles#*******************************************************************************min_obstacle_dist: 0.22                     #和障碍物最小距离inflation_dist: 0.2                         #障碍物膨胀距离include_costmap_obstacles: True             #costmap 中的障碍物是否被直接考虑costmap_obstacles_behind_robot_dist: 0.5    #规划时考虑后面n米内的障碍物obstacle_poses_affected: 10                 #障碍物姿态受影响程度0-30dynamic_obstacle_inflation_dist: 0.4      #动态障碍物的膨胀范围include_dynamic_obstacles: False          #是否将动态障碍物预测为速度模型

5.Optimization

#*******************************************************************************# Optimization#*******************************************************************************no_inner_iterations: 5         #被外循环调用后内循环执行优化次数no_outer_iterations: 4         #执行的外循环的优化次数执行的外循环的优化次数optimization_activate: True    #激活优化optimization_verbose: False    #打印优化过程详情penalty_epsilon: 0.1           #对于硬约束近似,在惩罚函数中添加安全范围obstacle_cost_exponent: 4weight_max_vel_x: 2            #最大x速度权重 0~2weight_max_vel_theta: 1        #最大角速度权重 0~1weight_acc_lim_x: 1            #最大x 加速度权重 0~1weight_acc_lim_theta: 1        #最大角速度权重 0~1weight_kinematics_nh: 1000     #非完整运动学的优化权重weight_kinematics_forward_drive: 5     #优化过程中,迫使机器人只选择前进方向,差速轮适用weight_kinematics_turning_radius: 1    #优化过程中,车型机器人的最小转弯半径的权重weight_optimaltime: 0.3 # must be > 0  #优化过程中,基于轨迹的时间上的权重weight_shortest_path: 0weight_obstacle: 100           #优化过程中,和障碍物最小距离的权重 0~50weight_inflation: 0.3          #优化过程中, 膨胀区的权重weight_dynamic_obstacle: 10    #优化过程中,和动态障碍物最小距离的权重weight_dynamic_obstacle_inflation: 0.2  #优化过程中,和动态障碍物膨胀区的权重 0~50weight_viapoint: 1             #优化过程中,和全局路径采样点距离的权重weight_adapt_factor: 2

6. Homotopy Class Planner

 #*******************************************************************************# Homotopy Class Planner#*******************************************************************************enable_homotopy_class_planning: true   #激活并行规划enable_multithreading: True            #允许多线程并行处理max_number_classes: 3                  #考虑到的不同轨迹的最大数量selection_cost_hysteresis: 1.0selection_prefer_initial_plan: 0.9selection_obst_cost_scale: 100.0selection_alternative_time_cost: Falseroadmap_graph_no_samples: 15       #指定为创建路线图而生成的样本数roadmap_graph_area_width: 6        #指定该区域的宽度roadmap_graph_area_length_scale: 1.0h_signature_prescaler: 0.5         #(0.2 < value <= 1)缩放用于区分同伦类的内部参数h_signature_threshold: 0.1         #如果实部和复部的差都低于规定的阈值,则假定两个h签名相等。obstacle_heading_threshold: 0.45   #在障碍物航向和目标航向之间指定标量乘积的值,以便将障碍物考虑在内进行探索switching_blocking_period: 0.0     #指定允许切换到新的等效类之前需要终止的持续时间#为true,则将不同拓扑的所有轨迹附加到该组通孔点,否#则仅将与初始/全局计划共享相同拓扑的轨迹与它们连接 (对test_optim_node无效)viapoints_all_candidates: True delete_detours_backwards: True max_ratio_detours_duration_best_duration: 3.0visualize_hc_graph: False          #可视化创建的图形,用于探索不同的轨迹visualize_with_time_as_z_axis_scale: False  #在rviz里可看到优化使用的graph

7.Recovery

 #*******************************************************************************# Recovery#*******************************************************************************#当规划器检测到系统异常,允许缩小时域规划范围,TEB将以更近的点作为规划目标,尝试重新规划出可行路径;shrink_horizon_backup: false         shrink_horizon_min_duration: 10  #如果检测到不可行的轨迹,激活缩小的水平线后备模式,本参数为其最短持续时间。oscillation_recovery: True       #尝试检测和解决振荡
oscillation_v_eps: 0.1          #(0,1)内的 normalized 线速度的平均值的阈值,判断机器人是否运动异常
oscillation_omega_eps: 0.1      #(0,1)内的 normalized 角速度的平均值,判断机器人是否运动异常
oscillation_recovery_min_duration: 10  #在这个时间内,是否再次发生FailureDetector检测的振荡
oscillation_filter_duration: 10  #failure_detector_中buffer容器的大小为oscillation_filter_duration * controller_frequency

其中oscillation_v_eps和oscillation_omega_eps是用来判断速度是否震荡的阈值,
这里将速度归一化到[0,1]区间,所以配置中这两个值的区间也在(0,1)
震荡判断:

//如果线速度和角速度均值小于阈值,且方向震荡,则判定机器人处于震荡状态
if (std::abs(v_mean) < v_eps && std::abs(omega_mean) < omega_eps && omega_zero_crossings>1 )
{oscillating_ = true;
}

二.调试手记

TEB算法2-teb参数说明及调试小记相关推荐

  1. TEB算法详解 参数详解

    teb算法的基本思路之前已经看完了,今天主要看一下teb算法的参数配置文件,分析一下每个配置参数的作用: teb的参数主要可以包含以下几个部分: 1.Trajectory Trajectory的参数顾 ...

  2. TEB算法详解(TebLocalPlannerROS::computeVelocityCommands(1))

    "TEB"全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification),从而优化机 ...

  3. TEB算法详解(TebLocalPlannerROS::computeVelocityCommands(2))

    上一章主要研究了一下teb算法中局部路径规划之前的处理,包括了局部地图的处理.初始位姿.机器人当前速度以及从全局路径中如何提取出局部路径等内容.这一章继续看一下teb算法中对于局部路径规划的运动部分处 ...

  4. 深度科普:拆解让机器人走路更「丝滑」的TEB算法

    导航模块,是实现机器人移动功能的重要能力,主要包括全局路径规划和局部路径规划.本文将带大家深度认识局部路径规划,以及TEB算法的规划原理和参数配置. 01 机器人局部路径规划 当我们旅游迷路了,想必大 ...

  5. TEB算法详解(TebLocalPlannerROS::computeVelocityCommands(3))

    第一章主要分析了teb算法的准备条件,包括获取当前位姿与速度.对全局路径的裁减以获取局部路径等以及局部地图的获取等.第二章主要讲述了在获取前置条件后,如何根据前置条件进行位姿优化,teb的路径优化主要 ...

  6. GD32F303调试小记(三)之IIC(硬件IIC+PCF8563实时时钟)

    前言 前面的文章介绍了在单片机中常用的两种通信协议(USART和SPI),并给出了GD32F303对应的配置流程.这次介绍第三种常见的通信协议IIC.这此使用GD32的硬件IIC通信PCF8563实时 ...

  7. GD32F303调试小记(一)之USART(接收中断、接收空闲中断+DMA、发送DMA)

    前言 之前写了GD32F103调试小记(二)之USART(接收中断.接收空闲中断+DMA.发送DMA)一文.这次我们来看看GD32F303的USART是如何配置的,结合这两篇文章,相信大家GD32的U ...

  8. GD32F303调试小记(二)之SPI(软件SPI、硬件SPI、硬件SPI+DMA)

    前言 目前有一个项目中用到了TFT-LCD,其驱动芯片为ILI9341.为更好的达到显示效果,在最终的代码中我们会使用单片机自带的硬件SPI+DMA模块(由于调试过程中SPI+DMA输出的波形没能驱屏 ...

  9. ROS——Teb算法的优化

    一.简介 "TEB"全称Time Elastic Band(时间弹性带)Local Planner,该方法针对全局路径规划器生成的初始轨迹进行后续修正(modification), ...

最新文章

  1. 【机器学习入门】(2) 朴素贝叶斯算法:原理、实例应用(文档分类预测)附python完整代码及数据集
  2. java 随机数生成实现_Java中生成随机数的实现方法总结
  3. 平方的观测值表概率_茆诗松的概率论与数理统计(第六章)
  4. javsscript练习
  5. Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
  6. python关机linux_Python学习第157课——Linux切换用户、关机、查看正在运行的程序...
  7. TikZ绘图示例——尺规作图: 椭圆的近似画法
  8. SSM框架笔记09:初探Spring——采用Java配置方式
  9. python猴子吃桃子的问题_非人哉:明星带货却生意惨淡,猴哥心太大,这一帮猴子猴孙不省心...
  10. “Null 是价值十亿美元的错误!”
  11. 手动创建线程池_创建线程池
  12. Apache NiFi简介
  13. 我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
  14. Queen Collisions
  15. SpringCloud实现微服务商城架构开源项目
  16. mysql综训实训报告总结_实训报告总结收获.doc
  17. 微信公众号开发(4)-实现PC扫码登录
  18. 这可能是京东考前焦虑最重的一次618
  19. IDEA安装和使用教程,idea 安装本地插件
  20. 65个外贸小心思,让你稳步赢得客户

热门文章

  1. android蓝牙传文件在哪里找,手机蓝牙传输的文件在哪里_华为手机蓝牙传输记录在哪-系统城...
  2. 把时间沉淀到自己的热爱里 | Kagol 的 2022 年终总结
  3. Linux需要学什么
  4. commander、ora、chalk、inquirer使用
  5. vue中,应用mapbox地图——地图组件mapbox-gl和语言包@mapbox/mapbox-gl-language地图英文转中文 accesstokens-访问令牌移动端地图-leaflet
  6. python随机函数random、画、星轨_教你绘制梵高的星空
  7. 华科计算机考研2021年分数,华中科技大学2021考研分数线已公布
  8. 记QQ群里一次sql优化
  9. Halcon17完美破解兼容17.12.0.0附破解说明
  10. 用python对excel进行单元格操作