ROS1/Linux——Launch文件使用

ROS1/Linux------Launch文件使用


文章目录


参考链接

优势

  • 不用通过手动启动 roscore
  • 可以一次性启动多个需要启动的节点
  • 可以嵌套

文件基本格式

  • 保存格式:文件名.launch
  • 文件内部格式
xml 复制代码
<launch>
	<xxxxxx/>  <!-- 这里塞各种东西 -->
	<!-- 示例 -->
	<param name="/turtle_number" value="2"/>
	<node pkg="turtlesim" name="sim1" type="turtlesim_node"/> 
	
	<node pkg="turtlesim" name="sim2" type="turtlesim_node">
		<param name="turtle_name1" value="a"/>
		<param name="turtle_name2" value="b"/>
	</node>  <!-- 示例 -->
</launch>

基本语法

node 节点

xml 复制代码
<node pkg="turtlesim" name="sim1" type="turtlesim_node"/>
<!-- 
pkg: 节点所在的功能包名字
type: 节点的可执行文件
name: 节点运行时的文件(代替程序中初始化的原始节点名,便于启动多个)
output: 日志信息是否打印到终端(output="screen",打印到终端)
respawn: 如果突然挂了,是否要重新启动(respawn="true",该节点停止时,会自动重启,默认为false)
required: 是否一定需要启动(required="true",必要节点,当该节点终止时,launch文件中的其他节点也被终止。)
ns: 命名空间(避免命名冲突)
args: 给节点输入参数
 -->

param/rosparam/arg 参数设置

xml 复制代码
 <!-- 把某个参数存储在参数服务器中 -->
<param name="output_frame" value="odom"/>
<!-- 
	name: 参数名
	value: 参数值
 -->
 
<!-- 加载参数文件中的多个参数 -->
<rosparam file="params.yaml" command="load" ns="params"/>
 
<!-- 加载launch文件内部的变量,仅限于launch文件内使用 -->
<arg name="arg-name" value="arg-value"/>
<!-- 
	name: 参数名
	value: 参数值
 -->
<!-- 调用arg -->
<param name="foo" value="$(arg arg-name)"/>
<node pkg="turtlesim" name="sim1" type="turtlesim_node" args="$(arg arg-name)"/>

remap 重映射

重映射ROS计算图资源的命名

xml 复制代码
<remap from="/turtlebot/cmd_vel" to="/cmd_vel"/>
<!-- 
	换完名字后,原始名字在计算图中将不存在
	from: 原命名
	to: 映射后的命名
 -->

include 嵌套

包含其他launch文件

xml 复制代码
<include file="$(dirname)/other.launch" depends="base.launch"/>
<!-- 
	file: 其他launch文件的路径
	depends: 依赖某个launch文件(按序启动)
	$(dirname): 当前launch文件所在的文件夹
	$(find dirname): 找到名字为dirname的文件夹(一般是功能包名)
 -->

相关推荐
尘似鹤25 分钟前
linux驱动学习---有些节点不会生成platform_device,怎么访问它们
linux
iCxhust27 分钟前
windows环境下在Bochs中运行Linux0.12系统
linux·运维·服务器·windows·minix
九河云2 小时前
数字化转型中的网络安全风险与零信任架构实践
运维·科技·安全·web安全·架构
七七七七074 小时前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
守城小轩4 小时前
轻量级HTTP&Socks代理GOST: Linux编译安装
运维·网络·网络协议
qq_5470261794 小时前
Flowable 工作流引擎
java·服务器·前端
奋斗的蛋黄5 小时前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
wanhengidc6 小时前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
图图图图爱睡觉7 小时前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub7 小时前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp