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号反观柱开始关联数据

基于激光雷达实现三边定位算法开发记录(二)——查找多个反光柱数据相关推荐

  1. 基于激光雷达实现三边定位算法开发记录(五)——三角函数法拟定圆心

    22年暑假实习过程中第一个开发任务,基于激光雷达实现三边定位功能 开发平台为ubuntu 18.04 + ros melodic 日期:2022.7.22 本次实现:由于实现三边定位需要先找反光柱的圆 ...

  2. 基于激光雷达实现三边定位算法开发记录(一)——查找激光最强点

    22年暑假实习过程中第一个开发任务,基于激光雷达实现三边定位开发功能 开发平台为ubuntu 18.04 + ros melodic 日期:2022.7.18 本次实现:由于实现三边定位需要先找反光柱 ...

  3. 蒙特卡洛粒子滤波定位算法_蒙特卡罗定位算法(基于粒子滤波的定位算法) ——原理、理解与仿真...

    1 算法原理 1.1 机器人定位问题 关于机器人定位,有三大问题,它们分别是: (1)"全局定位":指初始位置未知,机器人靠自身运动确定自己在地图中的位姿. (2)"位姿 ...

  4. 寒武纪算法开发岗位二面手撕代码题目详细记录

    寒武纪算法开发岗位二面手撕代码题目记录 题目: 给定一个数组,求能组成的和中,最小不可能的和. 例如:[1,2,3,5],最小不可能的和为12. 解答: 就是一个二维动态规划,下面的答案是我面试完下来 ...

  5. 基于矩阵分解的CF算法实现(二):BiasSvd

    基于矩阵分解的CF算法实现(二):BiasSvd BiasSvd其实就是前面提到的Funk SVD矩阵分解基础上加上了偏置项. BiasSvd 利用BiasSvd预测用户对物品的评分, k k k表示 ...

  6. 基于MATLAB的车牌定位算法设计

    目前国外车牌定位识别系统已经有很多成熟的产品,以色列Hi-Tech公司的See/CarSystem系列,新加坡optasia公司的IMPS系列都是比较成熟的产品.但是,这些产品基本上只适合于自己国内的 ...

  7. 毕业设计 : 基于机器学习的驾驶疲劳检测 - 开发记录

    文章目录 0 前言 1 总结 2 基于多视频窗口的疲劳驾驶监测系 3 基于近红外图像的疲劳驾驶检测 4 基于面部特征的全天候疲劳驾驶检测及预警 5 其他方法 最后 0 前言 最近在帮同一位同学研究基于 ...

  8. 基于RSSI三维空间四点定位算法

    之前写过基于rssi的三点定位算法,但是那是平面的,下面介绍三维空间的四点定位算法: 基于rssi的原理,这里不再重复,请参考以前的博文: http://blog.csdn.net/u01309067 ...

  9. Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索

    --若发现文章内容有误,敬请指正,望不吝赐教,感谢! 文章目录 以往记录 运行环境 一.设计Bean用于Controller层返回数据 二.商品批量操作 2.1 批量操作的前端设计 2.2 批量操作的 ...

最新文章

  1. ht-8 对arrayList中的自定义对象排序( Collections.sort(ListT list, Comparator? super T c))...
  2. 使用腾讯开发平台获取QQ用户数据资料
  3. 【蓝桥杯 - 真题】六角幻方(dfs+剪枝)
  4. 恶心的Oracle的if else if...
  5. mac android 证书生成工具,MAC系统下,生成安卓证书的命令
  6. Java知识点详解 6 注解
  7. SAP License:SE16N
  8. 开课吧:为什么AI工程师都要懂一点架构呢?
  9. Ubuntu20.04如何卸载软件
  10. WPF高性能绘图之DrawingCanvas、DrawingVisual、Button的同时使用
  11. 网络创业:网站盈利模式分析分类
  12. linux 任意音频采样率转换
  13. 卷积神经网络CNN简图
  14. vscode中好用的git相关的插件
  15. mysql的双井号_C语言中单井号(#)和双井号(##)在宏语句中的应用
  16. 51单片机仿真例程-PWM直流电动机
  17. 【源码】风向风速图绘制函数WindRose
  18. nginx expires 30s 什么概念
  19. NASA EARTHDATA GES DISC不用爬虫基于插件DownThemAll批量下载数据
  20. A component required a bean of type ‘com.wyh.service.XXX‘ that could not be found.

热门文章

  1. 商品评论、点赞、收藏、分享转发、浏览记录功能
  2. PHP将word文件转为图片之二
  3. 蓝牙耳机-------------蓝牙音频延迟全解析
  4. 实用又快速的多御安全浏览器,你会选择吗?
  5. 重点人员管控系统开发方案,公安合成作战平台建设
  6. 卜若的代码笔记-webgl系列-第三章:几何渲染Rendering Geometry
  7. Python字符与ASCII码的相互转换函数
  8. AR系列路由器产品介绍
  9. 工控机和工控服务器通信协议,基于智能巡检机器人的通用通信协议
  10. 哞哞快的 C# 高斯模糊实现(续)