电科2023夏令营视觉组学习内容5&6-PCL&ROS

LIMITI_SUMMER_CAMP_CV

github:GitHub - Zzzingzzz/LIMITI_SUMMER_CAMP_CV: 2023电子科技大学LIMITI机器人队夏令营视觉组线上学习内容

2023电子科技大学LIMITI机器人队夏令营视觉组线上学习内容,基于2022年视觉组经验编写

夏令营培训5——PCL

PCL库(全称Point Cloud Library),是一个重要的点云处理库,而点云又是雷达等常用的数据格式,故在此介绍此库。

安装PCL请见:安装pcl

1. 任务1——PCL数据类型和可视化

学习了解PCL的PointCloud和几个主要的数据类型(主要是PointXYZ和PointXYZRGB)

读取PCL源码中随便一个PCD文件(或在附近中的five_people.pcd),使用boost::shared_ptr<pcl::visualization::PCLVIsualizer>将点云进行可视化

2. 任务2——点云聚类算法

聚类是点云中常见的算法,主要用以将离散的点云划分为不同的物体

学习kmeans和dbscan等几种聚类算法,了解其原理并能调用PCL库中有关函数进行点云聚类

3. 任务3——点云滤波

滤波也是点云操作中常用的算法,可以减少不必要的点云噪点或下采样减少点云数据

PCL——点云滤波

*3. 任务4——查阅SLAM

SLAM是视觉、雷达等场景建模、机器人定位的一类重要算法

在此仅作介绍,请自行查阅SLAM大致的功能、算法

夏令营培训6——ROS

注意

  • ROS分为ROS1和ROS2,若无特殊说明ROS通常指代ROS1
  • 在此重点介绍ROS1的使用,ROS2还太新且不兼容ROS1
  • ubuntu20.04及以下的版本可以使用ROS1,且安装时注意不同的ubuntu版本对应着不同的ros版本

ROS的安装

此处给出我常用的ros安装方法,可能依据个人电脑环境不同而有所区别:ubuntu20.04 ros-noetic

ROS的学习

ros的学习参考B站古月居——ROS入门21讲
【【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程】 【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩_bilibili

*任务1——图像

利用opencv捕获图像,使用ros发布并订阅该图像消息

*任务2——点云

启动雷达功能包,订阅该雷达发布的点云消息

PCL安装

pcl是常见的C++点云库,以下介绍pcl的安装方法

安装pcl库的一些依赖

sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 
sudo apt-get install libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk7-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete

可能会存在一些过期或无效版本,可根据终端提示根据自己情况下载

从github 下载pcl

git clone https://github.com/PointCloudLibrary/pcl.git 

编译安装

推荐使用cmake-gui编译,可自己选择需要编译的项目进行编译,如cuda等

点击Configure配置 和 Generate生成后,即可完成配置

进入build文件夹编译安装

cd build
make -j4
sudo make install

测试安装结果

切换到pcl安装目录,找一个点云pcd文件,输入以下代码查看

pcl_viewer model.pcd

若正常显示点云文件,即表示安装成功

2 个赞