rqt teb参数动态调试工具_ROS navigation teb_local_planner

说明:介绍了teb_local_planner的概念和参数

参考代码

概要teb_local_planner包是2D导航功能包中base_local_planner的插件实现。

Timed Elastic Band 基础方法在轨迹执行时间,障碍物分离以及运行时遵守kinodynamic约束方面,局部优化了机器人的轨迹。

该软件包实现了一种在线优化的局部轨迹规划器,作为ROS导航包的插件用于导航和控制移动机器人。

在运行时,优化由全局路径规划器生成的初始轨迹,以便最小化轨迹执行时间(时间最优目标),与障碍物分离,并遵守诸如满足最大速度和加速度的动力学约束。

目前的实现符合非全向轮机器人(差速驱动机器人和四驱驱动机器人)的运动学。 (在Kinetic版本开始,该包支持全向轮机器人)

通过求解sparse scalarized multi-objective优化问题有效地获得了最优轨迹。 用户可以为优化问题设置权重,以便在目标冲突的情况下指定操作。

“Timed-Elastic-Band”方法在:

局部路径规划器如Timed Elastic Band 经常被卡住在局部最优轨迹上,因为他们无法跨越障碍物。所以它进行了扩展,并行优化不同拓扑的可通过轨迹的子集。局部规划器能够切换到候选集中的当前全局最优轨迹,同时通过利用同源/同伦类的概念获得不同的拓扑。

Video以下视频介绍了该软件包的功能,并显示了仿真和真实机器人情况下的示例。

youtube 视频链接:

以下视频介绍了0.2版本的功能(支持四驱驱动机器人和costmap转换):

youtube 视频链接:

Node API

( 1 ) Topics

( 1.1 ) Published Topics~/global_plan ([nav_msgs/Path][4])Global plan that the local planner is currently attempting to follow.

主要用于可视化。~/local_plan ([nav_msgs/Path][5])teb_local_planner优化和跟踪的局部路径规划或轨迹。

主要用于可视化。~/teb_poses ([geometry_msgs/PoseArray][6])当前局部路径规划的(discrete pose list)离散位姿列表(SE2)。

主要用于可视化。~/teb_markers ([visualization_msgs/Marker][7])teb_local_planner通过具有不同命名空间的标记来提供规划场景的附加信息。

可视化替代拓扑中所有找到的和优化的轨迹(仅当启用并行计划时)。

将会发布更多的信息,如优化足迹模型。~/teb_feedback ([teb_local_planner/FeedbackMsg][10])反馈消息含有包括速度曲线和时间信息以及障碍物列表的已规划轨迹。

主要用于评估和调试。

需启用 ~/publish_feedback 参数。

( 1.2 ) Subscribed Topics~/odom ([nav_msgs/Odometry][11])给局部路径规划器提供机器人当前速度的里程计信息。~/obstacles ([teb_local_planner/ObstacleMsg][12])提供自定义的障碍物如点,线或多边形(另外或可代替costmap的障碍)。

( 2 ) Parametersteb_local_planner包允许用户设置参数以便自定义机器人的行为。

这些参数分为几类:机器人配置,目标公差,轨迹配置,障碍,优化,特殊拓扑中的规划和其他参数。

其中一些参数和base_local_planner包中的参数是一样的,许多(但不是全部)参数可以在运行时使用rqt_reconfigure进行修改。

( 2.1 ) Robot Configuration Parameters~/acc_lim_x (double, default: 0.5)机器人的最大线加速度,单位为 meters/sec^2 。~/acc_lim_theta (double, default: 0.5)机器人的最大角加速度,单位为 radians/sec^2 。~/max_vel_x (double, default: 0.4)机器人的最大平移速度,单位为 meters/sec~/max_vel_x_backwards (double, default: 0.2)当向后移动时,机器人的最大绝对平移速度,单位为 meters/sec 。

See optimization parameter weight_kinematics_forward_drive.~/max_vel_theta (double, default: 0.3)机器人的最大角速度,单位为 radians/sec 。

以下参数适用于四驱驱动机器人:~/min_turning_radius (double, default: 0.0)四驱驱动机器人的最小转向半径(差速驱动机器人设置为零)。~/wheelbase (double, default: 1.0)后驱动轴与前驱动轴之间的距离。~/cmd_angle_instead_rotvel (bool, default: false)Substitute the rotational velocity in the commanded velocity message by the corresponding steering angle [-pi/2,pi/2]. Note, changing the semantics of yaw rate depending on the application is not preferable. Here, it just complies with the inputs required by the stage simulator. Datatypes in ackermann_msgs are more appropriate, but are not supported by move_base. The local planner is not intended to send commands by itself.

