Skip to content

kahowang/PointCloud-PyUsage

 
 

Repository files navigation

AmPCL

提供点云处理的Python实现

安装

安装依赖

  • ROS1 / ROS2(如需要用到ROS的相关插件)
  • 构建工具
$ pip3 install -U --user build pip setuptools wheel

构建安装和安装包

$ git clone https://github.com/Natsu-Akatsuki/PointCloud-PyUsage --depth=1
$ cd PointCloud-PyUsage
$ bash install.sh

Note

使用开发模式可能出现its build backend is missing the 'build_editable' hook的报错,则可能是系统级别的setuptools的版本覆盖了高版本的setuptools。通过如下命令行可查询当前的版本python3 -c "import setuptools; print(setuptools.__version__)"

程序

包名 作用
io 导入和导出点云文件
visualization 点云可视化
ros-utils 动态调参,ROS消息类型和numpy类型的相互转换
filter 点云下采样和直通滤波

IO

  • 支持npypcdbin点云文件的读取
  • 目前支持读取的字段包括xyzxyzi
# >>> import usage >>>
from ampcl.io import load_pointcloud

# low-level API
pointcloud = load_npy("ampcl/data/pointcloud.npy")
pointcloud = load_txt("ampcl/data/pointcloud.txt")
pointcloud = load_pcd("ampcl/data/pointcloud_ascii.pcd")
# high-level API(支持npy, pcd, bin文件)
pointcloud = load_pointcloud(".ampcl/data/pointcloud.pcd")

# >>> export usage >>>
save_pointcloud(pointcloud, "pointcloud.pcd")

from pointcloud_utils.io import c_load_pcd
c_load_pcd(".ampcl/data/pointcloud_ascii.pcd")

Visualization

  • 可视化激光点云
  • 基于强度实现点云伪彩色增强
from ampcl.io import load_pointcloud
from ampcl.visualization import o3d_viewer_from_pointcloud
pointcloud = load_pointcloud("ampcl/data/pointcloud_ascii.pcd")
o3d_viewer_from_pointcloud(pointcloud)

命令行

可视化点云

  • 基于Open3D的点云可视化,支持npypcdbin点云文件的可视化,目前支持的字段包括xyzxyzi
  • 强度字段使用伪彩色增强
$ o3d_viewer <pointcloud_file>
# 如遇到KITTI数据集这种将强度进行过归一化的则需要加上-n选项
$ o3d_viewer -n <pointcloud_file>

img

BUG

  • 不论是否处于虚拟环境,用开发模式安装的包都无法被Pycharm智能识别,Cannot find reference
  • build构建虚拟环境后,执行的pip为非用户路径下的pip,如若系统路径未安装pip,则会显示No module named pip

规范

  • 遵从pep660setuptools至少需要v64.0才支持单个toml下的develop模式)(@ref

参考资料

仓库 参考
ros_numpy ROS1 点云数据和numpy数据相互转换
ros2_numpy ROS1 点云数据和numpy数据相互转换
ddynamic_reconfigure_python ROS1 动态调参
OpenPCDet 神经网络算子和标定
pykitti KITTI数据集读取
livox_mapping 基于强度值的伪彩色

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 83.0%
  • Cuda 9.4%
  • C++ 7.1%
  • Other 0.5%