2022.3.5:学习汇报

2023-11-04 00:40
文章标签 学习 汇报 2022.3

本文主要是介绍2022.3.5:学习汇报,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基础学习和知识补习

1.   ROS基础通讯的手写代码实践:

        因ROS基础较差,假期是通过别人已经编写好的ROS程序包来实现的小车仿真,因此准备自己从头开始实现一下ROS的基础节点通讯,了解节点之间的通讯机制。

        通过参考“ROS机器人开发实践”,为了解订阅--发布的话题topic通讯机制,进行了创建Pulisher节点和Subscriber节点,实现了基于自定义话题消息类型和common_msgs功能包中消息类型的的通讯。又为了解客户端--服务端的服务service通讯机制,进行了创建Server节点和Client节点,并创建自定义服务数据实现通讯。

        在话题topic通讯时编译出下如下问题:

         为CMakeLists文件中存在错误,如下图为改正前的内容。检查发现大小写错误,且另外发现注释掉下图中第3和6行代码也可正常运行,即“add_dependencies(*** ${PROJECT_NAME}_generate_messege_cpp)”内容。

2.     在和宇哥做赵师兄交给的rosbag转换工作的时候,实现文件转换的程序可以编译通过,但在运行时终端显示 “已放弃 (核心已转储)ros” 的错误,且文件转换工作没有完成。

初次分析以为是工作空间目录在“下载”目录下,存在中文路径而造成的程序中路径无法识别问题,因此将工作空间转移到系统根目录下重试,结果仍然出现相同错误。

最后找出错误原因是用于实现文件转换的代码段中文件读取路径有问题,程序中写的文件路径是从主文件夹开始的,即没有包括更上级的系统根目录等。后在代码段中添加了从根目录 “/” 开始的路径,并重新编译和运行,问题得到解决,且文件完成了转换。

3.     因我的SLAM基础较差,本周还阅读了《移动机器人SLAM、目标跟踪及路径规划》中的 “基于卡尔曼滤波机器衍生的同步定位与地图构建算法” 章节内容。主要了解了基于扩展卡尔曼滤波的EKF-SLAM、基于无迹卡尔曼滤波的UKF-SLAM和基于容积卡尔曼滤波的CKF-SLAM算法及对应的改进算法的原理、性能和优缺点。

论文阅读:

DSP-SLAM-Object Oriented SLAM with Deep Shape Priors

        本文提出的DSP-SLAM是一个面向对象的SLAM系统,可以在单目、双立目或双目+激光雷达三种输入模式下以10帧/秒的速度进行工作。特点在于该方法利用前景对象的形状先验,可对前景对象构建出较为精确的稠密3D模型,并用稀疏的地标点来表示背景环境形成联合地图。

        其先利用基于特征的SLAM系统(如ORB-SLAM2)进行三维点云重建,双目+激光雷达系统利用ORB-SLAM2作为SLAM主干网,将重建的三维点云作为输入,该方法通过语义实例分割来检测对象,利用类别特定深度形状嵌入作为先验,通过一种新的二阶优化方法来估计对象的形状和姿态。通过利用对象形状先验,为前景对象构建了一个丰富而精确的稠密3D模型的联合地图。在物体形状和姿势估计方面,在定量和定性上改进了自动标记,这是一种最先进的基于先验知识的物体重建方法。另外,地图还用稀疏的地标点来表示背景环境。在联合因子图中对其进行优化,将基于特征的方法和对象感知SLAM(高级语义地图)的最佳特性结合起来。

        与之类似的Node-SLAM也在实时SLAM系统中纳入了形状先验知识,但它使用稠密的深度图像进行形状优化,而DSP-SLAM可以仅使用RGB单目图像流进行计算,并且每个对象只需要50个3D点即可获得准确的形状估计。尽管FroDO和DSP-SLAM都可以在单目RGB设置下运行,但FroDO是一种缓慢的批量方法,需要提前获取所有帧并与它们的相机姿态关联,而DSP-SLAM是一种在线、连续的方法,可以每秒运行10帧。

