ros2 Navigation 学习笔记 第四章(the construct 网站)

本文介绍了如何在ROS2中部署路径规划,包括启动Nav2的各个组件如GlobalPlanner、LocalPlanner(如DWB_Controller)、行为树协调器和恢复行为。详细阐述了各个节点的配置参数,并提供了启动这些节点的示例代码。还提到了在RVIZ中设置显示路径的方法以及如何通过命令行或动作客户端发送导航目标。

第四章 如何在ROS2中部署路径规划

本章内容

路径规划是什么意思

在ROS2中怎么部署路径规划

Nav2 planner

Nav2 controller

Nav2 bt-navigator

Navigation behaviors 包括recovery behaviors

路径规划是什么意思

在之前的单元学习了建图和定位。现在这些在哪里使用以及如何使用?本课程即将结束,将获得关于机器人导航的全部内容。

路径规划是指规划从a点到b点的轨迹,避开沿途的障碍物。

在ros Nav2中启动路径规划

要启动路径规划,将启动多个节点。除此之外,还需要一些路径规划所需的其他节点。

要求

启动路径规划系统之前,需要运行以下节点:

nav2_map_server 节点

nav2_amcl 节点

为了启动路径规划

还需要启动:

planner、controller、manager of recovery behaviors、bahavior tree navigator、nav2_lifecycle_manager

1、启动planner

planner节点相当于ROS1中的Global Planner。目标是找到一条从a点到b点的路径。

它能够计算路径同时避开地图上的已知障碍物。一旦接收到2d_Goal_Pose就会构建路径计算。

Planner还可以访问全局环境表示和缓冲到其中的传感器数据(比如全局成本地图)

目前ROS2中只有一个planner算法可用,即Nav2Fn_Planner

在节点中需要指出的字段:

nav2_planner提供的controller

可执行文件叫做planner_server

            package='nav2_planner',
            executable='planner_server',
            name='planner_server',
            output='screen',
            parameters=[nav2_yaml])
            

它需要的参数包括:

1、包含节点所有参数的yaml文件

planner_server:
  ros__parameters:
    expected_planner_frequency: 10.0
    use_sim_time: True
    planner_plugins: ["GridBased"]
    GridBased:
      plugin: "nav2_navfn_planner/NavfnPlanner"
      tolerance: 0.5
      use_astar: false
      allow_unknown: true

2、启动controller

ROS Nav2 controller相当于ROS1中的local planner。他的主要任务是执行从当前位置到前方几米(传感器范围)的反应路径规划。然后建立一条轨迹,避开动态障碍物(这些障碍物不出现在地图上,但可以借助传感器数据进行检测),同时遵循全局计划。

他还负责产生轮子的命令,使机器人遵循轨迹。

目前有两个可用:

dwb_controller:通常用于差速驱动机器人

TEB Controller:用于车型机器人

在节点启动中需要指出的字段有:

nav2_controller提供控制器

可执行文件名为controller_server

它需要的参数节点包括yaml文件

            package='nav2_controller',
            executable='controller_server',
            output='screen',
            parameters=[controller_yaml])
            
controller_server:
  ros__parameters:
    use_sim_time: True
    controller_frequency: 10.0
    min_x_velocity_threshold: 0.001
    min_y_velocity_threshold: 0.5
    min_theta_velocity_threshold: 0.001
    failure_tolerance: 0.3
    progress_checker_plugin: "progress_checker"
    goal_checker_plugins: ["general_goal_checker"] 
    controller_plugins: ["FollowPath"]

    # Progress checker parameters
    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
      required_movement_radius: 0.5
      movement_time_allowance: 10.0
    # Goal checker parameters
    general_goal_checker:
      stateful: True
      plugin: "nav2_controller::SimpleGoalChecker"
      xy_goal_tolerance: 0.25
      yaw_goal_tolerance: 0.25
    # DWB parameters
    FollowPath:
      plugin: "dwb_core::DWBLocalPlanner"
      debug_trajectory_details: True
      min_vel_x: 0.0
      min_vel_y: 0.0
      max_vel_x: 0.26
      max_vel_y: 0.0
      max_vel_theta: 1.0
      min_speed_xy: 0.0
      max_speed_xy: 0.26
      min_speed_theta: 0.0
      acc_lim_x: 2.5
      acc_lim_y: 0.0
      acc_lim_theta: 3.2
      decel_lim_x: -2.5
      decel_lim_y: 0.0
      decel_lim_theta: -3.2
      vx_samples: 20
      vy_samples: 5
      vtheta_samples: 20
      sim_time: 1.7
      linear_granularity: 0.05
      angular_granularity: 0.025
      transform_tolerance: 0.2
      xy_goal_tolerance: 0.25
      trans_stopped_velocity: 0.25
      short_circuit_trajectory_evaluation: True
      stateful: True
      critics:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值