雷达获取到的点云数据, 如何录制到Rosbag文件?
作为一个Javaer我对这个问题进行了搜索,却很难找到答案。
我只好对自己的需求先进行整理。
啥是ROS?
ROS 作为一个机器人操作系统(Robot Operating System),有一套自己的生态。
啥是PointCloud?
ROS中定义的一种数据格式,每个点都有基本的xyz坐标,很多点就能构成类似图像的效果。
PointCloud和PointCloud2什么区别?
PointCloud2是PointCloud格式的升级版,PointCloud很多播放软件直接不做支持了,PointCloud2格式才支持,优先使用PointCloud2。
(别问我怎么知道PointCloud播放支持不好的!)
.bag文件?
一种文件格式,可以持久化ROS中各种结构的数据。
我的问题变成了:
用代码的方式写数据进 ".bag" 文件,应该用那个库?
这里有答案: http://wiki.ros.org/rosbag
The rosbag package provides a command-line tool for working with bags as well as code APIs for reading/writing bags in C++ and Python.
不能指望我会C++,只能用Python了。
Python库Writing示例:
https://ternaris.gitlab.io/rosbags/topics/rosbag1.html#writing-rosbag1
Rosbags, 托管在gitlab上,只有37个Star,调试成功之路几乎必然是艰辛的。
Python版本要求:
不要指望在搜索引擎上找到关于此库什么, 请仔细阅读文档。 同时Rosbags的issues中搜索相关PointCloud的issues, 这是重要的参考!
示例代码
参考 issues/27
issues/27写很全面了,花了很多时间才走到这里,却发现只是完成了一件普通的事。
Java的库实在太丰富了,调这种用的人少的库,还是按以前的思维,总想着利用搜索引擎走捷径,结果反而花了大量的时间,收获却很少,越是人少的库,就越应该认真读文档,查阅 issues,必要的时候甚至向作者提问。
即使是Java的很多库,都应该仔细阅读文档,一些稍微复杂的问题,花上几个小时在文档上,往往比直接到处乱搜有效。
本文由 考拉 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Nov 23,2022