话题
发表的话题
〜<名称> / global_plan(nav_msgs / Path)
- 本地计划者当前正在尝试的全局计划。主要用于可视化目的。
〜<名称> / local_plan(nav_msgs / Path)
- teb_local_planner优化并遵循的本地计划或轨迹。主要用于可视化目的。
〜<名称> / teb_poses(geometry_msgs / PoseArray)
- 当前本地计划的离散姿态列表(SE2)。主要用于可视化目的。
〜<名称> / teb_markers(visualization_msgs / Marker)
- teb_local_planner通过具有不同名称空间的标记来提供规划场景的其他信息。命名空间PointObstacles和PolyObstacles:可视化优化过程中当前考虑的所有点和面障碍。命名空间TebContainer:可视化位于替代拓扑中的所有找到和优化的轨迹(仅当启用并行计划时)。发布了更多信息,例如优化足迹模型。
〜<名称> / teb_feedback(teb_local_planner / FeedbackMsg)
- 反馈消息包含计划的轨迹,包括速度轮廓和时间信息以及障碍物列表。主要用于评估和调试。必须启用参数〜<名称> / publish_feedback。
订阅的主题
〜<名称> / odom(nav_msgs / Odometry)
- 里程表信息可为本地计划者提供机器人的当前速度。通过重新映射或通过更改参数〜<name> / odom_topic来更改此主题。
〜<名称> /障碍(costmap_converter / ObstacleArrayMsg)
- 提供自定义障碍物,如点,线或多边形形状的障碍物(作为成本图障碍物的替代或替代)。
〜<名称> / via_points(nav_msgs / Path)
- 提供自定义通孔(您需要将〜<name> / global_plan_viapoint_sep设置为零或负)
参量
teb_local_planner软件包允许用户设置参数以自定义行为。这些参数分为几类:机器人配置,目标公差,轨迹配置,障碍,优化,独特拓扑规划和其他参数。选择其中一些以符合base_local_planner的要求。可以在运行时使用rqt_reconfigure修改许多(但不是全部)参数。
机器人配置参数
〜<名称> / acc_lim_x(double,默认值:0.5)
- 机器人的最大平移加速度,单位为米/秒^ 2
〜<名称> / acc_lim_theta(double,默认值:0.5)
- 机器人的最大角加速度(弧度/秒^ 2)
〜<名称> / max_vel_x(double,默认值:0.4)
- 机器人的最大平移速度,以米/秒为单位
〜<名称> / max_vel_x_backwards(double,默认值:0.2)
- 向后行驶时,机器人的最大绝对平移速度(米/秒)。请参阅优化参数weight_kinematics_forward_drive
〜<名称> / max_vel_theta(double,默认值:0.3)
- 机器人的最大角速度(弧度/秒)
以下参数仅适用于汽车型机器人:
〜<名称> / min_turning_radius(double,默认值:0.0)
- 车形机器人的最小转弯半径(差速驱动机器人设置为零)。
〜<名称> /轴距(double,默认值:1.0)
- 后桥和前桥之间的距离。对于后轮机器人,该值可能为负(仅当〜<name> / cmd_angle_instead_rotvel设置为true时才需要)。
〜<名称> / cmd_angle_instead_rotvel(bool,默认值:false)
- 用相应的转向角[-pi / 2,pi / 2]代替指令速度消息中的转速。注意,根据应用改变偏航率的语义不是可取的。在这里,它仅符合舞台模拟器所需的输入。ackermann_msgs中的数据类型更合适,但move_base不支持。本地计划程序无意自己发送命令。
以下参数仅与完整的机器人相关:New in ROS kinetic
请注意,请大幅度减少〜<name> / weight_kinematics_nh,以便在顺应性纵向运动与不顺应性横向运动(分层)之间进行权衡。
〜<名称> / max_vel_y(double,默认值:0.0)
- 机器人的最大起步速度(对于非完整机器人,应为零!)
〜<名称> / acc_lim_y(double,默认值:0.5)
- 机器人的最大起步加速度
以下参数与用于优化的封装模型相关(请参阅避免教程和机器人封装模型)。
〜<名称> / footprint_model / type(字符串,默认值:“ point”)
- 指定用于优化的机器人足迹模型类型。不同的类型是“point”,“circular”,“line”,“ two_circles”和“polygon”。模型的类型会显着影响所需的计算时间。
〜<名称> / footprint_model / radius(double,默认值:0.2)
- 该参数仅与“circular”类型相关。它包含圆的半径。圆心位于机器人的旋转轴上。
〜<名称> / footprint_model / line_start(double [2],默认值:[- 0.3,0.0 ])
- 此参数仅与“line”类型相关。它包含线段的起始坐标。
〜<名称> / footprint_model / line_end(double [2],默认值:[ 0.3,0.0 ])
- 此参数仅与“line”类型相关。它包含线段的结束坐标。
〜<名称> / footprint_model / front_offset(double,默认值:0.2)
- 该参数仅与类型“ two_circles”相关。它描述了前圆的中心沿机器人的x轴偏移了多少。假定机器人的旋转轴位于[0,0]。
〜<名称> / footprint_model / front_radius(double,默认值:0.2)
- 该参数仅与类型“ two_circles”相关。它包含前圆的半径。
〜<名称> / footprint_model / rear_offset(double,默认值:0.2)
- 该参数仅与类型“ two_circles”相关。它描述了后圆的中心沿机器人的负x轴偏移了多少。假定机器人的旋转轴位于[0,0]。
〜<名称> / footprint_model / rear_radius(double,默认值:0.2)
- 该参数仅与类型“ two_circles”相关。它包含后圆的半径。
〜<名称> / footprint_model / vertices(double [],默认值:[[0.25,-0.05],[…],…])
- 此参数仅与“polygon”类型相关。它包含多边形顶点的列表(每个2d坐标)。多边形始终是封闭的:不要在末端重复第一个顶点。
〜<名称> / is_footprint_dynamic(bool,默认值:false)
- 如果为true,则在检查轨迹可行性之前更新覆盖区
目标容忍参数
〜<名称> / xy_goal_tolerance(double,默认值:0.2)
- 到达目标点时,在xy平面内与目标点的距离误差,以米为单位
〜<名称> / yaw_goal_tolerance(double,默认值:0.2)
- 允许的最终方向误差(弧度)
〜<名称> / free_goal_vel(bool,默认:false)
- 消除目标速度限制,使机器人可以最大速度到达目标
轨迹配置参数
〜<名称> / dt_ref(double,默认值:0.3)
- 轨迹的所需时间分辨率(由于时间分辨率是优化的一部分,因此轨迹不固定为dt_ref,但是如果违反dt_ref + -dt_hysteresis,则将在迭代之间调整轨迹的大小。
〜<名称> / dt_hysteresis(double,默认值:0.1)
- 用于根据当前时间分辨率自动调整大小的磁滞,通常大约为 建议使用dt_ref的 10%
〜<名称> / min_samples(int,默认值:3)
- 最小样本数(应始终大于2)
〜<名称> / global_plan_overwrite_orientation(bool,默认:true)
- 覆盖全局计划者提供的本地子目标的方向(因为它们通常仅提供2D路径)
〜<名称> / global_plan_viapoint_sep(double,默认值:-0.1(禁用))
- 如果为正,则从全局计划中引出通孔点(路径跟随模式)。该值确定参考路径的分辨率(如果为负值,则禁用全局规划中每两个连续通孔之间的最小距离)。请参阅参数weight_viapoint以调整强度。0.4版新功能
〜<名称> / max_global_plan_lookahead_dist(double,默认值:3.0)
- 指定要进行优化的全局计划子集的最大长度(累积欧几里得距离)。然后,实际长度由本地成本图大小和此最大界限的逻辑结合确定。设置为零或负数以停用此限制。
〜<名称> / force_reinit_new_goal_dist(double,默认值:1.0)
- 如果先前目标的间隔大于指定值(以米为单位),则重新初始化轨迹(跳过热启动)
〜<名称> / feasibility_check_no_poses(int,默认值:4)
- 指定在每个采样间隔内应检查可行性的预测计划上的姿势。
〜<名称> / publish_feedback(bool,默认值:false)
- 发布包含完整轨迹和活动障碍物列表的计划者反馈(仅应启用评估或调试)。请参阅上面的发行商列表。
〜<名称> / shrink_horizon_backup(bool,默认:true)
- 在自动检测到问题(例如,不可行)的情况下,允许计划者临时缩小范围(50%)。另请参阅参数shrink_horizon_min_duration。
〜<名称> / allow_init_with_backwards_motion(bool,默认值:false)
- 如果为true,则在目标在本地成本图中落后于起点的情况下,可以使用向后运动来初始化基础轨迹(仅在机器人装有后传感器的情况下才建议这样做)。
〜<名称> / exact_arc_length(bool,默认值:false)
- 如果为true,则计划程序在速度,加速度和转弯速率计算中使用精确的弧长(->增加的cpu时间),否则使用欧几里得近似。
〜<名称> / shrink_horizon_min_duration(double,默认值:10.0)
- 如果检测到不可行的轨迹,请为缩小的水平线指定最短持续时间(请参考参数shrink_horizon_backup以激活缩小的水平线模式)。
障碍物参数
〜<名称> / min_obstacle_dist(double,默认值:0.5)
- 与障碍物的最小期望距离(以米为单位)
〜<名称> / include_costmap_obstacles(bool,默认:true)
- 指定是否应考虑本地成本图的障碍。标记为障碍物的每个单元均视为点障碍物。因此,请勿选择成本图的非常小的分辨率,因为它会增加计算时间。在将来的版本中,将解决这种情况,并为动态障碍提供附加的api。
〜<名称> / costmap_obstacles_behind_robot_dist(double,默认值:1.0)
- 限制在机器人后面进行规划时要考虑的已占用本地成本图障碍(以米为单位指定距离)。
〜<名称> / obstacle_poses_affected(int,默认值:30)
- 每个障碍物位置都附加到轨迹上最接近的姿势,以保持一定距离。也可以考虑其他邻居。请注意,此参数可能会在将来的版本中删除,因为障碍关联策略已在动力学+中进行了修改。请参阅legacy_obstacle_association的参数描述。
〜<名称> / inflation_dist(double,默认值:动力学前:0.0,动力学+:0.6)
- 惩罚成本不为零的障碍物周围的缓冲区(应大于min_obstacle_dist才能生效)。另请参阅权重weight_inflation。
〜<名称> / include_dynamic_obstacles(bool,默认值:false)
- 如果将此参数设置为true,则将通过等速模型在优化过程中预测并考虑速度为非零的障碍物的运动(通过用户在主题〜/障碍物上提供的障碍物或从costmap_converter获得)。
〜<名称> / legacy_obstacle_association(bool,默认:false)
- 将轨迹姿态与障碍物联系起来以进行优化的策略已被修改(请参阅变更日志)。通过将此参数设置为true,可以切换到旧策略/上一个策略。旧策略:针对每个障碍物,找到最近的TEB姿势;新策略:对于每个姿势,都只能找到“相关”障碍。
〜<名称> / obstacle_association_force_inclusion_factor(double,默认值:1.5)
- 非遗留障碍物关联策略尝试在优化过程中仅将相关障碍物与离散轨迹连接起来。但是,必须将指定距离内的所有障碍物都包括在内(作为min_obstacle_dist的倍数)。例如,选择2.0以便在2.0 * min_obstacle_dist 的半径内强制考虑障碍。[仅当参数legacy_obstacle_association为false时才使用此参数]
〜<名称> / obstacle_association_cutoff_factor(double,默认值:5)
- 见obstacle_association_force_inclusion_factor,但超出[值]的倍数* min_obstacle_dist一切障碍,在优化过程中被忽略。首先处理参数barrier_association_force_inclusion_factor。[仅当参数legacy_obstacle_association为false时才使用此参数]
仅当需要costmap_converter插件时,以下参数才相关(请参阅教程):
〜<名称> / costmap_converter_plugin(字符串,默认值:“”)
- 定义插件名称以将成本图单元格转换为点/线/多边形。设置一个空字符串以禁用转换,以便将所有单元格都视为点障碍。
〜<名称> / costmap_converter_spin_thread(bool,默认:true)
- 如果设置为true,costmap转换器将在另一个线程中调用其回调队列。
〜<名称> / costmap_converter_rate(double,默认值:5.0)
- 费率,用于定义costmap_converter插件处理当前成本图的频率(该值不应比成本图更新率高很多)[以Hz为单位]。
优化参数
〜<名称> / no_inner_iterations(int,默认值:5)
- 每次外部循环迭代中调用的实际求解器迭代次数。参见参数no_outer_iterations。
〜<名称> / no_outer_iterations(int,默认值:4)
- 每次外部循环迭代都会根据所需的时间分辨率dt_ref自动调整轨迹的大小,并调用内部优化器(执行no_inner_iterations)。因此,每个计划周期中求解程序迭代的总数是两个值的乘积。
〜<名称> / penalty_epsilon(double,默认值:0.1)
- 为惩罚函数增加一个小的安全余量,以实现硬约束近似
〜<名称> / weight_max_vel_x(double,默认值:2.0)
- 满足最大允许平移速度的优化权重
〜<名称> / weight_max_vel_theta(double,默认值:1.0)
- 满足最大允许角速度的优化权重
〜<名称> / weight_acc_lim_x(double,默认值:1.0)
- 满足最大允许平移加速度的优化权重
〜<名称> / weight_acc_lim_theta(double,默认值:1.0)
- 满足最大允许角加速度的优化重量
〜<名称> / weight_kinematics_nh(double,默认值:1000.0)
- 用于满足非完整运动学的优化权重(该参数必须很高,因为运动学方程构成了一个等式约束,即使值1000也不意味着由于与其他成本相比较小的“原始”成本值而导致的矩阵条件不佳) 。
〜<名称> / weight_kinematics_forward_drive(double,默认值:1.0)
- 优化重量,迫使机器人仅选择前进方向(正向速度)。较小的重量(例如1.0)仍然允许向后行驶。
〜<名称> / weight_kinematics_turning_radius(double,默认值:1.0)
- 优化重量,以实现最小转弯半径(仅适用于汽车类机器人)。
〜<名称> / weight_optimaltime(double,默认值:1.0)
- 收缩轨迹过渡/执行时间的优化权重
〜<名称> / weight_obstacle(double,默认值:50.0)
- 优化重量以保持与障碍物的最小距离
〜<名称> / weight_viapoint(double,默认值:1.0)
- 优化权重,以最小化到通孔的距离(参考路径)。
〜<名称> / weight_inflation(double,默认值:0.1)
- 通胀惩罚的优化权重(应该很小)。
〜<名称> / weight_adapt_factor(double,默认值:2.0)
- 在每个外部TEB迭代中,一些特殊权重(当前为weight_obstacle)会通过此因子重复缩放(weight_new = weight_old * factor)。迭代增加权重而不是设置较大的先验值会导致底层优化问题的更好数值条件。
独特拓扑中的并行规划
〜<名称> / enable_homotopy_class_planning(bool,默认:true)
- 在独特的拓扑中激活并行规划(由于同时优化了多个轨迹,因此需要更多的CPU资源)
〜<名称> / enable_multithreading(bool,默认:true)
- 激活多个线程以计划不同线程中的每个轨迹
〜<名称> / max_number_classes(int,默认值:4)
- 指定要考虑的最大不同轨迹数(限制计算工作量)
〜<名称> / selection_cost_hysteresis(double,默认值:1.0)
- 指定新候选人必须具有多少轨迹成本才能选择之前的轨迹(如果new_cost <old_cost * factor,则进行选择)。
〜<名称> / selection_obst_cost_scale(double,默认值:100.0)
- 仅选择“最佳”候选者的障碍物成本术语的额外缩放。
〜<名称> / selection_viapoint_cost_scale(double,默认值:1.0)
- 仅为了选择“最佳”候选者而对通孔成本条款进行额外的缩放。
〜<名称> / selection_alternative_time_cost(bool,默认值:false)
- 如果为true,则将时间成本(时间差平方的总和)替换为总过渡时间(时间差之和)。
〜<名称> / roadmap_graph_no_samples(int,默认值:15)
- 指定为创建路线图而生成的样本数
〜<名称> / roadmap_graph_area_width(double,默认值:6)
- 在起点和目标之间的矩形区域中采样随机关键点/航路点。以米为单位指定该区域的宽度。
〜<名称> / h_signature_prescaler(double,默认值:1.0)
- 标度内部参数(H-signature),用于区分同伦类。警告:仅当您在本地成本图中观察到障碍物过多的问题时,才减小此参数,请勿将其选得太低,否则障碍物无法彼此区分(0.2 < 值 <= 1)。
〜<名称> / h_signature_threshold(double,默认值:0.1)
- 如果实部和复杂部的差都低于指定的阈值,则假定两个H签名相等。
〜<名称> / obstacle_heading_threshold(double,默认值:1.0)
- 在障碍物航向和目标航向之间指定标量乘积的值,以便将它们(障碍物)考虑在内进行探索。
〜<名称> / visualize_hc_graph(bool,默认:false)
- 可视化为探索独特轨迹而创建的图形(rviz中的检查标记消息)
〜<名称> / viapoints_all_candidates(bool,默认:true)
- 如果为true,则将不同拓扑的所有轨迹附加到该组通孔点,否则,仅将与初始/全局计划共享相同拓扑的轨迹与它们连接(对test_optim_node无效)。
〜<名称> / switching_blocking_period(double,默认值:0.0)
- 指定允许切换到新的等效类之前需要终止的持续时间(以秒为单位)。
杂项参数
〜<名称> / odom_topic(字符串,默认值:“ odom ”)
- 测距消息的主题名称,由机器人驱动程序或模拟器提供。
〜<名称> / map_frame(字符串,默认值:“ odom ”)
- 全局计划框架(对于静态地图,通常必须将此参数更改为“ / map”。