感知介绍
接下来将对从Asus Xtion Pro(或Microsoft Kinect)传感器生成的数据进行实验,以更加熟悉3D数据的处理。我们将在Rviz下查看其数据流并以各种方式可视化数据。
点云(Point Cloud)数据文件
大多数感知处理的开始是来自传感器的ROS消息数据。 接下来,我们将使用来自常见Kinect样式传感器的3D点云数据。
首先,将点云数据发布为ROS消息以允许在rviz中显示。
在终端中启动运行roscore。
创建一个新目录:
mkdir ~/ex4.2
cd ~/ex4.2
cp ~/industrial_training/exercises/4.2/table.pcd .
从预先记录的table.pcd点云数据文件发布点云消息:
rosrun pcl_ros pcd_to_pointcloud table.pcd 0.1 _frame_id:=map cloud_pcd:=orig_cloud_pcd
验证是否已发布orig_cloud_pcd主题:rostopic list
在RViz中显示点云
启动RViz窗口,以显示点云处理的结果
rosrun rviz rviz
添加一个PointCloud2显示项目并设置所需的主题(/orig_cloud_pcd)。
在RViz中显示结果
实验PCL
PCL提供了各种命令行工具可用来处理点云数据。有140多种命令行工具可用,通过PCL命令行可在不编写任何代码的情况下使您熟悉PCL的功能。尽管命令行工具有助于测试各种处理方法,但是大多数应用程序通常直接将C ++库用于“实际”处理流程。 之后的ROS-I教程更详细地探讨了这些C ++ PCL方法。在当前项目阶段并不会使用到点云数据及其处理操作,故此部分略去。
每个PCL命令都会使用PCL处理命令的结果生成一个新的点云文件(.pcd)。使用pcl_viewer直接查看结果,或使用pcd_to_pointcloud命令将点云数据作为ROS消息发布,以显示在rviz中。在rviz中查看结果后,可以随时停止pcd_to_pointcloud命令。