ROS第三梯:ROS+C++实现速腾Bag包的解析

解决问题:速腾Bag包利用bag_to_pcd生成的pcd文件字段名称存在问题,多了几个异常的"_",导致强度属性无法在Intensity中显示。

解决方案:利用sensor_msgs库进行数据读取和转换成sensor_msgs::PointCloud格式,再通过遍历该数据结构获得坐标和属性信息,具体代码如下:

/*
依赖库:
roscpp
rosbag
std_msgs
sensor_msgs
*/
#include <ros/ros.h>
#include <sensor_msgs/PointCloud2.h>
#include <sensor_msgs/PointCloud.h>
#include <sensor_msgs/point_cloud_conversion.h>
#include <string>
#include <stdlib.h>
#include <rosbag/bag.h>
#include <rosbag/view.h>
#include <boost/foreach.hpp>
#include <boost/filesystem.hpp>
#include <fstream>rosbag::Bag bag;
bag.open(path, rosbag::bagmode::Read); //open *.bag
//set topics which you want to read
std::vector<std::string> topics; //这个是我指定要读取的消息topic
topics.push_back(std::string("/bp1/rslidar_points"));
//read defined topics
rosbag::View view(bag, rosbag::TopicQuery(topics));; 
for (rosbag::MessageInstance const m : view) 
{sensor_msgs::PointCloud2::ConstPtr input = m.instantiate<sensor_msgs::PointCloud2>();if (input == NULL) {continue;}sensor_msgs::PointCloud clouddata;sensor_msgs::convertPointCloud2ToPointCloud(*input, clouddata);for(int i = 0;i<clouddata.points.size();i++){PtType point;point.x = clouddata.points[i].x;if(isnan(point.x)) continue;point.y = clouddata.points[i].y;point.z = clouddata.points[i].z;//设置反射强度point.intensity = clouddata.channels[0].values[i];  //设置ring  point.ring = clouddata.channels[1].values[i];    //设置timestamppoint.timestamp = clouddata.channels[2].values[i];    std::cout<<i<<" "<<point.x<<" "<<point.y<<" "<<point.z<<" "<<point.intensity<<" "<<point.ring<<" "<<std::to_string(clouddata.channels[2].values[i])<<std::endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/420626.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拆分 IP 地址后再分类

Excel里有一列标准的IP v4地址&#xff1a; A110.12.20.30210.205.20.30310.178.20.30410.23.20.30510.167.20.30610.90.20.30710.134.20.30810.177.20.30910.200.20.301010.115.20.301110.48.20.301210.181.20.301310.224.20.301410.57.20.301510.180.20.301610.113.20.30171…

新手入门Python:魔法函数详解与应用

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 什么是魔法函数?📝 基础魔法函数📝 运算符重载📝 高级魔法函数📝 综合应用示例⚓️ 相关链接 ⚓️📖 介绍 📖 在Python编程的世界里,有一类特别的函数,它们看似普通,却拥有神奇的力量。这些函…

《Python爬虫逆向实战》加密方法远程调用(RPC)

加密方法远程调用采用了RPC (Remote Procedure Call)协议&#xff0c;即远程过程调用协议。我们让浏览器充当客户端&#xff0c;并通过WebSocket将加密参数值发送给服务端(用Python写一个)&#xff0c;这样的话我们就不需要花费大量时间去逆向了。下面我们就通过一个微博登录示…

鸿蒙开发前景

在科技飞速发展的时代&#xff0c;鸿蒙操作系统的出现犹如一颗璀璨的新星&#xff0c;为全球科技领域带来了新的希望与机遇。那么&#xff0c;鸿蒙开发的前景究竟如何呢? 一、鸿蒙系统的独特优势 1. 分布式架构 鸿蒙操作系统采用分布式架构&#xff0c;能够实现不同设备之间的…

MC1496DR2G高性能平衡调制器/解调器的卓越之选

MC1496DR2G适用于输出电压为输入电压&#xff08;信号&#xff09;和开关功能&#xff08;载波&#xff09;的共同结果的场合。典型应用包括抑制载波和放大调制、同步检测、调频 (FM) 检测、相位检测和斩波器应用。 MC1496DR2G功能特性&#xff1a; 平衡式工作&#xff1a;具…

深度解析 | 二元Logistic回归模型(单因素筛查、软件操作及结果解读)

一、Logistic回归的类型 Logistic回归&#xff08;又称逻辑回归&#xff09;是一种广义的线性回归分析模型&#xff0c;用于研究分类型因变量与自变量之间影响关系。Logistic回归分析根据因变量的不同可分为二元Logistic回归、多分类Logistic回归&#xff0c;有序Logistic回归…

2024.9.9(极客大挑战 2019]EasySQL,[极客大挑战 2019]Knife)

题目一&#xff1a;极客大挑战 2019]EasySQL 1、点开题目链接&#xff0c;来到下面的界面 2、遇到这样的登录界面&#xff0c;先尝试admin和万能密码&#xff08;1 or 11#&#xff09;&#xff0c;拿到flag 题目二&#xff1a;[极客大挑战 2019]Knife 1、点开链接&#xff0c…

iText2KG:显著降低LLM构建知识图谱时的幻觉现象

1. 当前知识图谱构建存在的问题 知识图谱通过捕捉实体之间的关系来构建知识的结构化表示&#xff0c;在分析文本数据集和从结构化异构数据中推断知识方面具有显著优势。比如&#xff0c;知识图谱能够融合来自多个来源的不同数据&#xff0c;提供一个具有凝聚力的信息视角。还能…

12.2 案例分析专题-数据库设计

数据库设计 ER图 真题1 真题2 1

电脑D盘数据误删怎么恢复?一文教你轻松找回

在日常使用电脑的过程中&#xff0c;我们可能会不小心删除D盘中的重要数据&#xff0c;导致数据丢失。这时&#xff0c;不要慌张&#xff0c;本文将为你介绍几种Windows电脑系统上恢复D盘数据的方法&#xff0c;帮助你轻松找回丢失的数据。 图片来源于网络&#xff0c;如有侵权…

高级算法设计与分析 学习笔记4 二叉查找树

左子树小于父节点小于右子树。 那么如何构建一个二叉查找树呢&#xff1f; 如何遍历一颗树&#xff1f; 这个其实就是中序遍历&#xff08;在中间访问根节点&#xff09; 如何查找一个元素&#xff1f; 可以看到后面这种方法更好&#xff0c;虽然都是递归&#xff0c;但后者不…

还不知道MES和PLC咋通信?5分钟看懂

最近网上看到一些写MES和PLC通信的文章。或许因为行业不同的缘故吧&#xff0c;对于里面的一些观点&#xff0c;我个人是持保留意见的。首先在我所在行业里&#xff0c;MES是不会和PLC直接通信的。MES和PLC之间通常还有一个其他系统。该系统在不同行业的叫法不一样。比如有的行…

【828华为云征文|华为云Flexus X实例:一键助力中小企业,快速部署个性化网站!】

文章目录 前言搭建自己专属网站准备工作具体操作服务器环境确认进入宝塔软件商店JTBC网站内容管理系统一键部署填写域名放行80端口JTBC安装初始页数据库信息配置管理员信息配置完成安装网站管理后台网站前台 验证后台配置内容前台访问的效果 结语 前言 在云计算盛行的时代&…

“颂歌唱响 乐动云山”云山天地携手幸福金龄会举办七夕国风艺术展演活动

弘扬中华优秀传统文化&#xff0c;充分挖掘七夕内涵&#xff0c;倡导勤劳智慧、忠贞爱情、家庭美满、追求美好的价值理念&#xff0c;由云山天地主办&#xff0c;幸福金龄会指导&#xff0c;广州风暴文化传媒有限公司承办的“颂歌唱响 乐动云山”七夕国风文化艺术展演活动&…

在python里把图变成gif

import scipy.io import matplotlib.pyplot as plt import imageio import numpy as npdata scipy.io.loadmat("/文件路径/Sol.mat")# 提取数据 t_current data[t].flatten() XX, YY np.meshgrid(data[x].flatten(), data[y].flatten()) u_pred_plot_final data[…

第二百二十三节 JPA教程 - JPA列定义示例

JPA教程 - JPA列定义示例 当将Java bean映射到实体时&#xff0c;我们可以在映射注释中设置数据库表列定义。 以下代码将列定义设置为 VARCHAR(40)。 Column(columnDefinition "VARCHAR(40)") private String name;Column注释表示物理数据库列的特定特征。 例子 …

金智维K-RPA基本介绍

一、K-RPA基本组成 K-RPA软件机器人管理系统基于“RPAX”数字化技术打造&#xff0c;其核心系统由管理中心(Server)、设计器(Control)、机器人(Robot/Agent)三大子系统组成&#xff0c;各子系统协同工作&#xff0c;易于构建协同式环境。 管理中心&#xff08;Server&#xff…

解决Metasploit调用Nessus报错问题

问题描述 Error while running command nessus_scan_new: undefined method []’ for nil:NilClass 解决方法 发现报错&#xff0c;经过网上查询解决方法 在Nessus服务器执行&#xff0c;下面的版本号可能有所不同&#xff0c;根据自己的情况更改&#xff0c;需要管理员身份执…

AI预测地球未来,温室效应失控?地球变金星?

想象一下&#xff0c;如果地球的气候突然失控&#xff0c;我们熟悉的蓝色星球会变成什么模样&#xff1f; 最近&#xff0c;一项由法国科学家使用人工智能系统进行的气候模拟研究揭示了一个惊人的未来景象&#xff1a;地球可能会变得如同金星一般&#xff0c;拥有高达270个大气…

Jupyter Notebook设置代码提示和自动代码补全

算法学习、4对1辅导、论文辅导或核心期刊可以通过公众号滴滴我 文章目录 在使用Jupyter Notebook中&#xff0c;会出现Jupyter不像Pycharm一样&#xff0c;可以 自动补全代码以及 代码方法提示等功能&#xff0c;这时候就需要通过给Jupyter安装插件来进行实现。 执行步骤&#…