movebase导航和地图数据的使用 - 2 turtlebot中Move base的launch文件分析

<!--

ROS navigation stack with velocity smoother and safety(reactive) controller

-->

<launch>

<include file="$(findturtlebot_navigation)/launch/includes/velocity_smoother.launch.xml"/>

<include file="$(findturtlebot_navigation)/launch/includes/safety_controller.launch.xml"/>

<arg name="odom_frame_id" default="odom"/>

<arg name="base_frame_id" default="base_footprint"/>

<arg name="global_frame_id" default="map"/>

<arg name="odom_topic" default="odom" />

<arg name="laser_topic" default="scan" />

<arg name="custom_param_file" default="$(findturtlebot_navigation)/param/dummy.yaml"/>



//所有参数都会默认位于nodename “move_base”下面。

<node pkg="move_base" type="move_base"respawn="false" name="move_base"output="screen"> //nodenamemove_base

<rosparam file="$(findturtlebot_navigation)/param/costmap_common_params.yaml"command="load" ns="global_costmap" />//此文件中的参数会被加载到/move_base/global_costmap/下面,ns/move_base/global_costmap,比如/move_base/global_costmap/max_obstacle_height

<rosparam file="$(findturtlebot_navigation)/param/costmap_common_params.yaml"command="load" ns="local_costmap" /> //此文件中的参数会被加载到/move_base/local_costmap/下面,ns/move_base/local_costmap,比如/move_base/local_costmap/max_obstacle_height

<rosparam file="$(findturtlebot_navigation)/param/local_costmap_params.yaml"command="load" /> //参数都被加载到nodename“move_base”下,但是此文件内部明确指明了所有参数又都位于local_costmap下,所以效果同上面明确指名ns=”local_costmap”

<rosparam file="$(findturtlebot_navigation)/param/global_costmap_params.yaml"command="load" /> //参数都被加载到nodename“move_base”下,但是此文件内部明确指明了所有参数又都位于global_costmap下,所以效果同上面明确指明ns=”global_costmap”

<rosparam file="$(findturtlebot_navigation)/param/dwa_local_planner_params.yaml"command="load" /> //加载所有位于/move_base/DWAPlannerROS下的参数

<rosparam file="$(findturtlebot_navigation)/param/move_base_params.yaml"command="load" /> //将参数加载到nodename “move_base”下,比如/move_base/controller_patience

<rosparam file="$(findturtlebot_navigation)/param/global_planner_params.yaml"command="load" /> //加载/move_base/GlobalPlanner下面的参数

<rosparam file="$(findturtlebot_navigation)/param/navfn_global_planner_params.yaml"command="load" />//加载/move_base/NavfnROS下面的参数,比如/move_base/NavfnROS/allow_unknown

<!-- external params file that could be loaded into themove_base namespace -->

<rosparam file="$(arg custom_param_file)"command="load" />

<!-- reset frame_id parameters using user input data -->

//下面可以覆盖上面配置文件加载的参数:

<param name="global_costmap/global_frame"value="$(arg global_frame_id)"/>

<param name="global_costmap/robot_base_frame"value="$(arg base_frame_id)"/>

<param name="local_costmap/global_frame"value="$(arg odom_frame_id)"/>

<param name="local_costmap/robot_base_frame"value="$(arg base_frame_id)"/>

<param name="DWAPlannerROS/global_frame_id"value="$(arg odom_frame_id)"/>



<remap from="cmd_vel"to="navigation_velocity_smoother/raw_cmd_vel"/>

<remap from="odom" to="$(arg odom_topic)"/>

<remap from="scan" to="$(arg laser_topic)"/>

</node>

</launch>



在代码中获取参数的方法:

ros::NodeHandle private_nh("~");这里表明使用privatenamespace, 也就是说以nodename作为namespace. nodename是”move_base”,所以后面要找的参数都是/move_base下面的。



//get some parameters that will be global to the move basenode

std::string global_planner, local_planner;

private_nh.param("base_global_planner",global_planner, std::string("navfn/NavfnROS"));

这里就是要查找/move_base/base_global_planner参数。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值