LT-mapper A Modular Framework for LiDAR-based Lifelong Mapping

        本文针对地图构建和维护过程中可能遇到的环境变化问题,提出了一种适用于城市环境的开源、模块化的基于激光雷达的终身地图构建和维护框架。特点在于该方法将地图构建问题划分为连续的子问题来实现,包括:多会话(多节)SLAM(multi-session SLAM,MSS),高低动态变化检测,正负变化管理。该方法不需要准确的初始校准,该方法也提供了在大规模点云地图中自动分离出目标的功能,另外对比现有的终身地图构建方法,该方法在所需内存和计算复杂度方面也具有优势(实验验证所用的数据集为MulRan和作者自己的LT-Parkinglot数据集)。

        框架包括可独立运行的三个模块:LT-SLAM子模块,其可在共享帧中融合多个会话(节)并保证伸缩性,通过锚节点(anchor node)弹性处理各个会话(节)。子模块LT-removert可沿空域轴和时域轴调用remove-then-revert 算法,实现会话内/会话间的变化检测,区分高动态对象(清除)和低动态对象(保留),克服了各个会话之间对齐的多义性。子模块LT-map主要管理地图的维护,在地图中提取稳定结构,可以有效地生成最新实时地图和长期元地图,并变换为增量地图进行存储,而增量地图的形式保证了在内存和计算成本方面的高效性(与维护整个会话相比,使用增量映射的LT-map节省了近60%的内存,并且获得了比从头计算低动态点变化快8.9倍的性能)。

ART-SLAM: Accurate Real-Time 6DoF LiDAR SLAM:

        针对自动驾驶和3D地图中车辆或移动机器人的6自由度姿态估计准确性低、实时性差的问题,本文受HDL方法的启发,提出了一个开源、快速、准确(及时在没有形成回环的场景下)的模块化激光雷达SLAM系统,可以同时进行高精度的批量和在线位姿估计。另外,ART-SLAM不受任何框架的约束,可以一直到不同的操作系统上,并且可以进行自定义的改进。在KITTI里程计数据集上的测试结果显示,无论短,中或长序列,该方法比LOAM,LeGO-LOAM,A-LOAM,LeGO-LOAM-BOR的误差都小,而在KITTI00序列上的测试显示本方法的精度与HDL相仿,但实时性更好。

        ART-SLAM的结构如下图所示:

        该系统可以分为两个部分,图中灰色部分为ART-SLAM的核心部分,包括了在输入点云(橙色)上执行SLAM的所有模块。图中的其他模块是可选的,他们用于将来自不同传感器的数据或经处理的数据输入集成到主系统中。给定入射激光扫描,第一步是在预滤波器中进行处理,减小其尺寸并去除噪声。过滤后的点云同时发送到两个模块。最重要的模块是跟踪器,与先前滤波的扫描进行scan-to- scan匹配(比如实用方法 ICP, GICP, VGICP 和 NDT),估计机器人当前位移。另一个是地面检测器,发现机器人相对地面的姿势,增加对轨迹的高度和旋转一致性。当前姿势估计连同其对应点云一起发送到闭环检测器(基于SC算法)模块,在新点云和以前点云之间找到闭环,再次执行scan-to- scan匹配。此外,用姿势、闭环和地面系数(由地面检测器模块估计)构建位置图,表征机器人的轨迹。最后,对位置图进行优化,以提高姿态估计精度。此外,预先计算的里程数(例如,通过不同的传感器或系统)可以作为扫描匹配的初始猜测提供给跟踪器。最后,pre-tracker模块(绿色部分)进行多级scan-to- scan匹配,在进行跟踪步骤之前快速估计机器人的运动:这个估计将被广播给跟踪器,作为scan-to- scan匹配的初始猜测,以提高模块的准确性和性能。

这篇关于2022.3.5:学习汇报的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341997

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件