ros常用代码整理

#!/usr/bin/env python
#coding=utf-8

import rospy
from std_srvs.srv import Trigger, TriggerResponse
import roslaunch
import subprocess

'''
以服务形式,通过roslaunch来控制launch文件的启动和停止
'''

class LaunchManagerServer:
    def __init__(self):
        # Initialize the ROS node
        rospy.init_node('launch_manager_server')

        # Create the ROS service
        self.close_service = rospy.Service('/close_launch', Trigger, self.handle_close_request)
        self.start_service = rospy.Service('/start_launch', Trigger, self.handle_start_request)

        # Create the ROS launch object
        self.launch = None
    def handle_start_request(self,req):
        rospy.loginfo("Launch process is start.")
        self.start()
        return TriggerResponse(success=True, message="Launch process is running.")


    def handle_close_request(self, req):
        # Shutdown the launch process
        if self.launch is not None:
            self.launch.shutdown()
            rospy.loginfo("Launch process is shutdown.")
            return TriggerResponse(success=True, message="Launch process is shutdown.")

        return TriggerResponse(success=False, message="No launch process is running.")

        
    def start(self):
        # self.start_launch('my_pack ceshi2.launch')

        # create ROSLaunchParent object
        uuid = roslaunch.rlutil.get_or_generate_uuid(None, False)
        # file = "/path/to/your/launch/file.launch"
        file1 = "/home/zx/zhangy/ws/del_ws/src/my_pack/launch/ceshi.launch" 
        file2 = "/home/zx/zhangy/ws/del_ws/src/my_pack/launch/ceshi2.launch" 
        self.launch = roslaunch.parent.ROSLaunchParent(uuid, [file1, file2], is_core=False)

        # Start the launch process
        self.launch.start()
        rospy.loginfo("Launch process is started.")

        

if __name__ == '__main__':
    manager_server = LaunchManagerServer()
    manager_server.start()
    rospy.spin()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值