ROS系列——launch文件简单介绍
说明
本文章主要介绍了launch文件的简单使用,部分内容来源于网络,仅供学习使用。
一个实例launch文件
<launch>
<arg name="model" default="model_name" doc="this is a model name"/>
<arg name="param_path" default="$(find package_name)/data/" doc="this is a param path" />
<group ns="group_name">
<node pkg="package_name1" name="node_name1" type="node_type1" output="screen" >
<param name="model" value="$(arg model)"/>
<param name="param_path" value="$(arg param_path)/xx.xml" />
<remap from="old_topic" to="new_topic"/>
</node>
</group>
<node pkg="package_name2" name="node_name2" type="node_type2" output="screen" >
<param name="string" type="str" value="ABC" />
<param name="int" type="int" value="6" />
<rosparam param="min_in">[1, 1, 1]</rosparam>
<rosparam param="paras">
"a": 1
"b": 2
</rosparam>
</node>
<node pkg="rviz" name="rviz" type="rviz" args="-d $(find package_name)/rviz/package_name.rviz">
</node>
</launch>
简单讲解
type和name
<node pkg="package_name2" name="node_name2" type="node_type2" output="screen" >
注: type为可执行文件的名字, name就是node的名字。
group组名
<group ns="group_name">
......
</group>
注: 如果程序代码中设置的输出topic为/rslidar_points,则即使加了group组名,最终的topic仍为/rslidar_points。 如果为rslidar_points,则带组名。
topic重映射
<remap from="old_topic" to="new_topic"/>
注:将名称为old_topic的话题转换为名称为new_topic的话题。
设置参数
使用param
<param name="string_name" type="str" value="ABC" />
<param name="int_name" type="int" value="6" />
<param name="param_path" value="$(arg param_path)/xx.xml" />
注:支持 string、 int 、double和file(xml, csv等)
在代码中使用如下:
ros::NodeHandle priv_nh(“~”);
std::string string_name;
priv_nh.paramstd::string(“string_name”, string_name, “string_defalut”);
priv_nh.param(“int_name”, int, “0”);
使用rosparam
<rosparam param="range">[1, 1, 1]</rosparam>
<rosparam param="paras">
"a": 1
"b": 2
</rosparam>
注:使用rosparam向node传输参数
在代码中使用如下:
std::vector v_range(3, 0);
priv_nh.getParam(“range”, v_range);
std::map<std::string, double> m_paras;
priv_nh.getParam(“paras”, m_paras);
调用launch
<include file="$(find rs_fusion)/../../launch/lidar_driver_four.launch" />
注: 可以使用…表示上一层。