我正在尝试读取Python 3中的rosbag文件。
我安装了ROS2 (Eloquent Elusor),它应该支持Python3。
当我跑的时候
import rosbag
bag = rosbag.Bag('test.bag')从Python 2.7开始,它就可以工作了。
当我在Python 3中尝试同样的方法时,我得到:
ModuleNotFoundError: No module named 'rosbag'我也尝试过像sudo apt install python-rosbag、sudo apt install python3-rospkg和pip3 install rospkg这样的东西,但它们都无济于事。
要从Python 3打开rosbag文件,我应该怎么做?
编辑
这是调用pip3 install rospkg后的输出
Requirement already satisfied: rospkg in ./rosbag-env/lib/python3.6/site-packages
Requirement already satisfied: catkin-pkg in ./rosbag-env/lib/python3.6/site-packages (from rospkg)
Requirement already satisfied: distro in ./rosbag-env/lib/python3.6/site-packages (from rospkg)
Requirement already satisfied: PyYAML in ./rosbag-env/lib/python3.6/site-packages (from rospkg)
Requirement already satisfied: pyparsing in ./rosbag-env/lib/python3.6/site-packages (from catkin-pkg->rospkg)
Requirement already satisfied: python-dateutil in ./rosbag-env/lib/python3.6/site-packages (from catkin-pkg->rospkg)
Requirement already satisfied: docutils in ./rosbag-env/lib/python3.6/site-packages (from catkin-pkg->rospkg)
Requirement already satisfied: six>=1.5 in ./rosbag-env/lib/python3.6/site-packages (from python-dateutil->catkin-pkg->rospkg)发布于 2020-10-12 10:25:33
您可以使用bagpy包读取Python语言中的.bag文件。它可以使用pip安装。
pip install bagpy简要文档请访问https://jmscslgroup.github.io/bagpy/
以下是示例代码片段:
import bagpy
from bagpy import bagreader
b = bagreader('09-23-59.bag')
# get the list of topics
print(b.topic_table)
# get all the messages of type velocity
velmsgs = b.vel_data()
veldf = pd.read_csv(velmsgs[0])
plt.plot(veldf['Time'], veldf['linear.x'])
# quickly plot velocities
b.plot_vel(save_fig=True)
# you can animate a timeseries data
bagpy.animate_timeseries(veldf['Time'], veldf['linear.x'], title='Velocity Timeseries Plot')发布于 2021-07-12 20:43:01
您可以将特定于ROS的PyPI索引用于rosbag和其他ROS Python包:
pip install rosbag --extra-index-url https://rospypi.github.io/simple/如果您已经将其/opt/ros/$ROS_DISTRO/setup.bash包添加到PYTHONPATH中,那么您可能还需要首先执行unset PYTHONPATH。
您还可以安装支持LZ4压缩的roslz4。
发布于 2020-04-02 00:36:42
我已经编写了一个纯python3模块来导入rosbag数据。它是独立的--不需要安装ROS。它只适用于选定的消息类型子集,但它应该作为一个示例,您可以按照该示例解压您感兴趣的消息类型:https://github.com/event-driven-robotics/importRosbag
https://stackoverflow.com/questions/59794328
复制相似问题