SICK激光雷达LMS511数据提取与分析

news/2024/10/18 9:21:20/

因工作需要,近期对SICK进行了数据提取与分析,将过程描述如下(最后有代码下载地址):

提取:LMS511有网络接口,通过发送命令的方式即可提取数据,提取的数据可以保存到记事本中。具体网上搜一下即可。

推荐使用有人的串口、网口调试助手,还是很好用的。这个公司竟然和我同城

提取后的数据放到记事本中,如下图所示:

关于数据的格式,网上有说明,可以去查询详细了解下,引用关键部分如下:

LMS511格式说明 

 下一步开始写程序,对数据转换和分析。用C#写了段分析代码。写的过程中参考了网上一段python的代码。解析代码还是很简单的,就几行,涉及到了数据转换和极坐标转换。这里最终分析的其实就是那些距离数据。


   private void button2_Click(object sender, EventArgs e){string s = File.ReadAllText("d:\\123.txt");var ss = s.Split('@');for (int j = 1; j < ss.Count(); j++){string s1 = "";string s2 = "";var data = ss[j].Split(' ');int factors = 1;if (data[21] == "40000000")factors = 2;var startangle = Convert.ToInt32(data[23], 16) / 10000;//  '''角度分辨率'''double ang = Convert.ToInt32(data[24], 16);double anglestep = ang / 10000;// '''数据总量'''int datanum = Convert.ToInt32(data[25], 16);PointF[] pts = new PointF[datanum];s1 += "数据总量:" + datanum+"\t\n"+"起始角度:"+startangle+"\t\n"+"角度分辨率:"+anglestep+"\t\n"+"数据内容:\t\n";s2 += "数据总量:" + datanum + "\t\n" + "起始角度:" + startangle + "\t\n" + "角度分辨率:" + anglestep + "\t\n" + "数据内容:\t\n"; ;for (int i = 0; i < datanum; i++){var dd = Convert.ToInt32(data[26 + i], 16);s1 +=dd.ToString()+ "   ";double x = Convert.ToInt32(data[26 + i], 16) * factors * Math.Cos((startangle + i * anglestep) / 180 * Math.PI) / 1000;double y = Convert.ToInt32(data[26 + i], 16) * factors * Math.Sin((startangle + i * anglestep) / 180 * Math.PI) / 1000;s2 += x+"   "+y+"\t\n";pts[i].X = (float)x * 100;pts[i].Y = (float)y * 100;}richTextBox1.AppendText(s1+"\t\n");richTextBox2.AppendText(s2 + "\t\n");}}

 需要注意的是代码里用@进行了分割,实际提取出来的数据是不包含@的,我为了处理方便,将开头的sRA替换成了@,另存为了一个记事本。分析后的数据如下:

看解析后的数据什么都看不出来,我们还是选取其中的几帧,用图形表示出来比较好。再写一段绘制的代码,根据转换后的坐标直接绘制即可了 。绘制后的图形如下:

对比实际的地形图,还是有那么点意思的,哈哈 。当然要想数据准确,还需要进行帧间匹配算法再处理。

 

 

 

代码下载链接


http://www.ppmy.cn/news/275136.html

相关文章

华为android强刷系统下载地址,华为Y511官方rom固件刷机包下载_Y511原版系统强刷升级包...

在这里来给大家分享一下华为Y511的官方rom固件包&#xff0c;这些固件包都是官方原版的&#xff0c;虽说现在官方的包不是很多&#xff0c;不过以后有新的发布会一并更新上来的&#xff0c;如果有需要的可以下载下来备用了&#xff0c;同时这些固件包还可以用来救砖用的。 提示…

如和使用matlab进行求导 ,入门级教程

文章目录 问题如图所示运行结果如图代码分析完整代码完结撒花 问题如图所示 运行结果如图 代码分析 % 定义样本数量 n 500;这行代码定义了一个变量 n&#xff0c;它代表样本数量。这个变量在后面的代码中会被用到。 % 将 s 和 z 取值范围分成子区间的个数 num_intervals 40…

【每日一题Day230】LC1240铺瓷砖 | 暴力回溯

铺瓷砖【LC1240】 你是一位施工队的工长&#xff0c;根据设计师的要求准备为一套设计风格独特的房子进行室内装修。 房子的客厅大小为 n x m&#xff0c;为保持极简的风格&#xff0c;需要使用尽可能少的 正方形 瓷砖来铺盖地面。 假设正方形瓷砖的规格不限&#xff0c;边长都是…

儿童睡眠慢波的起源、同步和传播

摘要 目的&#xff1a;使用EEG delta功率(&#xff1c;4Hz)测量的睡眠慢波活动在整个发育过程中发生显著变化&#xff0c;反映了大脑功能和解剖结构的变化。然而&#xff0c;个体慢波特征随年龄的变化尚未被彻底研究。在这里&#xff0c;本研究旨在表征儿童期到成年期的个体慢…

Elasticsearch8.6.0安装

Elasticsearch 8.5.0 安装 Elasticsearch 简介Elasticsearch 8.6.0 安装创建网络拉取镜像运行镜像设置密码修改kibana配置绑定ES代码绑定&#xff1a;手动绑定&#xff1a; 配置ik分词器扩展词词典停用词词典 Elasticsearch 简介 Elasticsearch&#xff08;ES&#xff09; 是一…

独立产品灵感周刊 DecoHack #041 - 那些独立开发者是怎么养活自己的

本周刊记录有趣好玩的独立产品设计开发相关内容&#xff0c;每周发布&#xff0c;往期内容同样精彩&#xff0c;感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到&#xff0c;建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。 &#x1f4bb; 产品推荐 1. SOCCER STREAM…

Java 进阶 -- 集合(四)

5、算法 这里描述的多态算法&#xff08;polymorphic algorithms&#xff09;是Java平台提供的可重用功能。它们都来自Collections类&#xff0c;并且都采用静态方法的形式&#xff0c;其第一个参数是要对其执行操作的集合。Java平台提供的绝大多数算法都在List实例上操作&…

分享回顾|新岁序开,2023 和Jina AI共同码梦!

在坚持开放协作精神、具备全球影响力的 Jina AI 开源社区&#xff0c;每天都有来自世界各地的开发者来到这里&#xff0c;因为技术产生联结&#xff0c;因为联结产生共创。一直以来&#xff0c;我们都为拥有这样一个全球化、多元化和高速发展的社区而感到自豪和感激&#xff01…