《基于多层次概率框架的联合语义建图算法设计与实现》本科毕设每日进展总结

目录

  • 之前的一些总结
    • 任务书
      • 标题《基于多层次概率框架的联合语义建图算法设计与实现》
      • 题目内容:
      • 任务要求:
      • 主要参考文献(4-5篇):
    • ICRA视频的笔记
    • 目前的创新想法
    • 目前已做工作
    • 请教岳老师的一些思路问题
    • 请教学长的一些代码问题
  • 2021/2/1
    • 收获
    • 感想
  • 2021/2/2
    • 收获
    • 感想
  • 2021/2/3
    • 收获
    • 感想
  • 2021/2/4
    • 收获
    • 感想
  • 2021/2/5
    • 收获
    • 感想
  • 2021/2/6
    • 收获
    • 感想
  • 2021/2/7
    • 收获
    • 感想
  • 2021/2/8
    • 收获
    • 感想

之前的一些总结

任务书

标题《基于多层次概率框架的联合语义建图算法设计与实现》

题目内容:

传统的三维地图仅重构环境的几何维度信息,并未融合物体语义标签和类别等高层次信息。随着深度学习的快速发展,语义建图的相关研究引起了大量关注。本课题将研究基于多层次概率框架的机器人联合语义建图算法,首先要求检索多机器人协同语义感知及建图的国内外研究现状,在实现单机器人构建三维语义地图的基础上,设计基于多层次概率框架的全局语义地图更新和融合方法,在现有数据集进行测试和验证。

任务要求:

1.通过对传感器特性分析,设计基于多层次概率框架的机器人联合语义建图算法,实现对环境的三维语义重构。
2.通过公开数据集,开展协同语义建图算法的实际验证。
3.开展定量实验数据处理,分析协同语义建图的精度和算法复杂度。
4.进行实车搭载验证实验或者半实物搭载验证实验。

主要参考文献(4-5篇):

1.Y. Yue and D. Wang, “Collaborative Perception, Localization and Mapping for Autonomous Systems”. Springer, 2020.
2. Yue Y, Zhao C, Wu Z, Yang C, Wang Y, Wang D. “Collaborative Semantic Understanding and Mapping Framework for Autonomous Systems”. IEEE/ASME Transactions on Mechatronics. 2020.
3. J.Jeong,T.S.Yoon,andJ.B.Park, “Multimodal sensor-based semantic 3d mapping for a large-scale environment,” Expert Systems with Applications, vol. 105, pp. 1 – 10, 2018.
4. J. S. Berrio, W. Zhou, J. Ward, S. Worrall, and E. Nebot, “Octree map based on sparse point cloud and heuristic probability distribution for labeled images,” in 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 3174–3181, 2018.
5. S. Yang, Y. Huang, and S. Scherer, “Semantic 3d occupancy mapping through efficient high order crfs,” in 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pp. 590–597, 2017.

ICRA视频的笔记

题目:未删减版:自主系统的协同语义理解和建图框架
ICRA删减之后的题目:协同概率语义建图的层次框架

Introduction:

多机器人协同:希望机器人相序交互,并协作执行任务。

基本需求:协作系统需要执行协同语义理解并共享信息。

应用领域:
1、可控性分析的形成控制
2、一组执行高级任务的机器人
3、自动驾驶车辆共享语义地图并更新城市的全景地图。

动机:
·当前的工作仅专注于几何信息融合,例如平面,线和点
·尚未研究协作语义建图方法的综合分析,建模和实现。

贡献:
·层次协同概率语义建图框架被提出
·提出了期望最大化算法(EM)来估计隐藏的数据关联
·开发协作系统来执行场景理解和全局语义建图

Method:

总体流程:
目标:实现协同机器人语义建图
子模块:
1、多模态语义信息融合:点云和标签图像融合得到语义点云,再经过占用更新和语义更新
2、单机器人语义建图:得到一个机器人的语义地图
3、协同语义地图融合:协同机器人交流,协作式语义地图融合

协同语义建图问题表述:
单机器人级别:目标是根据其相机观测值和3D激光观测值和机器人轨迹来建立它的局部语义地图
协作机器人级别:目标是使用来自相邻这机器人的局部地图,在完全分布式网络中构建全局语义地图

多模态语义信息融合:
1、我们的语义3D建图使用了一个3D激光雷达和一个相机作为它的主要传感器
2、使用Deeplab模型(一种语义分割模型)处理图像以进行分割
3、生成语义点云

Experiment:

多模态感知、几何建图、语义建图、协同融合、分布式交互

Conclusions:

·提出了一种新颖的分层概率语义图融合框架,以解决低层次和高层次语义映射中的问题。
·提出了一种期望最大化(EM)方法来估计局部地图中体素之间的隐藏数据关联
·开发了协作机器人系统以执行场景理解和全局语义映射

