ROS点滴
前言:知其然,知其所以然。
一、launch
launch文件使用标签的方式进行书写。常见的标签有那么几种:
<launch> <!--根标签-->
<node> <!--需要启动的node及其参数-->
<include> <!--包含其他launch-->
<machine> <!--指定运行的机器-->
<env-loader> <!--设置环境变量-->
<param> <!--定义参数到参数服务器-->
<rosparam> <!--加载yaml文件中的参数到参数服务器-->
<arg> <!--定义变量-->
<remap> <!--设定 topic 映射-->
<group> <!--设定分组-->
</launch> <!--根标签-->
具体例子与说明
<launch>
<arg name="project" default="lio_sam"/>
<!--声明一个arg,设置默认值为lio_sam,可以被<include>tag 重写-->
<!--arg可以理解为局部变量,仅局限于本launch文件-->
<!-- Parameters -->
<rosparam file="$(find lio_sam)/config/params.yaml" command="load" />
<!--用rosparam导入参数文件-->
<!--param是全局,即参数是全局的,由ROS Master进行管理,与arg不同-->
<!--- LOAM -->
<include file="$(find lio_sam)/launch/include/module_loam.launch" />
<!--include 将另一个launch文件添加到本文件,同时运行多个launch文件-->
<!--用$(find package-name)定位到对应的功能包,功能包名一般为CMakeLists的${PROJECT_NAME}-->
<!--include file="$(find package-name)/launch-file-name " ns="namespace_name" /-->
<!--有时可以用ns来设置namespace属性,使node有前缀,便于识别-->
<!--也比如开启多个功能包的节点,某些节点取名恰好一样,可以用ns来区别开-->
<!--- Robot State TF -->
<include file=