用实际激光器发布数据的一些理解
2018-01-02 13:41
429 查看
Author:SuperDeveloper
Date:2018.01.02
关于如何发布虚拟激光器的部分就不细说了,主要是虚拟出距离和强度数据,然后填充到消息结构体中就可以了。
使用实际激光器的时候跟发布虚拟数据差不多,步骤大概如下:
1).从激光器驱动程序中获取数据
2).整理激光器数据
3).发布激光器数据
关于整理激光器数据这部分,我们需要将激光器的数据合成一次扫描数据,大多数情况下从驱动中获取的数据是一周的完整数据,但是自己写驱动的时候获取的是数据包,对于广角激光器来说一个数据包不能完整描述一周的扫描数据。
举个例子:
假设有一个360°的激光扫描器,每周被拆分成14个数据包,每个数据包内有起始角度和终止角度(一般是绝对角)以及224个扫描点,那么就需要将扫描所得数据累计直到完全接收到14个数据包,然后将所有数据包内的扫描点填充到激光器数据结构体里面发布一次激光数据。则激光数据结构体里面的起始角度就是-M_PI到+M_PI.
这样的话,如果一个大型的移动平台有多个激光器的情况就需要处理器将各个激光器的有效部分整合起来,合成一个360度的数据包,然后发布到ROS系统。
Date:2018.01.02
关于如何发布虚拟激光器的部分就不细说了,主要是虚拟出距离和强度数据,然后填充到消息结构体中就可以了。
使用实际激光器的时候跟发布虚拟数据差不多,步骤大概如下:
1).从激光器驱动程序中获取数据
2).整理激光器数据
3).发布激光器数据
关于整理激光器数据这部分,我们需要将激光器的数据合成一次扫描数据,大多数情况下从驱动中获取的数据是一周的完整数据,但是自己写驱动的时候获取的是数据包,对于广角激光器来说一个数据包不能完整描述一周的扫描数据。
举个例子:
假设有一个360°的激光扫描器,每周被拆分成14个数据包,每个数据包内有起始角度和终止角度(一般是绝对角)以及224个扫描点,那么就需要将扫描所得数据累计直到完全接收到14个数据包,然后将所有数据包内的扫描点填充到激光器数据结构体里面发布一次激光数据。则激光数据结构体里面的起始角度就是-M_PI到+M_PI.
这样的话,如果一个大型的移动平台有多个激光器的情况就需要处理器将各个激光器的有效部分整合起来,合成一个360度的数据包,然后发布到ROS系统。
相关文章推荐
- 关于double类型数据保留有效位的一些理解
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
- 基本数据类型对象包装类的一些理解
- 理解arcgis server 10.1 服务发布与数据管理
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- 关于数据挖掘其中的一些基本概念的理解
- 关于C++ 从命令行输入数据 常用输方法cin的一些理解总结
- 数据仓库的一些理解(原创)
- js中关于可视区、实际区域一些知识的个人理解
- 跨域获取json一些理解[腾讯电商数据的拉取方式]
- 学习Python第三天--简单数据、操作符、分支和循环一些小理解
- 谈谈个人对大数据个性化推荐的一些理解
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
- 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
- ~ 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
- java中八种基本数据类型以及它们的封装类,String类型的一些理解
- 关于大数据的一些个人理解
- 使用redis缓存数据需要注意的问题以及个人的一些思考和理解
- Java多线程学习笔记——从Java JVM对多线程数据同步的一些理解
- 再临Java,主实际技术的一些细节/深理解