rviz可视化(一、可视化点云)
目录
一、点云数据路径
二、导入相关头文件
三、编写主程序代码
四、CMakeLists文件编写
五、rviz配置
参考链接:学习笔记:使用Octomap将点云地图pcd转换为三维栅格地图,并在rviz中可视化_点云地图转为占据栅格地图-CSDN博客
Octomap 在ROS环境下实时显示_octomap在ros环境下实时显示-飞天熊猫-CSDN博客
一、点云数据路径
https://github.com/RuPingCen/publish_pointcloud/tree/master/data
二、导入相关头文件
#include <ros/ros.h>
#include <pcl/point_cloud.h>
#include <pcl_conversions/pcl_conversions.h>
#include <pcl/io/pcd_io.h>
#include <sensor_msgs/PointCloud2.h>
三、编写主程序代码
int main(int argc, char** argv) {
ros::init(argc, argv, "publish_pointcloud"); // 初始化ROS节点
ros::NodeHandle nh; // 创建节点句柄
// 从参数服务器获取参数
std::string path = "/home/yzh/catkin_ws_acados_mpc/src/mpc_controller/data/test2.pcd";
std::string frame_id = "map";
std::string topic = "pointcloud_topic";
int hz = 5; // 发布频率,单位 Hz
// 加载点云数据到pcl::PointCloud对象中
pcl::PointCloud<pcl::PointXYZ> pcl_cloud;
pcl::io::loadPCDFile(path, pcl_cloud); // 从文件加载点云数据
// 创建Publisher对象,将点云数据发布到指定话题
ros::Publisher pcl_pub = nh.advertise<sensor_msgs::PointCloud2>(topic, 10);
// 转换PCL点云到ROS下的 PointCloud2 类型
sensor_msgs::PointCloud2 output;
pcl::toROSMsg(pcl_cloud, output);
output.header.stamp = ros::Time::now(); // 设置时间戳
output.header.frame_id = frame_id; // 设置坐标系框架
// 打印参数信息
std::cout << "path = " << path << std::endl;
std::cout << "frame_id = " << frame_id << std::endl;
std::cout << "topic = " << topic << std::endl;
std::cout << "hz = " << hz << std::endl;
ros::Rate loop_rate(hz); // 设置发布频率
while (ros::ok())
{
pcl_pub.publish(output); // 发布 PointCloud2 数据
ros::spinOnce(); // 处理所有回调函数
loop_rate.sleep(); // 按照指定频率睡眠
}
四、CMakeLists文件编写
主要是将点云相关的包找到。
cmake_minimum_required(VERSION 3.0.2)
project(mpc_controller)
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
)
find_package(PCL REQUIRED)
include_directories(
${catkin_INCLUDE_DIRS}
${PCL_INCLUDE_DIRS}
)
target_link_libraries(map_node
${catkin_LIBRARIES}
${PCL_LIBRARIES}
)
五、rviz配置
给点云变颜色,根据z轴变颜色。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/100679.html
如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!