1 Star 0 Fork 0

allenhsu6 / global_localization

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

global_localization

介绍

顶视相机全局定位项目

具体项目介绍参见:

https://gitee.com/yunxiangluo/orbslam

进度说明

任务1:摄像机图像采集(完成)

编写一个ros节点,完成摄像机图像采集和topic发送

任务2:摄像机标定(完成)

镜头畸变和内参标定

  • 用棋盘格标定

摄像机与机器人坐标系间的位姿标定(8.16-8.22)

  • 在线数据采集 找一个场景内容丰富的环境 启动激光雷达SLAM,启动摄像机图像采集 录制ros bag(最好录制全部,如果空间不够,可以只选激光雷达,摄像机图像,tf) 控制机器人走几圈+走走八字
  • 离线处理 播放bag,启动单目摄像机的ORB-SLAM 保存ORB-SLAM的位姿输出结果和激光雷达SLAM的位姿输出序列(都要有时间戳)
  • 标定 提取相同时刻的ORB-SLAM和激光雷达SLAM的位姿对 计算二者间的位姿关系

任务2.5: 构造frame(8.16-8.22)

  • 订阅图像,输入ground_truth
  • 转为灰度图
  • 构造frame

任务3:帧间特征点提取与初始化(8.16-8.22)

  • 特征点检测
  • 帧间特征点匹配
  • 三角化进行地图初始化

本周周报:

徐志:

  • 订阅图像,输入ground_truth

  • 转为灰度图

  • 构造frame

  • 特征点检测

  • 帧间特征点匹配

  • 三角化进行地图初始化

方元:

这周先是实现了orbslam的保存功能,可以完整的保存地图,但是后来和邸老师沟通之后,发现直接的做法有错,不应该完整保存整个地图,于是根据他的方法,修改了源码 只保存了kitti数据集,但是还没有解决时间戳的问题

张溢炉:

1、使用VINS双目+IMU录制好EuRoc数据集MH_01_easy轨迹rosbag(包含/cam0/image_raw及其pose两个topic); 2、完成ORBSLAM2环境安装,在ROS环境下测试录制的rosbag;


任务4:帧间tracking和关键帧提取(8.22-8.29)

image-20200817160349293
  • 使用真值进行帧间tracking:这部分使用匀速运动模型,需要把deltaT更换为真值,然后将pose的优化去掉
image-20200817160747703
  • 判断关键帧

    从上次重定位经过了至少20帧 ➢ 距离上次插入关键帧经过了至少20帧 —— 避免关键帧插入过密 ➢ 当前帧至少跟踪到了50个点 —— 当前帧具有良好的跟踪状态 ➢ 当前帧中观测到的地图点中,参考关键帧也观测到的地图点所占的比例小于90% —— 确保新的关键帧观测到了足够多的新环境 ORB-SLAM2中,如果追踪到的近点过少,则也插入新关键帧

  • 特征点三维坐标计算(三角化)


本周工作:

全局定位组:

1、完成pose话题的接收和传递,测试完成(张) 2、完成初始化代码更改,待测试(张) 3、 完成对应场景词袋的训练(徐) 4、 明确保存雷达轨迹数据集的要求,借助展华的自动保存脚本,修改cartographer的配置信息之后,成功将雷达轨迹保存成tum格式,完成了雷达与相机标定的数据采集(方)


任务6: 生成地图(8.29-9.6)

  • 添加关键帧(位姿已知)
    • 更新共视图
    • 更新生成树
    • 计算词袋模型的单词并更新KeyFrameDataBase
  • 剔除old地图点
    • 地图点被追踪的次数/预计被看到的次数 < 25%
    • 被关键帧观察到的次数
  • 添加新的地图点
    • 在其他共视关键帧中寻找匹配点
    • 新产生的匹配点将尝试进行三角化,通过极线约束、正深度检验、视差检验、重投影误差检验等检查后添加到地图中

任务7:地图保存(9.6 - 9.13)

  • 保存地图“Map”中的各个元素,以及它们之间的关系。

    地图主要包含关键帧、3D地图点、BoW向量、共视图、生长树等

    在跟踪过程中有三种跟踪模型和局部地图跟踪等过程。

    • 局部地图跟踪需要用到3D地图点、共视关系等元素
    • 参考帧模型需要用到关键帧的BoW向量
    • 重定位需要用到BoW向量、3D点等
  • 修改map头文件,添加保存地图的函数

  • 修改对应map.cpp文件

  • 修改converter相关文件

  • 修改system文件

任务8:地图加载(9.13-9.20)

  • map相关文件修改
  • mappoint相关文件修改
  • keyframe相关文件修改
  • system相关文件和initKeyframe修改

任务9:全局定位(9.20 - 10.04)

  • 特征点检测

  • 相似关键帧检索

    • 当前帧计算bag-of-words
    • 找出与当前帧相同word的所有关键帧
    • 统计与当前帧相同word最多的单词数:maxCommonWords
    • 设定候选阈值:maxCommonWords * 0.8
    • 筛选出所有大于阈值的候选帧
    • 根据关键帧连接关系分组,计算组得分,记录组中最高得分关键帧,以及所有组中得分最高的得分
    • 在组得分最高的候选帧钟选择大于阈值的关键帧
  • 特征点匹配

    • 将候选帧依次与当前帧匹配(bow加速匹配)
    • 选择匹配特征数大于阈值的关键帧
  • 位姿优化

    1. epnp求解位姿
    2. g2o优化
    3. 若inlier较少,再当前帧和候选帧之间进一步匹配(利用候选帧mapopint投影)

空文件

简介

取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/allenhsu6/global_localization.git
git@gitee.com:allenhsu6/global_localization.git
allenhsu6
global_localization
global_localization
master

搜索帮助