4.3.6.7 读取PCD文件并在rviz中展示
参考教程:
读取PCD文件的点云并在 RVIZ显示_rviz显示pcd点云-CSDN博客
读取pcd文件并在rviz中进行显示_rviz看不到pcd-CSDN博客
Hinson-A/pcd2pgm_package: 点云pcd文件转二维栅格地图 (github.com)
ROS-PCL读取pcd点云数据并在rviz中进行显示_ros-pcl读取pcd点云数据并在rviz中显示-CSDN博客
1. 查看系统环境
要运行本仿真程序,需要保证当前环境为ubuntu20.04+ros-noetic-desktop-full
查看ubuntu
版本:
rosnoetic@rosnoetic-VirtualBox:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal
可知,当前ubuntu
版本满足20.04
查看ros
版本:
rosnoetic@rosnoetic-VirtualBox:~$ rosversion -d
noetic
可知,当前ros
版本满足noetic
2. 读取PCD文件
2.1 编写读取PCD文件
2.1.1 创建功能包,导入依赖
-
2.1.1.1 新建文件夹
ctrl+alt+T
打开终端,执行如下指令创建文件夹:rosnoetic@rosnoetic-VirtualBox:~$ mkdir -p pcdreadshow_ws/src rosnoetic@rosnoetic-VirtualBox:~$ cd pcdreadshow_ws/src/ rosnoetic@rosnoetic-VirtualBox:~/pcdreadshow_ws/src$ catkin_init_workspace
-
catkin_init_workspace
接着创建工作空间:
rosnoetic@rosnoetic-VirtualBox:~/pcdreadshow_ws/src$ catkin_create_pkg read_pcd pcl_conversions pcl_ros roscpp sensor_msgs
-
-
2.1.1.2 创建功能包
在当前功能包
read_pcd
下,再新建几个目录:点击
read_pcd
,右键,选择“新建文件夹
”新建文件夹名称如下
launch
:存储launch
启动文件使用
launch
文件,可以一次性启动多个ROS
节点。
2.1.2 编写读取文件
-
2.1.2.1 编写程序
然后在功能包下的
src
文件夹中创建源文件:点击
read_pcd /src
文件夹,右键,选择“新建文件
”新建文件名为:
read_pcd.cpp
在
read_pcd.cpp
中添加如下内容-
read_pcd.cpp
#include<ros/ros.h> #include<pcl/point_cloud.h> #include<pcl_conversions/pcl_conversions.h> #include<sensor_msgs/PointCloud2.h> #include<pcl/io/pcd_io.h> int main(int argc,char argv){ ros::init(argc,argv,"pcd_pub"); ros::NodeHandle nh; ros::Publisher pcl_pub=nh.advertise<sensor_msgs::PointCloud2> ("pcl_output",1); pcl::PointCloud<pcl::PointXYZ> cloud; sensor_msgs::PointCloud2 output; std::string file_path; nh.param<std::string>("file_path", file_path, "/pcd/data_1/0000000001.pcd"); pcl::io::loadPCDFile(file_path,cloud);//通过launch文件修改路径即可 pcl::toROSMsg(cloud,output
-