【差速轮teb调参有感】

局部路径规划TEB

起始点和目标点的状态由全局规划器指定,中间插入N个橡皮筋状的点,定义点与点之间的时间Time。路径收到约束会变形,例如靠近障碍物会 拉长路径远离障碍物。

  • 黑色路径为全局路径,TEB算法在路径中间插入n个点(控制点),点的内容为机器人的姿态(x,y,航向)

  • 每两个点之间有固定的时间,时间分辨率(dt_ref),所以点之间不是等距但是时间是一样的

  • 整段路程已知,插入点的时间间隔一样,已知两点的时间和姿态信息,可以得到两点间的距离,得到速度,速度微分得到加速度,角速度角加速度同理

约束

TEB内有众多约束限制小车的运动轨迹和行驶速度

  • 小车与障碍物最小距离是一个约束,把障碍物推向小车,使这些点远离障碍物,路径像橡皮筋一样弹开。除了障碍物约束,相邻点之间也有约束,一个点变化大周围的点也会跟着变化。这些约束只能影响一些连续点的状态

  • 约束:跟随全局路径+避障,跟随路径施力局部路径拉向全局路径。障碍物约束施力,局部路径远离障碍物

  • 速度加速度约束,两个姿态点时间确定,可以用差分来计算速度加速度,小车性能约束,速度加速度都有最大最小值

  • 运动学约束:由若干弧线组成平滑轨迹

  • 最快路径约束

teb如何规划避障

优化

局部优化,多目标优化,大多数目标是局部的

g2o是一个通用的图优化库,用于解决各种机器人感知和控制问题。
在TEB中,g2o被用于构建一个优化问题的图,图中包含点和边。

点:表示机器人轨迹中的离散时间步骤,每个节点包括机器人的状态和时间戳。

边:表示优化问题的约束条件,机器人轨迹中的平滑性、与障碍物的碰撞等。每个边包括一个代价函数,用于度量优化目标的违反程度。

优化过程:

TEB通过添加节点和边来构建g2o图,将机器人的轨迹划分为多个时间步骤,然后定义各种约束来确保轨迹的平滑性和避免碰撞。

优化过程旨在最小化所有边的代价函数,从而生成最佳的轨迹。这包括在规定的时间窗口内平衡全局路径跟踪和局部障碍物避免。

关键参数

#轨迹

  dt_ref:#两相邻位姿之间的时间,越大越慢

#robot

  max_vel_x:#最大前向速度

  acc_lim_x:#最大x向加速度 加速减速会受到这个约束,电机性能不好需要调低角速度/加速度要调低,高速转动会带来震荡

#障碍物

  min_obstacle_dist:和障碍物最小距离

  include_costmap_obstacles: true才可以检测建图时不在的障碍物

  costmap_obstacles_behind_robot_dist:考虑后方障碍物距离,这个需要调小,减少计算量

#优化,这部分参数很重要,这里参数出问题车基本就规划的很怪

  no_inner_iteration:#被外循环调用后内循环优化次数

  no_outer_iteration:#外循环优化次数

  penalty_epsilon:#为速度约束提供缓冲效果,达到速度限制前会产生一个惩罚,让小车提前减速达到缓冲效果

  penalty_epsilon: #值较大时,速度和加速度的惩罚项的影响会增强,机器人在运动过程中会更加平稳,但是也会影响机器人的运动速度。反之,当 penalty_epsilon 的值较小时,速度和加速度的惩罚项的影响会减弱,机器人在运动过程中可能会出现剧烈的变化,但是可以提高机器人的运动速度。

  weight_max_vel_x:#最大x向权重0~2

  weight_acc_lim_vel_x:0~1#上述两个权重决定行驶过程中以低速还是高速

  weight_kinematics_nh:#满足非完整运动学的优化权值,调到1000就不会出现倒车现象

  weight_forward_drive:0~1000#只前向运动

  weight_turning_radius:0~1000#最小转弯半径权重

  weight_optimaltime:0~1000#时间权重,值大会直道很快,转弯只走内圈

  weight_obstacle:#越大离障碍物越远

  weight_shortest:#越大越容易走直线

  oscillation_recovery:#尝试检测和解决振荡

   


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在ROS中,AMCL(Adaptive Monte Carlo Localization)是一种常用的自适应蒙特卡洛定位算法,常用于机器人的定位和导航任务。在AMCL的配置文件amcl.launch中,有一些重要的参数需要进行调参。以下是一些常用的参数及其含义: 1. `odom_frame_id`:里程计数据的坐标系。通常为base_link或者base_footprint。 2. `base_frame_id`:机器人底盘坐标系的名称。通常为base_link或者base_footprint。 3. `global_frame_id`:全局坐标系的名称,即地图的坐标系。 4. `min_particles`:粒子滤波器中最小粒子数量。 5. `max_particles`:粒子滤波器中最大粒子数量。 6. `update_min_d`:机器人移动的最小距离(单位:米),用于触发滤波器更新。 7. `update_min_a`:机器人旋转的最小角度(单位:弧度),用于触发滤波器更新。 8. `transform_tolerance`:tf转换的时间容忍度(单位:秒)。 9. `resample_interval`:重采样间隔,即滤波器重采样的周期(单位:秒)。 10. `recovery_alpha_slow` 和 `recovery_alpha_fast`:退化恢复过程中控制粒子重采样的参数。 11. `initial_pose_x`、`initial_pose_y` 和 `initial_pose_a`:初始机器人位置的估计。 12. `gui_publish_rate`:图形用户界面(GUI)更新频率(单位:Hz)。 这些只是amcl.launch文件中的一些关键参数,您可以根据具体的机器人和应用场景进行调整。在调参时,可以根据实际情况逐步调整参数,并评估定位性能的变化。希望对您有所帮助!如果还有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值