一个简单的Python库,用于录制ROS点云话题并导出为PCD文件。
Github地址:https://github.com/Knighthood2001/ros-pointcloud-recorder
重点说明:安装这个项目包的时候,我没有指定需要安装pcl-ros和rosbag,但是你在使用的时候,是需要有这个包的,因为这两个包,一般都是通过apt install ros-<ros版本>-pcl-ros和apt install ros-<ros版本>-rosbag安装的,所以你需要先安装这两个包。
- ROS (必须安装
rosbag和pcl_ros),因此你需要先安装ROS环境,才能使用ros-pointcloud-recorder。 - Python 3.6+
pip install ros-pointcloud-recorderfrom ros_pointcloud_recorder import PointCloudRecorder
# 创建录制器
recorder = PointCloudRecorder(
topics=['/points_raw1', '/points_raw2'],
output_dir='./data',
recording_duration=2.0
)
# 执行录制并导出
pcd_paths = recorder.record_and_export()
print("导出完成:")
for topic, path in pcd_paths.items():
print(f"{topic} -> {path}")运行结果:
wu@wu:~/code/pythonDemo$ /usr/bin/python3 /home/wu/code/pythonDemo/base_usage.py
2025-06-10 16:10:43,978 - PointCloudRecorder - INFO - 初始化录制器: 输出目录=./data, 录制时长=2.0s
2025-06-10 16:10:43,978 - PointCloudRecorder - INFO - 开始录制话题: /points_raw1, /points_raw2
2025-06-10 16:10:44,479 - PointCloudRecorder - INFO - 录制中... (时长: 2.0s)
2025-06-10 16:10:46,894 - PointCloudRecorder - INFO - 录制已停止
2025-06-10 16:10:47,394 - PointCloudRecorder - INFO - 导出话题 /points_raw1 到 ./data/points_raw1
2025-06-10 16:10:47,992 - PointCloudRecorder - INFO - 导出话题 /points_raw2 到 ./data/points_raw2
2025-06-10 16:10:48,604 - PointCloudRecorder - INFO - 已清理临时文件: ./data/recorded_point_clouds.bag
导出完成:
/points_raw1 -> ./data/points_raw1
/points_raw2 -> ./data/points_raw2- 自定义导出路径
- 单独控制录制和导出流程
- 自定义日志配置
- 保留中间bag文件
详细用法请参考示例代码。
- 模块化设计:将功能分解为可独立调用的方法
- 灵活性:支持自定义路径、录制时长等参数
- 健壮性:完善的错误处理和日志记录
- 易用性:提供简单的一键录制导出方法
- 可扩展性:设计良好的API便于未来扩展功能
通过这种封装,用户只需简单的几行代码就可以实现点云录制功能,同时保留了高级用户需要的灵活性。
- v0.1.0 (2025-06-10)
- 初始发布,提供基本的点云录制和导出功能
- v0.1.1 (2025-06-10)
- 修改了README.md
- v0.1.2 (2025-06-10)
- 修改了requirements.txt
- v0.1.3 (2025-06-10)
- 修改了README.md
- 修改了setup.py
- v0.1.4 (2025-06-10)
- 支持自定义bag文件名称
- 完善了README.md