基于激光雷达实现三边定位算法开发记录(二)——查找多个反光柱数据
22年暑假实习过程中第一个开发任务,基于激光雷达实现三边定位开发功能
开发平台为ubuntu 18.04 + ros melodic
日期:2022.7.19
本次实现:由于实现三边定位需要先找反光柱的圆心,目前计划先找出激光雷达获取反光柱反射激光的最强点,该点到激光雷达的距离加反光柱半径近似于圆心,误差在于激光雷达本身精度误差,可以接受。由于昨天已经找到了反光柱的最强点,但是同一时间只能找到一个,不适用与三边定位所需要的三个,因此这次需要实现找到多个反光柱目标。
(一)修改程序
首先编写查找反光柱函数findHigh代码,同样是遍历所有激光强度,当激光强度连续三次超过2000时,即标定为激光雷达。在当前雷达环境下,普通环境的激光强度为1000以下,反光柱的最大激光强度可达3300以上。
//查找反光柱
void findHigh (const sensor_msgs::LaserScan &scan) {int HighStop = 0;long sum = 0;int num = 0;for (long i = 0; i < scan.ranges.size(); i++) {if (scan.intensities[i] > 2000){ //强度阀值if((i - sum) < 2) {num++; std::cout<<"指数:"<<sum<<",第"<<num <<"个,强度:"<<scan.intensities[i] <<std::endl; }else{if(num > 2 || HighStop == 0) { //连续三个点强度超过 强度阀值 即默认为反光柱HighStop++;std::cout<<HighStop <<"号反光柱"<<std::endl; }num = 0;}sum = i;} }
}
修改处理激光信息函数
//处理激光信息
void scan_CB(sensor_msgs::LaserScan scan) {std::vector< Outline > outlines;std::vector< Point > points;// for (int i = 0; i < 5; i++) {// // while (ros::ok()) {// auto max = findMax(scan);//查找激光数据最大值// std::cout<<"激光最大数据:"<<"指数:"<<max.index<<"距离:"<<max.range<<"强度:"<<max.intensity <<"x轴:"<<max.x <<"y轴:"<<max.y <<std::endl;// }findHigh(scan);
}
修改完毕,开始执行。
(二)运行效果
(三) 问题和下一目标
问题:该算法目前无法将多余误差点过滤,例如指数为1647的点为玻璃强反光,且强度组在上,标号在下,即1号反光柱为空,下面的强度组为2号反观柱的。
目标:优化算法,将不满连续3次的强度点过滤,并从1号反观柱开始关联数据
基于激光雷达实现三边定位算法开发记录(二)——查找多个反光柱数据相关推荐
- 基于激光雷达实现三边定位算法开发记录(五)——三角函数法拟定圆心
22年暑假实习过程中第一个开发任务,基于激光雷达实现三边定位功能 开发平台为ubuntu 18.04 + ros melodic 日期:2022.7.22 本次实现:由于实现三边定位需要先找反光柱的圆 ...
- 基于激光雷达实现三边定位算法开发记录(一)——查找激光最强点
22年暑假实习过程中第一个开发任务,基于激光雷达实现三边定位开发功能 开发平台为ubuntu 18.04 + ros melodic 日期:2022.7.18 本次实现:由于实现三边定位需要先找反光柱 ...
- 蒙特卡洛粒子滤波定位算法_蒙特卡罗定位算法(基于粒子滤波的定位算法) ——原理、理解与仿真...
1 算法原理 1.1 机器人定位问题 关于机器人定位,有三大问题,它们分别是: (1)"全局定位":指初始位置未知,机器人靠自身运动确定自己在地图中的位姿. (2)"位姿 ...
- 寒武纪算法开发岗位二面手撕代码题目详细记录
寒武纪算法开发岗位二面手撕代码题目记录 题目: 给定一个数组,求能组成的和中,最小不可能的和. 例如:[1,2,3,5],最小不可能的和为12. 解答: 就是一个二维动态规划,下面的答案是我面试完下来 ...
- 基于矩阵分解的CF算法实现(二):BiasSvd
基于矩阵分解的CF算法实现(二):BiasSvd BiasSvd其实就是前面提到的Funk SVD矩阵分解基础上加上了偏置项. BiasSvd 利用BiasSvd预测用户对物品的评分, k k k表示 ...
- 基于MATLAB的车牌定位算法设计
目前国外车牌定位识别系统已经有很多成熟的产品,以色列Hi-Tech公司的See/CarSystem系列,新加坡optasia公司的IMPS系列都是比较成熟的产品.但是,这些产品基本上只适合于自己国内的 ...
- 毕业设计 : 基于机器学习的驾驶疲劳检测 - 开发记录
文章目录 0 前言 1 总结 2 基于多视频窗口的疲劳驾驶监测系 3 基于近红外图像的疲劳驾驶检测 4 基于面部特征的全天候疲劳驾驶检测及预警 5 其他方法 最后 0 前言 最近在帮同一位同学研究基于 ...
- 基于RSSI三维空间四点定位算法
之前写过基于rssi的三点定位算法,但是那是平面的,下面介绍三维空间的四点定位算法: 基于rssi的原理,这里不再重复,请参考以前的博文: http://blog.csdn.net/u01309067 ...
- Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索
--若发现文章内容有误,敬请指正,望不吝赐教,感谢! 文章目录 以往记录 运行环境 一.设计Bean用于Controller层返回数据 二.商品批量操作 2.1 批量操作的前端设计 2.2 批量操作的 ...
最新文章
- ht-8 对arrayList中的自定义对象排序( Collections.sort(ListT list, Comparator? super T c))...
- 使用腾讯开发平台获取QQ用户数据资料
- 【蓝桥杯 - 真题】六角幻方(dfs+剪枝)
- 恶心的Oracle的if else if...
- mac android 证书生成工具,MAC系统下,生成安卓证书的命令
- Java知识点详解 6 注解
- SAP License:SE16N
- 开课吧:为什么AI工程师都要懂一点架构呢?
- Ubuntu20.04如何卸载软件
- WPF高性能绘图之DrawingCanvas、DrawingVisual、Button的同时使用
- 网络创业:网站盈利模式分析分类
- linux 任意音频采样率转换
- 卷积神经网络CNN简图
- vscode中好用的git相关的插件
- mysql的双井号_C语言中单井号(#)和双井号(##)在宏语句中的应用
- 51单片机仿真例程-PWM直流电动机
- 【源码】风向风速图绘制函数WindRose
- nginx expires 30s 什么概念
- NASA EARTHDATA GES DISC不用爬虫基于插件DownThemAll批量下载数据
- A component required a bean of type ‘com.wyh.service.XXX‘ that could not be found.