ROS学习记录:ROS系统中的激光雷达消息包的数据格式

news2024/11/25 0:01:43

一、在工作空间中输入source ./devel/setup.bash

在这里插入图片描述

二、输入roslaunch wpr_simulation wpb_simple.launch打开机器人仿真环境

在这里插入图片描述

三、机器人仿真环境打开成功

在这里插入图片描述

四、给机器人围上一圈障碍物

在这里插入图片描述

五、再打开一个工作空间终端

在这里插入图片描述

六、输入roslaunch wpr_simulation wpb_rviz.launch打开RViz

在这里插入图片描述

七、RViz打开成功

在这里插入图片描述

八、取消这两个勾

在这里插入图片描述

九、可以看到在机器人周围是一圈红色的点阵,这些点就是激光雷达输出的数据

在这里插入图片描述

十、打开ROS index网站

在这里插入图片描述

十一、搜索sensor_msgs

在这里插入图片描述

十二、找到noetic版本

在这里插入图片描述

十三、点击进入

在这里插入图片描述

十四、再点击进入Website网址

在这里插入图片描述

十五、再点击这个LaserScan打开激光雷达数据格式

在这里插入图片描述

十六、这个就是激光雷达消息包的格式定义

在这里插入图片描述

十七、左边是消息包的格式定义

在这里插入图片描述

十八、右边是每个成员变量的注释

在这里插入图片描述

十九、下边是每个成员变量的数据类型

在这里插入图片描述

二十、将注释翻译一下

在这里插入图片描述

二十一、回到ROS,再在工作空间中另开一个终端,输入source ./devel/setup.bash

在这里插入图片描述

二十二、再输入rostopic echo /scan --noarr,显示/scan话题里的消息

在这里插入图片描述

二十三、消息出来了

在这里插入图片描述

二十四、首先第一个Header主要存储的是时间戳坐标系ID,时间戳表示消息包发出的时间

在这里插入图片描述

二十五、angle_minangle_max是激光雷达扫描的起始角度终止角度

在这里插入图片描述

二十六、以这个ROS机器人为例

在这里插入图片描述

二十七、它的激光雷达安装在底盘中心的位置

在这里插入图片描述

二十八、我们在终端里显示它的angle_min起始角度-3.14…,也就是-Π,也就是-180°

在这里插入图片描述

二十九、假设机器人正前方为0°方向

在这里插入图片描述

三十、-180°就是从0°开始顺时针旋转半圈,就是机器人的正后方,这个方向就是机器人雷达扫描的起始角度

在这里插入图片描述

三十一、同理的,angle_max是Π,就是180°,就是从0°开始逆时针旋转半圈,angle_max是机器人激光雷达扫描的终止方向,激光雷达一次完整的扫描就是从angle_min到angle_max

在这里插入图片描述

三十二、angle_incrementtime_increment表示的是两次测距行为之间的角度间隔和时间间隔,激光从激光雷达射出去再反射回来被激光雷达接收这就是一次测距行为

在这里插入图片描述
在这里插入图片描述

三十三、scan_time指的是两次扫描之间的时间间隔,其实就是单次扫描的持续时间,就是激光雷达转一周所耗费的时间

在这里插入图片描述

三十四、range_minrange_max,是这个雷达能够测量的距离范围,只有在范围内的测距值才是有效的

在这里插入图片描述
在这里插入图片描述

三十五、ranges,可以看到里面有个array,说明这是一个数组,数组的成员类型是32位的浮点数,数组的长度是360,说明这里面是360个浮点数

在这里插入图片描述

三十六、这360个浮点数就是激光雷达从起始角度旋转到终止角度这一过程中测量的距离个数,我们的雷达在旋转过程中,每旋转一度,就进行一次测量,所以ranges里的360个浮点数对应的就是每一度方向上障碍物的距离,这360个测距值是按从起始角度到终止角度的顺序进行排列的

在这里插入图片描述

三十七、intensities数组,它也是32位浮点数,长度也是360个,它的数值大小表示的是每一次测距的信号强度,和ranges一一对应,数值越大表示这次测距的信号强度越强,得到的测距数值更可信

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Node.js使用jemalloc内存分配器显著减少内存使用

前言 Node.js 默认使用的是 ptmalloc(glibc) 内存分配器,而: 在服务端领域「不会选择默认的 malloc」是一个常识。( 来源 ) ptmalloc 的分配效率较低( 来源 ),对于 长时间、多核 / 多线程 运行…

手机录屏没有声音?让你的录屏有声有色

“有人知道手机录屏怎么录声音吗?今天录制了一个小时的直播视频,后面查看的时候发现没有声音,真的非常崩溃,想问问大家有没有办法,解决这个问题。” 在手机录屏的过程中,有时候我们可能会面临录制视频没有…

第19届楚天春晚在九省通衢大武汉闪亮登场

——中国明星后代女子歌舞团刘亦菲等兼任形象大使 2024年新年伊始,一场以繁荣中国传统文化为主旨的“楚天春晚”全国文旅活动在湖北武汉拉开帷幕!以“文化强省,旅游大省”为神州特色的联合国世界品牌之都,在辞旧迎新的早春来临之…