目前的创新想法

加入3D CRF优化地图
《基于多层次概率框架的联合语义建图算法设计与实现》本科毕设每日进展总结_第1张图片

目前已做工作

实现了源代码和CRF优化代码各自的运行。除此之外还运行了LOAM的代码,和husky的代码,但都局限于对源代码的运行,没有任何改动。
阅读了很多有关语义建图的文献。

请教岳老师的一些思路问题

1、联合语义建图框架属于我的创新点吗?我能不能说我的工作是在两个大山之间搭建了桥梁?
答:单机离线处理的,不涉及通信,联合语义建图和地图优化是两个创新。
这部分介绍一下,作为自己已有的知识。

2、如果只是地图优化的话,是不是就是文章的拼凑呀,能算是创新吗?论文查重怎么办?
答:不是拼凑,而是把一个方法应用过来。

3、如果专业一点,我是不是需要找到语义地图融合这个融合方法上的创新点?
答:不一定,当然也可以,比如之后可以找连续域内的。可以多参考几何建图的方法,加一个维度。

4、我可不可以优化为:语义地图去除移动的车和人,然后CRF优化,得到静态地图?
这里用了Multimodal sensor-based semantic 3D mapping for a large-scale environment ,这篇文章3D细化就是xy有一个标签,起初车辆聚类分析,然后提出长度或体素太多的。
答:可以的

5、构造的地图是八叉图吗,是栅格图吗?LiDAR构建出来的点都在离散坐标下吗?是不是只有投影到了图像上的点才会展示出来,并且占用概率大于0.5的点才展示出来?
Robust and Efficient Multirobot 3-D Mapping Merging With Octree-Based Occupancy Grids
答:是的,是的,是的,是的

6、感觉如果只是单纯的语义地图的融合只是增加了判断纬度上的信息(语义概率),难点在哪里?
答:发现问题是很难的问题

7、两个机器人之间最开始的相对位姿是不是给定的?是不是可以根据匹配的点求他们两个最开始的相对位姿?
看到了您的一篇IROS:Collaborative Semantic Perception and Relative Localization Based on Map Matching,是期望最大化的方法求解变换矩阵,感觉和庆祥学长的很像,如果做起来是不是有点难了,还是直接使用学长的。我可不可以用6个相匹配点得到相对位姿,可行吗,属于又一个创新吗,还是算法里面用的就是做好了的?不对不是用的5D坐标吗?
答:这以后你们可以一起做,可以往前做,也可以往后做

8、优化的时候,肯定要消耗大量资源,什么时候优化呢?有必要一直传输局部地图吗,最后整合起来不就可以了吗?或者用户需要的时候整合起来。
答:

*9、现在这个分布式的多机建图框架是每个机器人都接收其他机器人的地图吗?那岂不是每个机器人都有一个全局地图了,是不是资源浪费了?可不可以建一个总站,所有机器人分别建图,都存在自己的局部地图,但不发送出来,当最开始两个机器人相遇时,把这两个地图融合起来发送给总站,然后以其中一个机器人的基准坐标,这两个机器人如果和其他机器人相遇(或经过相同场景,ICP?),就把其它机器人的地图也融合进来。被融合进来的机器人需要每隔一段时间发送一下自己的地图,没有被融合的机器人不需要发送。换个思路,是不是不需要每次发送整个局部地图,只需要发送新建立的地图,相当于每次都地图融合一下。——之后的研究
答:每个机器人都要有全局地图,方便以后决策。

octovais

请教学长的一些代码问题

1、代码中有很多注释掉的部分,有哪些文件或者代码可以删掉
2、有没有南洋理工大学的数据呀,需要用到
3、怎么把一个bag拆分为两个bag呀
4、公开数据集在哪里找的

并行化了map的publish
mappointsaver定义Octomap

添加函数:用了模板,Octomap 通用Cloud Octree 否则写清楚
子、父、委托,在base
map_tool map_fusion
发出来的是点云,提取成点云。地图有时有bug。
如果用传感器数据,两个机器人定位算法不用同名,tf树

2021/2/1

收获

一、借助Husky,主要学习怎么在gazebo中搭建一个带有velodyne16线传感器的小车,但是还有一些问题,总是报错。了解了一些urdf的知识。

https://blog.csdn.net/weixin_43807148/article/details/113504806

二、roscd可以用来看看目前有哪些包。

三、 发现gazebo中发布的消息,可以在rviz中展示,但主要要修改上面的map。

感想

希望明天可以完成3D激光雷达的搭载,和主题的发布,并使用程序完成LOAM。

2021/2/2

收获

一、VLP16成功了!
搞了这么久VLP16,发现直接用官方的包就可以了。只需要给出父节点,和子节点,和topic。其他参数默认的就行。
只需要引入.urdf.xacro文件,然后相应位置加上:

       <VLP-16 parent="top_plate_link" name="velodyne" topic="/velodyne_points" hz="10" samples="440">
         <origin xyz="0.2206 0.0 0.00635" rpy="0 0 0" />
       VLP-16>

