首页 > 技术文章 > 在python代码中启动launch文件,在ros节点内开启另一个节点

yang220 2020-03-18 14:35 原文

1. 引用.launch文件(替换您选择的文件路径)并启动/关闭它。

import roslaunch
import rospy

rospy.init_node('en_Mapping', anonymous=True)
uuid = roslaunch.rlutil.get_or_generate_uuid(None, False)
roslaunch.configure_logging(uuid)
# launch = roslaunch.parent.ROSLaunchParent(uuid, ["/home/haier/catkin_ws/src/testapi/launch/test_node.launch"])
launch = roslaunch.parent.ROSLaunchParent(uuid, ["/opt/ros/kinetic/share/rosbridge_server/launch/rosbridge_websocket.launch"])
launch.start()
rospy.loginfo("started")

rospy.sleep(3)
# 3 seconds later
launch.shutdown()

原文链接: http://wiki.ros.org/roslaunch/API%20Usage

2. 在代码中直接用system启动,方便直接,相当于在命令行中启动

前提:导入os模块

代码: os.system('roslaunch rosbridge_server rosbridge_websocket.launch')

如果需要导入参数,需要在冒号之外加入  %(),在括号内依次填入参数,并使用 %s 替代原参数位置

同理可使用此方法在一个节点里面开启其他节点

 

推荐阅读