当前位置: 首页 > news >正文

3.9 局部规划器

1.DWA规划器

修改nav_launch文件,修改base_local_planner的alue选项

<launch><node pkg="move_base" type="move_base" name="move_base"><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/global_costmap_params.yaml" command="load" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/local_costmap_params.yaml" command="load" /><param name="base_global_planner" value="global_planner/GlobalPlanner" /> <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/dwa_local_planner_params.yaml" command="load"/></node><node pkg="map_server" type="map_server" name="map_server" args="$(find wpr_simulation)/maps/map.yaml"/><node pkg="amcl" type="amcl" name="amcl"/><node pkg="rviz" type="rviz" name="rviz" args="-d $(find nav_pkg)/rviz/nav.rviz"/></launch>

白色点线为生成被选路径 ,绿色是选定的路径

 DWA参数列表

DWAPlannerROS:# 速度参数max_vel_x: 0.3      # 最大x方向速度min_vel_x: -0.05    # 最小x方向速度(设置负数将会允许倒车)max_vel_y: 0.0      # 差分驱动机器人的最大y方向速度为 0.0min_vel_y: 0.0      # 差分驱动机器人的最小y方向速度为 0.0max_vel_trans: 0.3  # 最大平移速度min_vel_trans: 0.01 # 最小平移速度(建议不要设置为 0.0 )trans_stopped_vel: 0.1  # 当平移速度小于这个值,就让机器人停止acc_lim_trans: 2.5      # 最大平移加速度acc_lim_x: 2.5          # x方向的最大加速度上限acc_lim_y: 0.0          # y方向的加速度上限(差分驱动机器人应该设置为 0.0 )max_vel_theta: 1.0      # 最大旋转速度,略小于基座的功能min_vel_theta: -0.01    # 当平移速度可以忽略时的最小角速度theta_stopped_vel: 0.1  # 当旋转速度小于这个值,就让机器人停止acc_lim_theta: 6.0      # 旋转的加速度上限# 目标容差参数yaw_goal_tolerance: 0.1         # 目标航向容差xy_goal_tolerance: 0.05         # 目标xy容差latch_xy_goal_tolerance: false  # 到达目标容差范围后,停止移动,只旋转调整航向# 向前模拟参数sim_time: 1.7       # 模拟时间,默认值 1.7vx_samples: 3       # x方向速度采样数,默认值 3vy_samples: 1       # 差分驱动机器人y方向速度采样数,只有一个样本vtheta_samples: 20  # 旋转速度采样数,默认值 20# 轨迹评分参数path_distance_bias: 32.0  # 靠近全局路径的权重,默认值 32.0goal_distance_bias: 24.0  # 接近导航目标点的权重,默认值 24.0occdist_scale: 0.01       # 控制器避障的权重,默认值 0.01forward_point_distance: 0.325 # 从机器人到评分点的位置,默认值 0.325stop_time_buffer: 0.2     # 在碰撞前机器人必须停止的时间长度,留出缓冲空间,默认值 0.2scaling_speed: 0.25       # 缩放机器人速度的绝对值,默认值 0.25max_scaling_factor: 0.2   # 机器人足迹在高速时能缩放的最大系数,默认值 0.2# 防振动参数oscillation_reset_dist: 1.05 # 重置振动标志前需要行进的距离,默认值 0.05# 辅助调试选项publish_traj_pc : true      # 是否在 RViz 里发布轨迹publish_cost_grid_pc: true  # 是否在 RViz 里发布代价网格global_frame_id: odom       # 基础坐标系# 差分驱动机器人配置holonomic_robot: false # 是否全向移动机器人

动态调参:在运行过程中修改launch参数

rosrun rqt_reconfigure rqt_reconfigure 

 2.TEB规划器

安装TEB

sudo apt install ros-noetic-teb-local-planner

修改nav.launch文件

<launch><node pkg="move_base" type="move_base" name="move_base"><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="global_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/costmap_common_params.yaml" command="load" ns="local_costmap" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/global_costmap_params.yaml" command="load" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/local_costmap_params.yaml" command="load" /><param name="base_global_planner" value="global_planner/GlobalPlanner" /> <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" /><rosparam file="$(find wpb_home_tutorials)/nav_lidar/teb_local_planner_params.yaml" command="load"/><param name="controller_frequency" value="10" type="double"/></node><node pkg="map_server" type="map_server" name="map_server" args="$(find wpr_simulation)/maps/map.yaml"/><node pkg="amcl" type="amcl" name="amcl"/><node pkg="rviz" type="rviz" name="rviz" args="-d $(find nav_pkg)/rviz/nav.rviz"/></launch>

可视化效果

teb参数

