建造属于你的无人驾驶车——(十四)源码安装导航算法,并创建Move_base导航参数文件

建造属于你的无人驾驶车!
本专栏持续更新中…
程序源码:https://github.com/kkmd66/ZZX_RUN
Solidworks模型文件:https://github.com/kkmd66/ZZX_RUN/releases/tag/ZZX_RUN_Solidworks

第一步,源码安装导航算法

源码地址:https://github.com/kkmd66/ZZX_RUN/tree/main/navigation
下载后,放入工作空间,catkin_make进行编译,时间较长,骚等片刻…

第二步,创建Move_base导航参数文件

虚拟导航:

base_local_planner_params.yaml:

文件位置:zzx_run_navigation/config/fake/base_local_planner_params.yaml

controller_frequency: 3.0
recovery_behavior_enabled: false
clearing_rotation_allowed: false

TrajectoryPlannerROS:
   max_vel_x: 2.0
   min_vel_x: 0.1
   max_vel_y: 0.0  # zero for a differential drive robot
   min_vel_y: 0.0
   max_vel_theta: 2.0
   min_vel_theta: -2.0
   min_in_place_vel_theta: 0.4
   escape_vel: -0.1
   acc_lim_x: 1.0
   acc_lim_y: 0.0  # zero for a differential drive robot
   acc_lim_theta: 1.2

   holonomic_robot: false
   yaw_goal_tolerance: 0.1 # about 6 degrees
   xy_goal_tolerance: 0.05  # 5 cm
   latch_xy_goal_tolerance: false
   pdist_scale: 0.4
   gdist_scale: 0.8
   meter_scoring: true

   heading_lookahead: 0.325
   heading_scoring: false
   heading_scoring_timestep: 0.8
   occdist_scale: 0.05
   oscillation_reset_dist: 0.05
   publish_cost_grid_pc: false
   prune_plan: true

   sim_time: 1.0
   sim_granularity: 0.05
   angular_sim_granularity: 0.1
   vx_samples: 8
   vy_samples: 0  # zero for a differential drive robot
   vtheta_samples: 20
   dwa: true
   simple_attractor: false

costmap_common_params.yaml:

文件位置:zzx_run_navigation/config/fake/costmap_common_params.yaml

obstacle_range: 2.5
raytrace_range: 3.0
footprint: [[0.557155, 0.415605], [0.557155, -0.415605], [-0.557155, -0.415605], [-0.557155, 0.415605]]
#footprint_inflation: 0.01
# robot_radius: 0.175
inflation_radius: 0.415605
max_obstacle_height: 2.0
min_obstacle_height: 0.0
observation_sources: scan
scan: {data_type: LaserScan, topic: /scan, marking: true, clearing: true, expected_update_rate: 0}

global_costmap_params.yaml:

文件位置:zzx_run_navigation/config/fake/global_costmap_params.yaml

global_costmap:
   global_frame: map
   robot_base_frame: base_footprint
   update_frequency: 1.0
   publish_frequency: 1.0
   static_map: true
   rolling_window: false
   resolution: 0.01
   transform_tolerance: 1.0
   map_type: costmap

lobal_costmap_params.yaml:

文件位置:zzx_run_navigation/config/fake/lobal_costmap_params.yaml

local_costmap:
   global_frame: map
   robot_base_frame: base_footprint
   update_frequency: 3.0
   publish_frequency: 1.0
   static_map: true
   rolling_window: false
   width: 6.0
   height: 6.0
   resolution: 0.01
   transform_tolerance: 1.0

仿真导航:

base_local_planner_params.yaml:

文件位置:zzx_run_navigation/config/real/base_local_planner_params.yaml

controller_frequency: 3.0
recovery_behavior_enabled: false
clearing_rotation_allowed: false

TrajectoryPlannerROS:
   max_vel_x: 1.5
   min_vel_x: 0.05
   max_vel_y: 0.0  # zero for a differential drive robot
   min_vel_y: 0.0
   min_in_place_vel_theta: 1.0
   escape_vel: -0.1
   acc_lim_x: 2.5
   acc_lim_y: 0.0 # zero for a differential drive robot
   acc_lim_theta: 3.2

   holonomic_robot: false
   yaw_goal_tolerance: 0.1 # about 6 degrees
   xy_goal_tolerance: 0.1  # 10 cm
   latch_xy_goal_tolerance: false
   pdist_scale: 0.9
   gdist_scale: 0.6
   meter_scoring: true

   heading_lookahead: 0.325
   heading_scoring: false
   heading_scoring_timestep: 0.8
   occdist_scale: 0.1
   oscillation_reset_dist: 0.05
   publish_cost_grid_pc: false
   prune_plan: true

   sim_time: 1.0
   sim_granularity: 0.025
   angular_sim_granularity: 0.025
   vx_samples: 8
   vy_samples: 0 # zero for a differential drive robot
   vtheta_samples: 20
   dwa: true
   simple_attractor: false

