用实际激光器发布数据的一些理解
Author:SuperDeveloper关于如何发布虚拟激光器的部分就不细说了,主要是虚拟出距离和强度数据,然后填充到消息结构体中就可以了。
Date:2018.01.02
使用实际激光器的时候跟发布虚拟数据差不多,步骤大概如下:
1).从激光器驱动程序中获取数据
2).整理激光器数据
3).发布激光器数据
关于整理激光器数据这部分,我们需要将激光器的数据合成一次扫描数据,大多数情况下从驱动中获取的数据是一周的完整数据,但是自己写驱动的时候获取的是数据包,对于广角激光器来说一个数据包不能完整描述一周的扫描数据。
举个例子:
【用实际激光器发布数据的一些理解】假设有一个360°的激光扫描器,每周被拆分成14个数据包,每个数据包内有起始角度和终止角度(一般是绝对角)以及224个扫描点,那么就需要将扫描所得数据累计直到完全接收到14个数据包,然后将所有数据包内的扫描点填充到激光器数据结构体里面发布一次激光数据。则激光数据结构体里面的起始角度就是-M_PI到+M_PI.
这样的话,如果一个大型的移动平台有多个激光器的情况就需要处理器将各个激光器的有效部分整合起来,合成一个360度的数据包,然后发布到ROS系统。
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。