当前位置: 首页 > news >正文

ros (二) 使用消息传递点云+rviz显示

一、创建环境

catkin_create_pkg pclros  roscpp std_msgs  sensor_msgs pcl_ros pcl_conversions
cd pclros/src
catkin_make
touch pcl_pub.cpp
touch pcl_sub.cpp

二、发布点云消息

#include<ros/ros.h>
#include<sensor_msgs/PointCloud2.h>
#include<pcl_conversions/pcl_conversions.h>
#include<pcl/point_types.h>
#include<pcl/point_cloud.h>int main(int argc, char** argv)
{ros::init(argc, argv, "ros_pub");ros::NodeHandle nh_("~");pcl::PointCloud<pcl::PointXYZ> cloud;cloud.width = 100;cloud.height = 1;cloud.points.resize(100);for(size_t i =0; i< cloud.points.size();i++){cloud.points[i].x = i * 0.5;cloud.points[i].y = i * 0.5;cloud.points[i].z = i * 0.5;}ros::Publisher pcl_pub = nh_.advertise<sensor_msgs::PointCloud2>("/point2", 1);sensor_msgs::PointCloud2 pcl_msg;ros::Rate rate_loop(5);while(nh_.ok()){pcl::toROSMsg(cloud, pcl_msg);pcl_msg.header.frame_id = "map";pcl_msg.header.stamp = ros::Time::now();pcl_pub.publish(pcl_msg);ros::spinOnce();rate_loop.sleep();}return 0;}

三、接收点云消息

#include<ros/ros.h>
#include<pcl/point_cloud.h>
#include<pcl/point_types.h>
#include<pcl_ros/point_cloud.h>
#include<pcl_conversions/pcl_conversions.h>
#include<sensor_msgs/PointCloud2.h>void callBack(const sensor_msgs::PointCloud2ConstPtr& msg)
{pcl::PointCloud<pcl::PointXYZ> cloud;pcl::fromROSMsg(*msg, cloud);ROS_INFO("cv_bridge exception: %d  %d\n", cloud.width ,  cloud.height);
}int main(int argc, char** argv)
{ros::init(argc, argv, "pcl_sub");ros::NodeHandle nh_;ros::Subscriber sub_ = nh_.subscribe<sensor_msgs::PointCloud2>("/point2", 1, callBack);ros::spin();}

四、使用rviz接收消息

点击rviz左下角的add按钮,选择pointcloud2,显示点云,如果发现点云没有显示,则更改pub中的frame_id = “map”,就可以显示出来了。

http://www.dtcms.com/a/259655.html

相关文章:

  • web目录扫描-御剑
  • Redis跳表(skiplist)底层原理浅析
  • 使用亮数据网页抓取API自动获取Tiktok数据
  • matlab机器人工具箱(Robotics Toolbox)安装及使用
  • 【EDA软件】【应用功能子模块网表提供和加载编译方法】
  • 重置 MySQL root 密码
  • 前端面试专栏-主流框架:13.vue3组件通信与生命周期
  • webman 利用tcp 做服务端 对接物联网
  • C# LINQ语法
  • Boss:攻击
  • 【MQTT】常见问题
  • MySQL之视图深度解析
  • 第2章,[标签 Win32] :编写兼容多字节字符集和 Unicode 字符集的 Windows 程序
  • 【DevTools浏览器开发者工具反调试之无限Debugger跳过】
  • SpringBoot高校党务系统
  • PyTorch RNN实战:快速上手教程
  • Python 数据分析与可视化 Day 7 - 可视化整合报告实战
  • Python核心可视化库:Matplotlib与Seaborn深度解析
  • request这个包中,get 这个方法里传入的是params ,post这个方法里传入的是data 和 json。这个区别是什么?
  • pscc系统如何部署,怎么更安全更便捷?
  • Linux 怎么恢复sshd.service
  • 结构体数组与Excel表格:数据库世界的理性与感性
  • 超级好用的小软件:geek,卸载软件,2m大小
  • Webpack 核心概念
  • 基于MATLAB的BP神经网络的心电图分类方法应用
  • Web后端基础:Java操作数据库----JDBC
  • 夏至之日,共赴实时 AI 之约:RTE Open Day@AGI Playground 2025 回顾
  • CAS 有什么问题?如何解决这些问题?
  • 《解锁Web游戏潜力:手柄操控的进阶法则》
  • 【nRF52832】【环境搭建 1】【ubuntu下搭建nRF52832开发环境】