costmap_common_params.yaml:

文件位置:zzx_run_navigation/config/real/costmap_common_params.yaml

obstacle_range: 5.0
  raytrace_range: 5.0
  footprint: [[0.557155, 0.415605], [0.557155, -0.415605], [-0.557155, -0.415605], [-0.557155, 0.415605]]
  footprint_inflation: 0.01
  # robot_radius: 0.175
  inflation_radius: 0.415605
  max_obstacle_height: 2.0
  min_obstacle_height: 0.0
  observation_sources: scan
  scan: {data_type: LaserScan, topic: /scan, marking: true, clearing: true, expected_update_rate: 0}

global_costmap_params.yaml:

文件位置:zzx_run_navigation/config/real/global_costmap_params.yaml

global_costmap:
   global_frame: map
   robot_base_frame: base_footprint
   update_frequency: 1.0
   publish_frequency: 0.5
   static_map: true
   rolling_window: false
   resolution: 0.01
   transform_tolerance: 1.0
   map_type: costmap

lobal_costmap_params.yaml:

文件位置:zzx_run_navigation/config/real/lobal_costmap_params.yaml

local_costmap:
   global_frame: odom
   robot_base_frame: base_footprint
   update_frequency: 3.0
   publish_frequency: 2.0
   static_map: false
   rolling_window: true
   width: 6.0
   height: 6.0
   resolution: 0.01
   transform_tolerance: 1.0
   map_type: costmap

最后

有问题可以找我交流~
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
move_base功能包是ROS中常用的导航功能包,它封装了许多导航相关的算法和工具,提供了一个基于全局和局部路径规划的导航系统。下面是move_base功能包的源码封装。 1. move_base.cpp move_base.cpp是move_base功能包的主要源文件,它包含了move_base节点的主函数和节点类的定义。该文件首先初始化了ROS节点,然后创建了一个MoveBase类的对象,开始执行节点循环,等待接收导航目标,执行路径规划和控制机器人运动。 2. move_base.h move_base.h是MoveBase类的头文件,包含了该类的成员变量和函数定义。MoveBase类是move_base节点的核心,它负责整个导航系统的控制和协调,包括全局路径规划、局部路径规划、机器人控制等功能。 3. global_planner.h global_planner.h是全局路径规划器的头文件,包含了GlobalPlanner类的定义。该类负责实现全局路径规划算法,根据机器人当前位置和导航目标,生成一条从起点到终点的路径。 4. global_planner.cpp global_planner.cpp是全局路径规划器的源文件,包含了GlobalPlanner类的成员函数的实现。该文件实现了A*算法和Dijkstra算法,用于全局路径规划。 5. local_planner.h local_planner.h是局部路径规划器的头文件,包含了LocalPlanner类的定义。该类负责实现局部路径规划算法,根据机器人当前位置和全局路径,生成一条从机器人当前位置到全局路径上某一点的局部路径。 6. local_planner.cpp local_planner.cpp是局部路径规划器的源文件,包含了LocalPlanner类的成员函数的实现。该文件实现了DWA算法,用于局部路径规划。 7. costmap_2d.h costmap_2d.h是代价地图的头文件,包含了Costmap2D类的定义。该类负责管理代价地图,包括读取、更新和查询代价地图。 8. costmap_2d.cpp costmap_2d.cpp是代价地图的源文件,包含了Costmap2D类的成员函数的实现。该文件实现了代价地图的读取、更新和查询功能。 9. recovery_behaviors.h recovery_behaviors.h是恢复行为的头文件,包含了RecoveryBehaviors类的定义。该类负责实现机器人遇到异常情况时的恢复行为,例如旋转、后退等操作。 10. recovery_behaviors.cpp recovery_behaviors.cpp是恢复行为的源文件,包含了RecoveryBehaviors类的成员函数的实现。该文件实现了机器人遇到异常情况时的恢复行为。 以上是move_base功能包的主要源码封装,它们共同实现了一个完整的导航系统,可以用于控制机器人自主导航
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值