rosbag遍历数据出错:(unicode error) ‘utf-8’ codec can’t decode byte 0xcd in position 31: invalid continuation byte

主题:

前言

针对ros系统记录的bag文件,可以使用python的rosbag包,按照不同起止时间和topic进行提取。

然而,有的topic可以使用rosbag读取,但是不能遍历,存在解码错误。原因应该是存在中文字符的注释, 这个可以在函数生成的temp.py中看到。

python提取bag文件时发生解码错误:

unicode error) ‘utf-8’ codec can’t decode byte 0xcd in position 31: invalid continuation byte

编译环境:windows visual studio2019,pycharm也有如此问题,即使将file encoding 改成其它编码方式,如GB2312也不行

解决方法:

使用linux环境下的python提取,即可避免此解码问题

本人使用ubuntu下的pycharm进行提取,即可正常进行。两种系统下pycharm的界面、用法完全一致。

安装rosbag:

本人使用pip包管理器,直接安装rosbag是不行的,在网上搜了好久才看到一个靠谱的方法,安装命令如下:

 

·pip install rosbag –extra-index-url //rospypi.github.io/simple/

 

参考链接: python3 安装rosbag等package

其实主要是手动添加网址

注意有时国内网打不开这个网址,如下图所示。可以等一段时间,好使了再安装

 

 

 

 

Tags: