首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python 3中导入Rosbag

在Python 3中导入Rosbag
EN

Stack Overflow用户
提问于 2020-01-18 04:18:29
回答 6查看 9.5K关注 0票数 3

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

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

当我跑的时候

代码语言:javascript
复制
import rosbag
bag = rosbag.Bag('test.bag')

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

当我在Python 3中尝试同样的方法时,我得到:

代码语言:javascript
复制
ModuleNotFoundError: No module named 'rosbag'

我也尝试过像sudo apt install python-rosbagsudo apt install python3-rospkgpip3 install rospkg这样的东西,但它们都无济于事。

要从Python 3打开rosbag文件,我应该怎么做?

编辑

这是调用pip3 install rospkg后的输出

代码语言:javascript
复制
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)
EN

回答 6

Stack Overflow用户

发布于 2020-10-12 10:25:33

您可以使用bagpy包读取Python语言中的.bag文件。它可以使用pip安装。

代码语言:javascript
复制
pip install bagpy

简要文档请访问https://jmscslgroup.github.io/bagpy/

以下是示例代码片段:

代码语言:javascript
复制
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')
票数 3
EN

Stack Overflow用户

发布于 2021-07-12 20:43:01

您可以将特定于ROS的PyPI索引用于rosbag和其他ROS Python包:

代码语言:javascript
复制
pip install rosbag --extra-index-url https://rospypi.github.io/simple/

如果您已经将其/opt/ros/$ROS_DISTRO/setup.bash包添加到PYTHONPATH中,那么您可能还需要首先执行unset PYTHONPATH

您还可以安装支持LZ4压缩的roslz4

票数 3
EN

Stack Overflow用户

发布于 2020-04-02 00:36:42

我已经编写了一个纯python3模块来导入rosbag数据。它是独立的--不需要安装ROS。它只适用于选定的消息类型子集,但它应该作为一个示例,您可以按照该示例解压您感兴趣的消息类型:https://github.com/event-driven-robotics/importRosbag

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59794328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档