# 顶视相机全局定位项目 **Repository Path**: henry_jhy/orbslam ## Basic Information - **Project Name**: 顶视相机全局定位项目 - **Description**: 顶视相机全局定位项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-06-26 - **Last Updated**: 2025-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 顶视相机全局定位项目 ## 1. 介绍 在地面流动人群较多的情况下,激光导航模块需要视觉辅助进行全局定位,此项目基于orbslam3进行开发,计划产出配合Cartographer导航模块进行全局定位的orbslam3视觉定位模块。 开发板环境 :RK3399 + 4G内存 系统环境:Ubuntu 18.04/OpenEuler 20.03 软件环境:ROS/原生算法+rosbridge ## 2. 硬件要求 1. 顶视相机,视野 120° 2. 需要标定(内参,外参) ## 3. 数据要求 1. 订阅激光雷达定位输出的机器人位姿(tf) ## 4. 功能 1. 在机器人行走过程中,自动建立环境的图像特征地图与检索库(依赖激光雷达定位的位姿) 2. 给定相机图像输入图像 - 检索相似地图关键帧 - 然后进行特征匹配,获得当前位姿,实现全局定位 ## 5. 技术方案 1. 从开源代码ORB-SLAM中切割相关代码 2. 建图过程 - 前端 - 特征点检测 - 帧间特征点匹配 - 添加关键帧(位姿已知)和地图点 - 后端 - 优化地图点的三维坐标 - 关键帧检索库更新 - 全局定位过程 - 特征点检测 - 相似关键帧检索 - 特征点匹配 - 位姿优化 6. https://gitee.com/gitee-stars/) ## 6. 任务分解 ### 6.1任务1:摄像机图像采集 编写一个ros节点,完成摄像机图像采集和topic发送 ### 6.2 任务2:摄像机标定 **镜头畸变和内参标定** - 用棋盘格标定 **摄像机与机器人坐标系间的位姿标定** - 在线数据采集 找一个场景内容丰富的环境 启动激光雷达SLAM,启动摄像机图像采集 录制ros bag(最好录制全部,如果空间不够,可以只选激光雷达,摄像机图像,tf) 控制机器人走几圈+走走八字 - 离线处理 播放bag,启动单目摄像机的ORB-SLAM 保存ORB-SLAM的位姿输出结果和激光雷达SLAM的位姿输出序列(都要有时间戳) - 标定 提取相同时刻的ORB-SLAM和激光雷达SLAM的位姿对 计算二者间的位姿关系 ## 6.3 任务3:建图前端 - 订阅摄像机图像topic,tf位姿 - 特征点检测 - 帧间特征点匹配 - 判断关键帧 - 特征点三维坐标计算 - 添加关键帧(位姿已知)和地图点 ## 6.4 任务4:建图后端 - 优化地图点的三维坐标 - 键帧检索库更新 ## 6.5 任务5:地图保存和加载 ## 6.6 任务6:全局定位 - 特征点检测 - 相似关键帧检索 - 特征点匹配 - 位姿优化 # 7.计划 正在评估中,计划8月17日完成评估,根据现实习生团队产出进度和计划进行比较,确定是否需要招聘全职ROS开发人员和招聘全职开发人员数目。原评估此项目需要2名全职开发人员,开发工作量为4人/月,测试工作由实习生负责。 第1周:任务1、2 第2、3周:任务3 第4、5周:任务4 第6周:任务5 第7、8周:任务6