ros2 bag删除某个话题的方法

在使用ros2的bag时想要删掉bag中的某些topic。发现ros2中的bag并没有类似ros1中filter的功能,搜了一下发现PyPI有相关的API,如下链接。

rosbag-topic-remove · PyPI

本人在使用时发现了以下问题并解决。

1. 该包需要python版本>=3.9,因此把python升级到了3.10

2. 安装按成后,在使用官方文档的命令

rosbag-topic-remove /path/to/rosbag -t /topic/to_delete

后,报错writer.add_connection() 这个函数的参数不对,应该是3个但是给了5个。

查看python3.10/site-packages/rosbag_topic_remove/topic_remover.py

这个文件的192行如下

                        conn_map[conn.id] = writer.add_connection(
                            conn.topic,
                            conn.msgtype,
                            ext.serialization_format,
                            ext.offered_qos_profiles,
                        )

改为

                        conn_map[conn.id] = writer.add_connection(
                            conn.topic,
                            conn.msgtype,
                        )

即去掉后面两个参数。再次运行就可以了,测试成功删掉了一个topic。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值