1.需求
一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动,显然效率低下,如何优化?
官方给出的优化策略是使用 launch 文件,可以一次性启动多个 ROS 节点。
2.实现
-
选定功能包右击 ---> 添加 launch 文件夹
-
选定 launch 文件夹右击 ---> 添加 launch 文件
-
编辑 launch 文件内容
<launch> <node pkg="helloworld" type="demo_hello" name="hello" output="screen" /> <node pkg="turtlesim" type="turtlesim_node" name="t1"/> <node pkg="turtlesim" type="turtle_teleop_key" name="key1" /> </launch>
-
node ---> 包含的某个节点
-
pkg -----> 功能包
-
type ----> 被运行的节点文件
-
name --> 为节点命名
-
output-> 设置日志的输出目标
-
-
运行 launch 文件
roslaunch 包名 launch文件名
-
运行结果: 一次性启动了多个节点
<!--rosrun turtlesim--> <launch> <!--添加被执行的节点--> <!--乌龟GUI--> <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI"/> <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key"/> </launch>
运行:ctrl+~(esc下的键)
roslaunch hello_vscode start_turtle.launch
<!--rosrun turtlesim--> <launch> <!--添加被执行的节点--> <!--乌龟GUI--> <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI"/> <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key"/> <node pkg="hello_vscode" type="hello_vscode_c" name="hello" output="screen"/> </launch>
标签:文件,启动,launch,---,终端,ROS,节点 来源: https://www.cnblogs.com/caiyishuai/p/14998815.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。