ROS 两角最小距离

源码来自于: /opt/ros/kinetic/angles/angles.h

 

函数一:

/*!
   * \function
   * \brief shortest_angular_distance
   *
   * Given 2 angles, this returns the shortest angular
   * difference.  The inputs and ouputs are of course radians.
   *
   * The result
   * would always be -pi <= result <= pi.  Adding the result
   * to "from" will always get you an equivelent angle to "to".
   */

  static inline double shortest_angular_distance(double from, double to)
  {
    return normalize_angle(to-from);
  }

函数二:

  /*!
   * \brief normalize
   *
   * Normalizes the angle to be -M_PI circle to +M_PI circle
   * It takes and returns radians.
   *
   */
  static inline double normalize_angle(double angle)
  {
    double a = normalize_angle_positive(angle);
    if (a > M_PI)
      a -= 2.0 *M_PI;
    return a;
  }

函数三:

  /*!
   * \brief normalize_angle_positive
   *
   *        Normalizes the angle to be 0 to 2*M_PI
   *        It takes and returns radians.
   */
  static inline double normalize_angle_positive(double angle)
  {
    return fmod(fmod(angle, 2.0*M_PI) + 2.0*M_PI, 2.0*M_PI);
  }

 

### ROS中DWA动态窗口法配置 在ROS环境中,为了实现移动机器人的局部路径规划,通常会采用动态窗口法(Dynamic Window Approach, DWA)[^1]。此算法允许机器人基于当前速度和加速度约束,在短时间内预测可能的动作轨迹,并从中选取最优解。 对于DWA的具体配置,可以通过编辑`rikirobot/param/navigation/`目录下的相应参数文件完成[^2]。这些参数影响着DWA的行为模式以及性能表现: #### 参数说明 - `dwa`: 启用或禁用DWA算法,默认为True表示启用。 - `max_vel_x`, `min_vel_x`: 设置线性前进的最大最小速度范围。 - `max_trans_vel`, `min_trans_vel`: 类似于上述两个选项,但是用于限定平移运动的速度边界。 - `max_rotational_vel`, `min_rotational_vel`: 定义旋转角度变化速率上下限。 - `acc_lim_theta`, `acc_lim_x`: 加速度限制分别对应角加速度和线加速度。 - `vx_samples`, `vtheta_samples`: 表示采样数量,即每次迭代过程中尝试多少种不同的速度组合。 - `path_distance_bias`, `goal_distance_bias`, `occdist_scale`: 权重因子用来平衡接近目标点的距离、沿路经偏差程度及障碍物距离的影响。 ```yaml DWAPlannerROS: dwa: True max_vel_x: 0.5 min_vel_x: -0.1 max_trans_vel: 0.5 min_trans_vel: -0.1 max_rotational_vel: 1.0 min_rotational_vel: -1.0 acc_lim_theta: 3.2 acc_lim_x: 2.5 vx_samples: 20 vtheta_samples: 40 path_distance_bias: 0.6 goal_distance_bias: 0.8 occdist_scale: 0.02 ``` 以上是一个典型的DWA配置实例,实际应用时应依据具体场景需求适当调整各参数值以达到最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值