以下参数适用于全向轮机器人:Note, reduce ~/weight_kinematics_nh significantly in order to adjust the tradeoff between usual driving and strafing.~/max_vel_y (double, default: 0.0)Maximum strafing velocity of the robot (should be zero for non-holonomic robots!)~/acc_lim_y (double, default: 0.5)Maximum strafing acceleration of the robot

以下是与用于优化的足迹模型相关的参数:~/footprint_model/type (string, default: "point")指定用于优化的机器人足迹模型的类型。

有如“点”,“圆形”,“线”,“two_circles”和“多边形”的不同类型。

但其模型的类型对所需的计算时间有显著的影响。~/footprint_model/radius (double, default: 0.2)该参数是仅用于“圆形“类型的模型,其包含了圆的半径。

圆的中心位于机器人的旋转轴(axis of rotation)上。~/footprint_model/line_start (double[2], default: [-0.3, 0.0])该参数是仅用于“线“类型的模型,其包含了里线段的起始坐标。~/footprint_model/front_offset (double, default: 0.2)该参数是仅用于“two_circles“类型的模型,其描述了前圆(front circle)的中心沿机器人的x轴移动了多少。假设机器人的旋转轴(axis of rotation)位于[0,0]处。~/footprint_model/front_radius (double, default: 0.2)该参数是仅用于“two_circles“类型的模型,其包含了前圆(front circle)的半径。~/footprint_model/rear_offset (double, default: 0.2)该参数是仅用于“two_circles“类型的模型,其描述了后圆(rear circle)的中心沿机器人的负x轴移动多少。假设机器人的旋转轴(axis of rotation)位于[0,0]处。~/footprint_model/rear_radius (double, default: 0.2)该参数是仅用于“two_circles“类型的模型,其包含了后圆(rear circle)的半径。~/footprint_model/vertices (double[], default: [ [0.25,-0.05], [...], ...])该参数是仅用于“多边形“类型的模型,其包含了多边形顶点列表(每个2d坐标)。

多边形总是闭合的:不要在最后重复第一个顶点。

( 2.2 ) Goal Tolerance Parameters~/xy_goal_tolerance (double, default: 0.2)允许的机器人到目标位置的最终欧氏距离(euclidean distance),单位为 meters 。~/yaw_goal_tolerance (double, default: 0.2)Allowed final orientation error in radians~/free_goal_vel (bool, default: false)去除目标速度的约束,让机器人可以以最大速度到达目标。

Remove the goal velocity constraint such that the robot can arrive at the goal with maximum speed.

( 2.3 ) Trajectory Configuration Parameters~/dt_ref (double, default: 0.3)Desired temporal resolution of the trajectory (the trajectory is not fixed to dt_ref since the temporal resolution is part of the optimization, but the trajectory will be resized between iterations if dt_ref +-dt_hysteresis is violated.~/dt_hysteresis (double, default: 0.1)Hysteresis for automatic resizing depending on the current temporal resolution, usually approx. 10% of dt_ref is recommended .~/min_samples (int, default: 3)最小样本数(始终大于2)~/global_plan_overwrite_orientation (bool, default: true)覆盖由全局规划器提供的局部子目标的方向(因为它们通常仅提供2D路径)~/global_plan_viapoint_sep (double, default: -0.1 (disabled))如果为正值,则通过点(via-points )从全局计划(路径跟踪模式)展开。

该值确定参考路径的分辨率(沿着全局计划的每两个连续通过点之间的最小间隔,if negative: disabled)。

可以参考参数weight_viapoint来调整大小。New in version 0.4.

If positive, via-points are extrected from the global plan (path-following mode). The value determines the resolution of the reference path (min. separation between each two consecutive via-points along the global plan, if negative: disabled). Refer to parameter weight_viapoint for adjusting the intensity. New in version 0.4~/max_global_plan_lookahead_dist (double, default: 3.0)Specify the maximum length (cumulative Euclidean distances) of the subset of the global plan taken into account for optimization. The actual length is than determined by the logical conjunction of the local costmap size and this maximum bound. Set to zero or negative in order to deactivate this limitation.~/force_reinit_new_goal_dist (double, default: 1.0)Reinitialize the trajectory if a previous goal is updated with a separation of more than the specified value in meters (skip hot-starting)~/feasibility_check_no_poses (int, default: 4)Specify up to which pose on the predicted plan the feasibility should be checked each sampling interval.~/publish_feedback (bool, default: false)发布包含完整轨迹和动态障碍的列表的规划器反馈(应仅用于测试或调试启用)。 查看上面发布者的列表。~/shrink_horizon_backup (bool, default: true)允许规划器在自动检测到问题(e.g. infeasibility)的情况下临时缩小horizon(50%)。参考参数shrink_horizon_min_duration。

你可能感兴趣的:(rqt,teb参数动态调试工具)