学习记录03

3.1 导航配置

安装导航包

sudo apt-get install ros-melodic-navigation

创建功能包navigation,并编译

catkin_create_pkg navigation

在navigation下创建config, launch, maps, rviz, scripts, src

mkdir config launch maps rviz sricpts src

config–用于存储导航算法配置文件,包括全局和局部路径规划算法
launch–配置启动文件,包括定位,导航算法等
maps–存放地图文件
rviz–存放可视化文件
scripts–存放python编写的特定文件
src–存放cpp控制文件

3.2 各文件夹配置

config文件夹
下一节单独写
launch文件夹
创建amcl.launch文件

<launch>
    <arg name="scan_topic" default="scan"/>
    <arg name="initial_pose_x" default="0.0"/>
    <arg name="initial_pose_y" default="0.0"/>
    <arg name="initial_pose_a" default="0.0"/>

    <node pkg="amcl" type="amcl" name="amcl" clear_params="true">
        <param name="min_particles"             value="500"/>
        <param name="max_particles"             value="3000"/>
        <param name="kld_err"                   value="0.02"/>
        <param name="update_min_d"              value="0.20"/>
        <param name="update_min_a"              value="0.20"/>
        <param name="resample_interval"         value="1"/>
        <param name="transform_tolerance"       value="0.5"/>
        <param name="recovery_alpha_slow"       value="0.00"/>
        <param name="recovery_alpha_fast"       value="0.00"/>
        <param name="initial_pose_x"            value="$(arg initial_pose_x)"/>
        <param name="initial_pose_y"            value="$(arg initial_pose_y)"/>
        <param name="initial_pose_a"            value="$(arg initial_pose_a)"/>
        <param name="gui_publish_rate"          value="50.0"/>

        <remap from="scan"                      to="$(arg scan_topic)"/>
        <param name="laser_max_range"           value="3.5"/>
        <param name="laser_max_beams"           value="180"/>
        <param name="laser_z_hit"               value="0.5"/>
        <param name="laser_z_short"             value="0.05"/>
        <param name="laser_z_max"               value="0.05"/>
        <param name="laser_z_rand"              value="0.5"/>
        <param name="laser_sigma_hit"           value="0.2"/>
        <param name="laser_lambda_short"        value="0.1"/>
        <param name="laser_likelihood_max_dist" value="2.0"/>
        <param name="laser_model_type"          value="likelihood_field"/>

        <param name="odom_model_type"           value="diff"/>
        <param name="odom_alpha1"               value="0.1"/>
        <param name="odom_alpha2"               value="0.1"/>
        <param name="odom_alpha3"               value="0.1"/>
        <param name="odom_alpha4"               value="0.1"/>
        <param name="odom_frame_id"             value="odom"/>
        <param name="base_frame_id"             value="base_footprint"/>
    </node>
</launch> 	

创建teb_base.launch和teb_demo.launch
其中teb_base.launch用于启动move_base节点,并加载所有配置文件

<launch>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen" clear_params="true">
    <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />

    <rosparam file="$(find navigation)/config/TEB/costmap_common_params.yaml" command="load" ns="global_costmap" />

    <rosparam file="$(find navigation)/config/TEB/costmap_common_params.yaml" command="load" ns="local_costmap" />

    <rosparam file="$(find navigation)/config/TEB/global_costmap_params.yaml" command="load" />

    <rosparam file="$(find navigation)/config/TEB/local_costmap_params.yaml" command="load" />

    <rosparam file="$(find navigation)/config/TEB/global_planner_params.yaml" command="load" />

    <rosparam file="$(find navigation)/config/TEB/teb_local_planner_params.yaml" command="load" />
    
    <rosparam file="$(find navigation)/config/TEB/move_base_params.yaml" command="load" />
    
    <!--<remap from="/cmd_vel" to="/my/cmd_vel"/> --> 
  </node>
  
</launch>

teb_demo.launch是一个运行所有导航功能节点的顶层launch文件
用于启动gazebo和rviz

<launch>

    <!-- 启动仿真环境 -->
    <include file="$(find gazebo_pkg)/launch/icra.launch"/>

    <!-- 设置地图的配置文件 -->
    <arg name="map" default="icra_map.yaml" />

    <!-- 运行地图服务器,并且加载设置的地图-->
    <node name="map_server" pkg="map_server" type="map_server" args="$(find gazebo_map)/map/$(arg map)"/>

    <!-- 运行move_base节点 -->
    <include file="$(find navigation)/launch/teb_base.launch"/>

    <!-- 启动AMCL节点 -->
    <include file="$(find navigation)/launch/amcl.launch" />

    <!-- 显示odom节点 -->
    <!--node name="showodom" pkg="navigation" type="showpath" />-->
    
    <!-- 订阅路径节点 -->
    <!--<node name="my_control" pkg="navigation" type="my_control" />-->  
   
    <!-- 运行rviz -->
    <node pkg="rviz" type="rviz" name="rviz" args="-d $(find navigation)/rviz/teb_nav.rviz"/>

</launch>

maps文件夹
将gazebo_map中的icra_map两个文件copy到该文件夹

rviz文件夹
后续配置完rviz文件后保存到此处

scripts和src文件夹
暂定

配置完文件后进行导航算法的验证

3.3 配置rviz文件并测试

打开工作空间终端

source devel/setup.bash
roslaunch navigation teb_demo.launch

运行后会打开gazebo以及rviz
在rviz中add以下topic
请添加图片描述全局路径和局部路径可以设置为不同颜色便于辨识
配置完成后命名为teb_nav保存在rviz文件夹中

在菜单栏选择2D Nav Goal,可以选择目标点及到达的方位
实现导航

动态调节TEB参数

rosrun rqt_reconfigure rqt_reconfigure

3.4 后续工作

1)调整小车在地图中的位置
2)调节TEB参数
3)TEB算法优化后应用

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值