使用Python代码启动launch文件

使用Python代码启动launch文件

使用python代码启动launch文件
本文转载自
使用python代码启动launch文件 https://community.bwbot.org/topic/498/%E4%BD%BF%E7%94%A8python%E4%BB%A3%E7%A0%81%E5%90%AF%E5%8A%A8launch%E6%96%87%E4%BB%B6

在开发中我们经常会遇到使用python代码启动launch文件这样的问题。一般的做法是使用subprocess调用roslaunch。但是这种方法使用起来并不方便。要涉及到自己去控制进程的状态。由于roslaunch实际上是用python实现的。使用python调用launch文件实际上有更简单的方法。

import roslaunch

uuid = roslaunch.rlutil.get_or_generate_uuid(None, False)
roslaunch.configure_logging(uuid)
tracking_launch = roslaunch.parent.ROSLaunchParent(
    uuid, ["/home/xiaoqiang/Documents/ros/src/xiaoqiang_track/launch/track_body.launch"])
tracking_launch.start()

这样就成功启动了一个launch文件。把uuid后面的路径换成自己的launch文件路径就可以了。

而且我们可以通过roslaunch直接关闭launch文件启动的节点。

tracking_launch.shutdown() # tracking_launch 即是上面通过roslaunch获取到的变量

这样使用起来就很方便了。

这里注意:

因为没有join方法,所以程序出错后退出了。tracking_launch.start()是不阻塞的,需要自己阻塞主线程。比如

import roslaunch
import rospy
import time

uuid = roslaunch.rlutil.get_or_generate_uuid(None, False)
roslaunch.configure_logging(uuid)
tracking_launch = roslaunch.parent.ROSLaunchParent(
    uuid, ["/home/xiaoqiang/Documents/ros/src/xiaoqiang_track/launch/track_body.launch"])
tracking_launch.start()
while not rospy.is_shutdown():
    time.sleep(1)

参考链接:

[1] 使用python代码启动launch文件 https://community.bwbot.org/topic/498/%E4%BD%BF%E7%94%A8python%E4%BB%A3%E7%A0%81%E5%90%AF%E5%8A%A8launch%E6%96%87%E4%BB%B6

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值