PCL学习第一天

PCl学习的第一天

点云数据结构:

1
2
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_front(new pcl::PointCloud<pcl::PointXYZ>);
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_rear (new pcl::PointCloud<pcl::PointXYZ>);

pcl::PointCloud<T>
→ PCL 的点云容器模板类

pcl::PointXYZ
→ 每个点只有 x y z(三维坐标)

读取 PCD 文件(把磁盘点云读进内存)

1
2
3
pcl::io::loadPCDFile(front_pcd, *cloud_front);
pcl::io::loadPCDFile(rear_pcd, *cloud_rear);

loadPCDFile
→ 从 .pcd 文件解析点云

*cloud_front
→ 解引用 shared_ptr,把数据写进点云对象本体

都已经是真实空间坐标(但仍在 相机坐标系)。

读取外参矩阵

1
2
Eigen::Matrix4f T_front = LoadMatrix4x4(Tf_path);
Eigen::Matrix4f T_rear = LoadMatrix4x4(Tr_path);
  • 外参文件 lidar_transform_xxx.txt
    本质是:
1
2
R(3×3)  t(3×1)
0 0 0 1
  • Eigen::Matrix4f

对前相机点云做外参变换

1
pcl::transformPointCloud(*cloud_front, *front_robot, T_front);