ROS bag play in python

3084 ワード

サブプロセスモジュールは、Pythonプログラム内で新しいプロセスをサポートし、I/Oパイプを接続してリターンコードを取得するモジュールであり、他の言語で生成されるプログラムを統合・制御できるモジュールである.このモジュールは、既存の古いモジュールと関数(os.system,os.spawn*)の代わりに作成されます.(またはos.popenのような関数...)
node
#!/usr/bin/env python
import rospy
import subprocess

rospy.init_node("none")
player_proc = subprocess.Popen(['rosbag', 'play', 'subset.bag', '-q'], cwd="/home/cjh/catkin_ws/src/test/bags/")
これを使用してlaunch fileで実行します.
launch file
<launch>
  <node pkg="rosbag_test" type="test.py" name="test_node" >
  </node>
</launch>
同様にrosbagをPythonでnode nameを付与してプレイすることができる.
[ref]
  • https://stackoverflow.com/questions/23330228/subprocess-commands-in-c
  • https://soooprmx.com/python-subprocess-1/