Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 3中导入Rosbag_Python_Python 3.x_Ros_Ros2_Rosbag - Fatal编程技术网

在Python 3中导入Rosbag

在Python 3中导入Rosbag,python,python-3.x,ros,ros2,rosbag,Python,Python 3.x,Ros,Ros2,Rosbag,我正在尝试从Python 3读取rosbag文件。 我安装了ROS2(雄辩的Elusor),它应该支持Python 3 当我跑的时候 import rosbag bag = rosbag.Bag('test.bag') 在Python2.7中,它可以工作。 当我在Python 3中尝试同样的方法时,我得到: ModuleNotFoundError: No module named 'rosbag' 我也尝试过类似的方法:sudo-apt-install-python-rosbag,sudo-

我正在尝试从Python 3读取rosbag文件。
我安装了ROS2(雄辩的Elusor),它应该支持Python 3

当我跑的时候

import rosbag
bag = rosbag.Bag('test.bag')
在Python2.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)

在执行pip3安装rospkg后,您能向我们展示结果吗?

试试这个,它会起作用:

pip3 install pyrosbag

我已经编写了一个用于导入rosbag数据的纯Python 3模块。它是独立的-无需安装ROS。它仅适用于选定的消息类型子集,但应作为一个示例,您可以按照该示例解压缩感兴趣的消息类型:

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

pip install 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')

根据它的说法,您必须在pip3中执行以下操作才能使rosbag正常工作:

pip3安装pycryptodomexpythongnupg
到目前为止为我工作。希望这也能帮助所有其他人

设置:

  • Ubuntu 18.04
  • 旋律的
  • 蟒蛇3

pyrosbag与OP要求的软件包不同。如果您检查pyrosbag,您将看到它是他要求的。据我所知,rosbag库仅为python2.7,根据我的研究,Python3上还不存在。pyrosbag不是一个稳定的库,我不建议使用它。有一些教程可以在python3中使用python2.7libs,尽管这让我感觉有点不舒服。我现在和你在同一条船上。
bagreader
的实现如何在下面使用
import rosbag
,它是如何安装的?我不确定我是否理解你的问题。