如果只是希望运行roslaunch来发布一次TF,可以使用launch文件中的node标签来实现。
下面是一个发布一次TF的launch文件例子:
<launch>
<node pkg="tf2_ros" type="static_transform_publisher" name="static_tf_publisher" args="1 0 0 0 0 0 parent_frame child_frame"/>
<!-- 其他节点 -->
</launch>
在这个例子中,我们使用tf2_ros包中的static_transform_publisher节点来发布从"parent_frame"到"child_frame"的静态变换。args参数指定了变换矩阵,分别为(x,y,z,r,p,y)。注意到此处我们并没有使用ROS节点的spin函数,因为我们只是想发布一次TF,并不需要保持节点一直运行。
启动这个launch文件后,将会发布一次TF,并随着节点的结束而结束。