TebLocalPlannerROS:odom_topic: odom# 策略相关teb_autosize: True  # 是否允许改变轨迹的时域长度,也就是改变 dt_refdt_ref: 0.5         # 路径上的两个相邻姿态的默认距离dt_hysteresis: 0.1  # 允许改变的时域解析度的浮动范围global_plan_overwrite_orientation: True # 是否修正全局路径中的临时局部路径点的朝向max_global_plan_lookahead_dist: 2.0     # 最大向前看距离feasibility_check_no_poses: 2           #在判断生成的轨迹是否冲突时使用,此时设置为2,即从轨迹起点开始逐个检查轨迹上的2个点,若2个点均不发生碰撞,则认为本次轨迹有效。# 运动相关     max_vel_x: 0.4           # 最大速度max_vel_x_backwards: 0.2 # 最大倒车速度,设置为0或者负数将导致错误。减少倒车应该修改倒车权重,不改这里。max_vel_theta: 1.0       # 最大转向角速度,跟 min_turning_radius 相关 (r = v / omega)acc_lim_x: 0.5           # 最大线加速度acc_lim_theta: 1.0       # 最大角加速度# ********************** 转弯半径相关 ********************min_turning_radius: 0.0         # 小转弯半径。如果设为 0,表示可以原地转弯。wheelbase: 0.31                 # 只有在 cmd_angle_instead_rotvel为true时才有效cmd_angle_instead_rotvel: False # 是否将收到的角速度消息转换为操作上的角度变化。设置成 True 时,话题 vel_msg.angular.z 内的数据是转轴角度。# ********************************************************************# 车体轮廓footprint_model: # types可选项: "point", "circular", "two_circles", "line", "polygon"type: "circular"# 对 type "circular" 有效的参数:radius: 0.17# 对 type "line" 有效的参数:        line_start: [0.0, 0.0] line_end: [0.35, 0.0]# 对 type "two_circles" 有效的参数:front_offset: 0.35front_radius: 0.35rear_offset: 0.35rear_radius: 0.35# 对 type "polygon" 有效的参数:vertices: [ [0.35, 0.0], [-0.2, -0.25], [0.2, -0.25]] # 到达目标点的判断容差   xy_goal_tolerance: 0.2yaw_goal_tolerance: 0.1# 障碍物相关 min_obstacle_dist: 0.1  # 与障碍物的最小间距inflation_dist: 0.4     # 障碍物膨胀距离include_costmap_obstacles: True          # 是否检测动态障碍物costmap_obstacles_behind_robot_dist: 1.0 # 身后多远距离内障碍物加入检测范围obstacle_poses_affected: 25              # 障碍物对附近多少个关键点产生影响costmap_converter_plugin: ""             # costmap_converter 插件名称,这里不使用# 路径优化相关no_inner_iterations: 3     # 图优化optimizer的迭代次数no_outer_iterations: 3     # 外循环迭代次数penalty_epsilon: 0.1       # 为所有的惩罚项增加一个小的安全余量weight_max_vel_x: 2        # 平移速度的优化权重weight_max_vel_theta: 1    # 角速度的优化权重weight_acc_lim_x: 1        # 平移加速度的优化权重weight_acc_lim_theta: 1    # 角加速度的优化重量weight_kinematics_nh: 1000 # 非完整运动学的优化权重weight_kinematics_forward_drive: 1 # 往前移动的权重weight_optimaltime: 1      # 耗时权重weight_obstacle: 50        # 与障碍物保持距离的权重# 多线规划enable_homotopy_class_planning: True # 激活多线规划enable_multithreading: True          # 多线程计算max_number_classes: 2                # 规划的路径线数上限selection_cost_hysteresis: 1.0       # 路径轨迹入选的评价上限selection_obst_cost_scale: 1.0       # 障碍物评价在入选标准中的缩放倍率selection_alternative_time_cost: False # 时间成本是否要进行平方计算roadmap_graph_no_samples: 15         # 为创建 roadmap graph 而生成的样本数roadmap_graph_area_width: 5          # 关键点采样的宽度,单位为米。

相关文章:

  • Kubernetes控制平面组件:Kubelet详解(八):容器存储接口 CSI
  • AI评测-(1)基础介绍
  • 【Docker 08】Compose - 容器编排
  • 【单调栈】-----【Largest Rectangle in a Histogram】
  • DPO直接偏好函数的学习解读
  • 【Kubernetes】从零搭建K8s集群:虚拟机环境配置全指南(DNS/网络/防火墙/SELinux全解析一站式配置图文教程)
  • Spring中IoC的理解
  • python模块常用语法sys、traceback、QApplication
  • [muduo] Buffer缓冲区 | TcpServer | Reactor模式
  • 在 `setup` 函数中实现路由跳转:Vue3与Vue Router 4的集成
  • Python 数据分析与可视化 Day 3 - Pandas 数据筛选与排序操作
  • vivado工具配置(二)
  • Python 的内置函数 hasattr
  • 网络编程及原理(六):三次握手、四次挥手
  • 【软考高级系统架构论文】论软件设计方法及其应用
  • modelscope设置默认模型路径
  • app Router VS pages Router(Next.js学习笔记)
  • 车载CAN总线数据采集与故障诊断装置设计与实现
  • Spring Boot邮件发送终极指南:从基础到高级应用
  • 纯跟踪算法本质解密:航向角偏差=预瞄角?数学证明与工程实践
  • 无锡集团网站建设/北京seo报价
  • 淘宝是什么语言做的网站/开封网站优化公司
  • 我想带货怎么找货源/百度排名优化
  • 网站建设公司前台/bt磁力
  • ps怎么做网站/seo营销优化软件
  • 武汉有哪些做网站的公司/免费发广告帖子的网站