在 Python 3 中导入 Rosbag

新手上路,请多包涵

我正在尝试从 Python 3 读取 rosbag 文件。

我安装了 ROS2 (Eloquent Elusor),它应该支持 Python 3。

当我跑步时

import rosbag
bag = rosbag.Bag('test.bag')

从 Python 2.7 开始,它可以工作。

当我在 Python 3 中尝试相同的操作时,我得到:

 ModuleNotFoundError: No module named 'rosbag'

我也尝试过类似的东西: sudo apt install python-rosbagsudo apt install python3-rospkgpip3 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)

原文由 Lovro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.3k
1 个回答

您可以使用 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')

原文由 Astra Uvarova - Saturn‘s star 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题