move_base调参记录

  • 当机器人执行旋转恢复行为时,旋转速度过快,默认为1弧度/秒,这样会极有可能导致机器人定位出错。查rotate_recovery ros wiki得知,当局部规划器不是base_local_planner时,需要单独设置相关参数。可以在move_base_params.yaml文件中设置
#旋转恢复行为参数
TrajectoryPlannerROS:
   yaw_goal_tolerance: 0.05 #0.05 #控制器在实现其目标时偏航/旋转的弧度公差
   acc_lim_theta: 3.2 #3.2 #机器人的旋转加速度限制,单位为弧度/秒^2
   max_vel_theta: 0.3 #1.0 #机器人允许的最大旋转速度,单位为弧度/秒
   min_in_place_vel_theta: 0.1 #0.4 #以弧度/秒执行就地旋转时基座允许的最小旋转速度
  • 当机器人目标点的位姿在当前的正后方(如图所示),若机器人的max_rot_vel最大旋转速度的绝对值太小,比如0.5(官方默认为1.0rad/s),acc_lim_th 最大角加速度太小比如3.2(官方默认3.2弧度/秒^2),会出现机器人不停左摇右摆,/cmd_vel中角速度一会为正一会为负,此时的线速度为min_vel_trans最小线速度,假如最小线速度过大,比如0.1m/s(官方默认为0.1m/s),可以观察到机器人会一边前进,一边小角度的来回摆动,最后机器人需要执行恢复行为72c4eb847b6449b6a66345a24a28ec30.png

 由此可见,相关速度值对机器人的控制很重要,下面给DWA速度参数参考

DWAPlannerROS:
  #加速度
  acc_lim_x: 2.0 # 机器人在x方向的极限加速度,单位弧度/秒^2
  acc_lim_y: 0 # 机器人在y方向的极限加速度,单位弧度/秒^2
  acc_lim_trans: 2.0 # 机器人在平移(x or y)方向的极限加速度,单位弧度/秒^2
  acc_lim_theta: 8.0 # 机器人在极限角加速度,单位弧度/秒^2
  
  #线速度
  max_vel_x: 0.3
  min_vel_x: 0.01
  max_vel_y: 0.0  
  min_vel_y: 0.0
  max_vel_trans: 0.3
  min_vel_trans: 0.01
  trans_stopped_vel: 0.01 # 机器人被认属于“停止”状态时的平移速度
  #角速度
  max_vel_theta: 1.0 # 机器人最大旋转速度
  min_vel_theta: 0.1
  theta_stopped_vel: 0.1 # 机器人被认属于“停止”状态时的旋转角速度   
  • 由于机器人除了在充电站需要较低的位姿容差,其他巡航点位可以适当提高位姿容差,由此可以使用dynamic reconfigure在程序中根据目标点是否为低容差点来修改参数。这样可以让机器人在高容差点可以更快的停下,不会出现在附近左摇右摆。DWA中的位姿容差参数    yaw_goal_tolerance、xy_goal_tolerance。

ROS c++ 编写动态调参(dynamic reconfigure)客户端,导航参数程序动态调节,以dwa_local_planner为例

对于melodic的move_base 线速度最大值和acc_lim_x也有关系,调节线加速度但又不影响最大线速度的参数是acc_lim_trans  ,建议和max_vel_trans的比是1.5:1

  • 0
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值