但是还有一个问题就是太卡了,不知道改hz和samples会有什么影响。 可以先在这边录制一个包,然后去那边播放。
LOAM是可以用了,但是由于一些原因(特征太少,可能还需要有交通道路的那种才好),里程信息并不准确。

二、launch文件之间可以相互引用。
如我在husky_playpen.launch里面引用了键盘控制:

<include file="$(find teleop_twist_keyboard)/keyboard.launch" /> 

感想

希望明天可以找到合适的world,使得LOAM正常运作

2021/2/3

收获

一、腾讯会议同济大学符长虹教授:
《无人机+视觉》

https://blog.csdn.net/weixin_43807148/article/details/113619719

二、腾讯会议北京航空航天余翔教授讲:
《怎么准备科研论文》

https://blog.csdn.net/weixin_43807148/article/details/113619548

感想

哎,今天开了三个腾讯会议,没干什么特别的事情。
原来论文《SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks》中已经有了CRF优化3D,但是他是surfel的,而且是二阶的。看来那个国人写的《Large-Scale 3D Semantic Mapping Using Monocular Vision》真的是模仿这个呀,前两阶一样。
我本科毕设创新点可以提一些新的CRF的吉布斯能量公式
明天需要建立好world,然后解决时延和位姿问题。

2021/2/4

收获

VLP16中samples确实是采样点的意思,加大的话确实有助于位姿估计,然而只要一开某个接收器(LOAM程序或rviz),husky_playpen.launch的程序就会变得比较卡。现在用的1、2Hz
而且即使直线时里程计走的挺好的,但一旦转弯,里程计就崩溃了,不知道是不是小车转弯不够稳造成的。

感想

现在只运行仿真和LOAM就这频率了,到时候再运行语义分割岂不是要废了。
今天上午+中午搞了党课的心得体会,下午搞了LOAM+gazebo,晚上又在搞开题报告的修改,哎,还有文献翻译也得搞,什么时候才能休息一下呢?
今天小年,晚上吃了饺子,可惜还是一个人吃饭。

2021/2/5

收获

一、太奇怪了!
影响里程计判断的确实是samples,hz=“3” samples="2500"就可以。
以为LOAM影响,所以打算用包录制。可是rviz中明明看到的没有畸变,在LOAM里面每一帧都发生了畸变。也不是播放速度的原因,0.5或者1或者2倍速播放包都是这样。看来确实是录制的时候,有畸变。说明LOAM和husky并不冲突,而是husky本身有问题。或许还是因为采样点太多了,而不知道它采样一次要多久。
又发现畸变和HZ好像有关,可以找个15Hz
最后用的hz=“15” samples=“2000”
二、动态环境SLAM的方法
处理动态因素三种方法:基于信息融合,和惯导结合;基于深度信息,可以找到可靠区域;纯使用视觉,多摄像机,成本低,但是导致动态因素监测的模糊性。

感想

仿真软件就是卡,实际硬件上应该没事。明天把PPT做出来,然后看看gazebo仿真还能不能拯救。
也该看看CRF的代码了。

2021/2/6

收获

制作明天的PPT,疯狂演习

感想

又是碌碌无为的一天,哎,主要是对自己英语水平的不放心

2021/2/7

收获

一、上午组会,下午花了三个小时写了博客

https://blog.csdn.net/weixin_43807148/article/details/113739347

二、几次测试发现,不是gazebo的问题,gazebo发出的点云是正常的,LOAM中显示的velodyne_point_registered不正常

感想

既然发现了问题所在,明天尝试一下新的LOAM算法,看看能不能成功

2021/2/8

收获

一、学习了一些深度学习的知识

  • 编码:就是将输入的序列编码成一个固定长度的向量;
  • 解码:就是将之前生成的固定向量再解码成输出序列;
  • 输入序列和输出序列:正是机器翻译的结果和输出;
  • 分心机制:显然,在未考虑注意力机制的 Encoder-Decoder 模型中,这种不同输入的重要程度并没有体现处理;
  • Attention 机制:语义编码 C 就不在是输入序列 X 的直接编码了,而是各个元素按其重要程度加权求和得到的;
  • Transformer:第一个完全依靠自我注意来计算其输入和输出的表示而不使用序列对齐的RNN或卷积的转导模型;

ResNet被全面超越了的论文的作者的报告:

https://blog.csdn.net/weixin_43807148/article/details/113739347

二、几次测试发现,不是gazebo的问题,gazebo发出的点云是正常的,LOAM中显示的velodyne_point_registered不正常

感想

既然发现了问题所在,明天尝试一下新的LOAM算法,看看能不能成功

你可能感兴趣的