在開發中我們經常會遇到使用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獲取到的變量