ROS的launch启动文件的使用方法
launch启动文件的使用方法
功能 |
参数 |
描述 |
参数 设置 |
<launch> |
launch文件中的根元素采用<launch>标签定义 |
<node> |
启动节点 <node pkg="package-name" type="executable-name" name="node-name" /> • pkg:节点所在的功能包名称 • type:节点的可执行文件名称 • name:节点运行时的名称 • output 、respawn 、required 、ns 、args |
|
<param> / <rosparam> |
设置ROS系统运行中的参数,存储在参数服务器中。 <param name="output_frame" value="odom"/> • name:参数名 • value:参数值 加载参数文件中的多个参数: <rosparam file="params.yaml" command="load" ns=“params" /> |
|
<arg> |
launch文件内部的局部变量,仅限于launch文件使用 <arg name="arg-name" default="arg-value" /> • name:参数名 • value:参数值 调用: <param name="foo" value="$(arg arg-name)" /> <node name="node" pkg="package" type="type " args="$(arg arg-name)" /> |
|
重映射 |
<remap > |
重映射ROS计算图资源的命名。 <remap from="/turtlebot/cmd_vel" to="/cmd_vel"/> • from:原命名 • to:映射之后的命名 |
嵌套 |
<include> |
包含其他launch文件,类似C语言中的头文件包含。 <include file="$(dirname)/other.launch" /> • file:包含的其他launch文件路径 |
新建一个功能包
cd ~/catkin_ws/src
catkin_create_pkg learning_launch
在leaning_launch下新建一个文件夹launch
可以放.launch文件了
①/home/yys/catkin_ws/src/learning_launch/launch/simple.launch
<launch>
<node pkg="learning_topic" type="person_subscriber" name="talker" output="screen" />
<node pkg="learning_topic" type="person_publisher" name="listener" output="screen" />
</launch>
先编译一下工作空间
cd ~/catkin_ws
catkin_make
运行launch
roslaunch learning_launch simple.launch
②/home/yys/catkin_ws/src/learning_launch/launch/turtlesim_parameter_config.launch
<launch>
<param name="/turtle_number" value="2"/>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
<param name="turtle_name1" value="Tom"/>
<param name="turtle_name2" value="Jerry"/>
<rosparam file="$(find learning_launch)/config/param.yaml" command="load"/>
</node>
<node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen"/>
</launch>
launch下新建config文件夹
/home/yys/catkin_ws/src/learning_launch/config/param.yaml
A: 123
B: "hello"
group:
C: 456
D: "hello"
运行命令
roslaunch learning_launch turtlesim_parameter_config.launch
查看参数
rosparam list
yys@yys:~$ rosparam list
/rosdistro
/roslaunch/uris/host_yys__43929
/rosversion
/run_id
/turtle_number
/turtlesim_node/A
/turtlesim_node/B
/turtlesim_node/background_b
/turtlesim_node/background_g
/turtlesim_node/background_r
/turtlesim_node/group/C
/turtlesim_node/group/D
/turtlesim_node/turtle_name1
/turtlesim_node/turtle_name2
获取节点个数
rosparam get /turtle_number
yys@yys:~$ rosparam get /turtle_number
2
命名空间gtoup下一级
③/home/yys/catkin_ws/src/learning_launch/launch/start_tf_demo_c++.launch
<launch>
<!-- Turtlesim Node-->
<node pkg="turtlesim" type="turtlesim_node" name="sim"/>
<node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
<node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle1" name="turtle1_tf_broadcaster" />
<node pkg="learning_tf" type="turtle_tf_broadcaster" args="/turtle2" name="turtle2_tf_broadcaster" />
<node pkg="learning_tf" type="turtle_tf_listener" name="listener" />
</launch>
命令启动
roslaunch learning_launch start_tf_demo_c++.launch
④/home/yys/catkin_ws/src/learning_launch/launch/start_tf_demo_py.launch
<launch>
<!-- Turtlesim Node-->
<node pkg="turtlesim" type="turtlesim_node" name="sim"/>
<node pkg="turtlesim" type="turtle_teleop_key" name="teleop" output="screen"/>
<node name="turtle1_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py">
<param name="turtle" type="string" value="turtle1" />
</node>
<node name="turtle2_tf_broadcaster" pkg="learning_tf" type="turtle_tf_broadcaster.py">
<param name="turtle" type="string" value="turtle2" />
</node>
<node pkg="learning_tf" type="turtle_tf_listener.py" name="listener" />
</launch>
命令启动
roslaunch learning_launch start_tf_demo_py.launch
⑤/home/yys/catkin_ws/src/learning_launch/launch/turtlesim_remap.launch
<launch>
<include file="$(find learning_launch)/launch/simple.launch" />
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node">
<remap from="/turtle1/cmd_vel" to="/cmd_vel"/>
</node>
</launch>
命令启动
roslaunch learning_launch turtlesim_remap.launch
process[turtlesim_node-4]: started with pid [64544]
[ INFO] [1599542192.290647792]: Publish Person Info: name:Tom age:18 sex:1
[ INFO] [1599542193.291696642]: Publish Person Info: name:Tom age:18 sex:1
[ INFO] [1599542193.292006177]: Subcribe Person Info: name:Tom age:18 sex:1
[ INFO] [1599542194.290884332]: Publish Person Info: name:Tom age:18 sex:1
[ INFO] [1599542194.291140664]: Subcribe Person Info: name:Tom age:18 sex:1
输入下面命令,海龟会动,重命名原来资源不存在了
yys@yys:~$ rostopic pub /cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
publishing and latching message. Press ctrl-C to terminate
树形图
yys@yys:~/catkin_ws/src/learning_launch$ tree locales-launch: Data of zh_CN locale not found, generating, please wait... . ├── CMakeLists.txt ├── config │ └── param.yaml ├── launch │ ├── simple.launch │ ├── start_tf_demo_c++.launch │ ├── start_tf_demo_py.launch │ ├── turtlesim_parameter_config.launch │ └── turtlesim_remap.launch └── package.xml 2 directories, 8 files
本文作者: 永生
本文链接: https://yys.zone/detail/?id=115
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
发表评论
评论列表 (0 条评论)
暂无评论,快来抢沙发吧!