前言
学习ROS和SLAM过程中的一次尝试。代码已跑通。
在学习Adam博客(24-25)的PCL点云库相关部分的过程中,对遇到一些坑和一些博客里面没有详细说明的地方进行记录。博客链接
环境 / 准备
- Ubuntu16.04 + ROS Kinetic
-
其中ROS在安装的时候选的full,安装full的话应该是把PCL相关的东西给装好了,因此在测试的时候并没有显示PCL相关的错误。
-
下载好完整的代码,下载链接
part1.博客(24)
- 根据博客进行,有一点需要注意,由于新建的pcl_ws是一个新的catkin工作空间,刚开始的时候仅新建了src目录,在工作空间
catkin_make之后会多出两个文件夹,再重新设置环境变量,原文是采用的source devel/setup.bash使得在当前terminal生效,建议将其路径加入到 ~/.bashrc中(gedit ~/.bashrc打开 ~/.bashrc进行编辑)使得以后开新的terminal不用再设置。

在source ~/.bashrc之后查找ROS路径即可看到,第一个路径便是刚加入的路径。

- 之前自己根据博客实践,有建立相关的文件夹和跑过相关的代码,甚至成功看到了
/velodyne_points和/filtered_points两个topic的点云效果。效果如下。


- 点云地面过滤算法的部分,参考链接:Ray Ground Filter一种实时车载激光点云路面分割算法
- Fast Segmentation of 3D Point Clouds for Ground Vehicles 论文下载:
链接:https://pan.baidu.com/s/1MXGU5lci4XppRyWIwHOZKA
提取码:o5sg
- 问题来了!
下载文件后想要测试下载的代码。我是先删除的原来src下的pcl_test文件夹,之后将下载的pcl_test文件夹放进去。

之后回到pcl_ws进行catkin_make编译。很快地通过了编译。但是后面打开rviz的时候显示的结果和之前是一样的,查询不到想要的topic,也就是没有/filtered_points_ground和/filtered_points_no_ground这两个topic,开新的terminal用rostopic list或者打开计算图rqt_graph都没有看到。
- 解决方案
原因应该是在于原来文件的生成文件没有删除,于是删除了pcl_ws下面的两个文件夹,仅保留src文件夹。在工作空间重新编译,catkin_make之后生成两个新的文件夹。

- 之后再测试就没问题了
roslaunch pcl_test pcl_test.launch
rosbag play --clock test.bag
rviz

对RVIZ中的某些参数进行设置,可以得到下面的效果。白色部分为地面,红色是非地面。

- 下面是自己录的一段设置RVIZ的视频
链接:https://pan.baidu.com/s/1RzvkSSPabNR5B-jktvLYtQ
提取码:3x18
part2.博客(25)
将下载的文件夹放到src下面,现在下面有两个文件夹,一个是刚放进来的聚类,一个是之前的pcl_test。

放进来之后,回到工作空间下,将src之外的两个文件夹删除,之后打开terminal重新编译。
刚开始编译的时候回直接报错,需要安装某个插件。

使用下面的代码进行安装:
sudo apt-get install ros-kinetic-jsk-rviz-plugins
安装完后回到工作空间进行编译就可以了。

其他的根据原来的博客设置即可。注意图中的BoundingBoxArray需要选topic。

- 自己录制的一段视频:设置过程及效果
链接:https://pan.baidu.com/s/1ltU8XT0P2vu-O6q9GifgWA
提取码:2401
其他参考链接
- 点云数据转换
https://blog.csdn.net/u010284636/article/details/79214841
http://wiki.ros.org/pcl/Overview
- fast segmentation of 3d point clouds for ground vehicles代码解析
https://blog.csdn.net/super_mage413/article/details/98171655
https://github.com/lorenwel/linefit_ground_segmentation
- 点云分割
https://www.cnblogs.com/li-yao7758258/p/6496664.html

4644

被折叠的 条评论
为什么被折叠?