手机摄影学习

手机摄影学习 基础知识1,成像基本原理2,什么是焦距3,快门(简称s)4,上面功能之间的相互影响5,焦点6,过爆、欠曝7,cmos(感光芯片)、测光、聚焦&…

考研用什么光源比较好?五款好用台灯推荐

人眼对光是非常敏感的,特别是儿童青少年眼睛还在发育的状态来说,光线是至关重要的,于是这次测评就不能马虎,必须要本着专业严谨的态度进行测评,这次测评呢就花了不少钱买下了现在市面上热度很高、或是较有名气的专业款…

贝锐花生壳全新功能:浏览器一键远程访问SSHRDP远程桌面

为了满足特定场景的远程访问需求,如:远程群晖NAS设备、远程SQL Server数据库/MySQL数据库、3389远程桌面(RDP远程桌面)、远程SSH、我的世界游戏联机…… 贝锐花生壳推出了场景映射服务,不仅提供满足相应场景的网络带宽…

机器人活动区域 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 现有一个机器人,可放置于 M x N 的网格中任意位置,每个网格包含一个非负整数编号,当相邻网格的数字编号差值的绝对值小于等于 1 时机器人可以在网格间移动。 问题: 求机器人可活动的最大范围对应的网格点数目。 说明: 网格…

剑指“CPU飙高”问题

一、什么是cpu飙高? 一般指程序运行时cpu占用率过高   linux系统中,我们使用top命令,会看到正在运行进程的cpu使用率等,同时在最上面也会看到总的cpu使用率,当总的cpu使用率过高,如果有运维监控平台&…

听GPT 讲Rust源代码--library/portable-simd

File: rust/library/portable-simd/crates/core_simd/examples/spectral_norm.rs spectral_norm.rs是一个示例程序,它展示了如何使用Portable SIMD库中的SIMD(Single Instruction Multiple Data)功能来实现频谱规范化算法。该示例程序是Rust源…

严格的老师对学生的好处

从踏入学校的大门开始,我们便与老师结下了不解之缘。他们不仅是传授知识的导师,更是陪伴我们成长的良师益友。其中,那些对学生要求严格的老师,更是让我们受益匪浅。他们以严谨的教育态度,为学生点亮了前行的路。 塑造良…

高可用解决方案 Keepalived 概述

概述 Keepalived 介绍 Keepalived 是 Linux 下一个轻量级别的高可用解决方案,通过 **VRRP 协议(虚拟路由冗余协议)**来实现服务或者网络的高可用,可以利用其来解决单点故障。 起初是为 LVS 设计的,一个 LVS 服务会有 …

【字典树Trie】LeetCode-139. 单词拆分

139. 单词拆分。 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s "leetcode&q…

零知识证明(zk-SNARK)- groth16(二)

From Computational Problem to zk-SNARK 本部分就是将计算难题转换为多项式,然后使用zk-SNARK。(注:以下用 P,V 替代 Prover,Verifier) 计算难题->R1CS R1CS(Rank-1 Constraint System)是一种能够将…

连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!

Jmeter连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver’ 1.到官方下载驱动注意:根据项目的JDK版本来下载对应的驱动Download | pgJDBC 2.将postgresql-42.2.27.jar复制到lib目录下面, 然后重新启动 连接driver信息如下&#…

三、医学影像云平台(院内PACS叫号系统实践)

1. 业务概述 在云PACS中,排队和叫号系统是最灵活,定制化最强的业务,而且实时性要求高,否则,这里是容易发生医患矛盾的地方,所以,需要慎重。但是,这个系统又有个低要求特点&#xff…

数据库SQL ,零基础入门到精通,看完这一篇就够了!

目录 📚 前言🌴 SQL 介绍 🌼 什么是 SQL🌀 SQL 的类型🌵 学习 SQL 的作用🍄 数据库是什么 🐥 SQL 基础语言学习 🐤 CREATE TABLE – 创建表🐑 INSERT – 插入数据&#…

aspose通过开始和结束位置关键词截取word另存为新文件

关键词匹配实体类: Data EqualsAndHashCode(callSuper false) public class TextConfig implements Serializable {private static final long serialVersionUID 1L;/*** 开始关键词,多个逗号分隔*/private String textStart ;/*** 结束关键词&#x…

第 6 章 统计量及其抽样分布

统计量 卡方分布,t分布,f分布 样本均值的抽样分布 中心极限定理 样本比例的的抽样分布 两个均值之差的抽样分布 样本方差的分布(重要) 两个样本方差比的分布 注意理解下面这个图里面的定义(比较重要&#xff09…

从公司代码仓库更新代码出现错误

错误: 解决:点击idea右上角,将远程代码和本地合并

RDS快速入门

目录 实例创建 设置白名单 RDS(Relational Database Service)是一种托管式的关系型数据库服务,它为用户提供了一种简单、可靠、安全的方式来部署、操作和扩展数据库。具有安全可靠、解决运维烦恼、有效降低成本和自研增加等四大特性&#x…