前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于人形机器人的RGB-D SLAM方法比较评估

基于人形机器人的RGB-D SLAM方法比较评估

作者头像
点云PCL博主
发布于 2025-05-24 04:26:30
发布于 2025-05-24 04:26:30
1800
举报
文章被收录于专栏:点云PCL点云PCL

文章: Comparative Evaluation of RGB-D SLAM Methods for Humanoid Robot Localization and Mapping

作者: Amirhosein Vedadi, Aghil Yousefi-Koma, Parsa Yazdankhah, Amin Mozayyan

编辑:点云PCL

摘要

本文针对SURENA-V人形机器人定位与建图任务,对RTAB-Map、ORB-SLAM3和OpenVSLAM三种RGB-D SLAM(同步定位与建图)算法进行了对比评估。实验中,通过在机器人头部安装英特尔® RealSense™ D435 RGB-D摄像头,使机器人沿完整环形路径行进。在定位精度评估中,ORB-SLAM3以0.1073的绝对轨迹误差(ATE)表现最优,其次是RTAB-Map(0.1641)和OpenVSLAM(0.1847)。然而需指出的是,当机器人遇到特征点匮乏的墙面时,ORB-SLAM3和OpenVSLAM均面临里程计精度下降的挑战。值得注意的是,OpenVSLAM在机器人接近起始位置时能够实现闭环检测并完成地图内的重定位。在建图能力评估中,RTAB-Map凭借可生成稠密地图、八叉树地图和占据栅格地图等多样化输出占据优势,而ORB-SLAM3和OpenVSLAM仅能提供稀疏地图。

主要贡献

本文针对人形机器人行走场景,从精度、效率、鲁棒性、可扩展性和适应性等多个维度,对多种RGB-D SLAM方法进行了严格评估。通过深入分析RTAB-Map、ORB-SLAM3和OpenVSLAM等主流技术,系统阐述了其核心原理与算法框架。同时详细介绍了实验评估方案,确保对比分析结果具有可靠性和可复现性。

图1:(a) SLAM算法的世界坐标系、基坐标系与相机坐标系关系示意图 (b) SURENA-V人形机器人头部Intel® RealSense™ D435 RGB-D相机安装位置示意图

主要内容

介绍三种视觉SLAM方法,其简要对比见表1。

A. RTAB-Map算法

RTAB-Map是一种基于图优化的SLAM算法,其突出优势在于与机器人操作系统(ROS)的兼容性,这使其成为机器人应用的理想选择。该算法支持多模态传感器输入,包括RGB-D相机、立体相机及激光雷达,并能融合外部里程计(如编码器里程计或全球定位系统)数据。针对多传感器数据频率差异问题,RTAB-Map内置同步模块确保时空对齐。

该算法特别设计了内存管理模块以应对大规模环境建图需求,通过优化图结构增长方式和计算耗时,显著提升系统可扩展性与鲁棒性。在无外部里程计情况下,算法默认采用GFTT(Good Features to Track)特征检测器提取可追踪特征点,结合BRIEF(Binary Robust Independent Elementary Features)描述符进行特征匹配。为提升匹配效率,采用恒定速度运动模型缩小搜索范围,并通过PnP(Perspective-n-Point)算法计算相机相对于关键帧的位姿变化。

闭环检测采用词袋模型(Bag-of-Words)方法:首先通过视觉里程计特征聚类构建视觉词典,随后将当前帧特征与地图中的视觉单词比对以识别回环。检测到闭环后,采用g2o图优化算法进行位姿图优化。需特别说明的是,若优化后误差仍超过阈值,则该闭环将被判定为无效。优化过程通过迭代最小化误差残差,使回环约束与里程计数据达成一致,从而获得更精确的地图表达。

在建图阶段,RTAB-Map可根据应用需求生成稠密地图、占据栅格地图或稀疏地图等多种地图形式。其中:

  • 稠密地图:包含完整三维点云信息
  • 占据栅格地图:适用于路径规划的二维/三维栅格地图
  • 稀疏地图:仅保留特征点信息的高效表示

B. ORB-SLAM3

ORB-SLAM3是2020年发布的开源SLAM软件库[6],支持单目、双目及RGB-D相机等多种传感器。作为首个采用最大后验估计实现视觉-惯性SLAM的系统,其创新性地引入了多地图"Atlas"架构,包含活跃地图(用于实时帧定位)与非活跃地图(用于重定位、闭环检测及地图融合)。系统运行依托三大并行线程:

  • 1. 跟踪线程:处理传感器数据、估计当前帧位姿,并通过投影匹配特征点最小化误差。视觉-惯性模式下可同步估计机体速度与IMU偏差,并在跟踪丢失时实现全地图重定位。
  • 2. 局部建图线程:管理关键帧与地图点插入、冗余数据剔除、局部BA优化及IMU参数初始化。
  • 3. 闭环与地图融合线程:检测活跃地图与Atlas库的共视区域,执行闭环校正或跨地图融合(融合后生成新活跃地图)。

C. OpenVSLAM

OpenVSLAM是2019年发布的模块化视觉SLAM框架[18],具有以下特性:

  • 多相机模型支持:兼容透视、鱼眼及等距柱面投影模型,支持单目/双目/RGB-D配置
  • 地图管理功能:提供地图存储/加载接口,支持基于预建图的定位任务
  • 跨平台部署:支持浏览器端访问的跨平台可视化

该框架采用基于图优化的间接法,以ORB特征为核心构建三模块架构:

  • 跟踪模块:通过特征匹配与位姿优化实现逐帧相机跟踪,决策关键帧插入
  • 建图模块:执行局部窗口BA优化(Local Bundle Adjustment)构建三维点云地图
  • 全局优化模块:集成闭环检测、位姿图优化(基于g2o)与全局BA

相比ORB-SLAM,其技术优势包括:

  • 独有的等距柱面相机SLAM能力,提供360°全景观测视角
  • 优化的ORB特征提取实现,跟踪耗时降低约30%
  • 完备的地图序列化功能(ORB-SLAM缺失的关键特性)

实验与结果

A. 系统概述

实验平台采用先进系统与技术中心(CAST)研制的SURENA-V人形机器人,该机器人具有44个自由度,身高168厘米,体重68公斤。如图1(b)所示,机器人头部搭载Intel® RealSense™ D435 RGB-D相机(视场角87°×58°)。计算终端采用配备Intel Core i7-11370H四核处理器、8GB GDDR6内存及NVIDIA GeForce RTX 3070显卡的笔记本电脑。通过200Hz控制频率的键盘指令,机器人以每步旋转0.17弧度、平移0.15米的运动参数在平坦地面执行环形路径行走。数据集由RGB-D相机采集,包含640×480分辨率、30帧率的RGB图像与深度图像。

B. 定位精度评估

为评估定位精度,我们采用基于标记物的真值获取方法:在机器人每步行走稳定后,在地面放置标记物,实验结束后通过测量这些标记物的位置与朝向来确定机器人每步终止时刻的真实位姿。随后将算法输出位姿与实测位姿进行对比,并通过公式计算各算法的绝对轨迹误差(ATE)。表II的ATE计算结果表明:ORB-SLAM3定位精度最优(ATE=0.1073),其次为RTAB-Map(0.1641)与OpenVSLAM(0.1847)。

C. 挑战场景与闭环检测评估

人形机器人SLAM实施面临的主要挑战在于步行时固有的机体晃动问题。实验表明,在特征点充足的情况下,三种算法均能保持稳定的定位性能。

当机器人行经特征贫乏的白色墙面区域时(如图3所示),仅RTAB-Map能维持里程计更新,其余两种算法均出现定位丢失。值得注意的是,当机器人返回起始位置附近时,RTAB-Map与OpenVSLAM成功检测到闭环。特别地,OpenVSLAM在闭环检测后展现出在已构建地图中重新定位的能力:通过匹配当前帧与地图关键帧的特征关联,实现位姿校正与地图一致性优化。

图3:各算法里程计输出对比。(A)区域显示当环境特征点减少时,仅RTAB-Map能持续跟踪机器人位姿,其余两种方法均出现跟踪丢失;(B)区域表明OpenVSLAM在检测到闭环后成功实现地图内重定位。

D. 建图能力评估

在建图阶段,ORB-SLAM3和OpenVSLAM均展现出生成稀疏特征地图的能力。如图4所示,这些地图是在算法失去里程计跟踪前获取的,它们通过场景中检测到的特征点分布和密度,直观呈现了机器人感知的环境信息。

与上述两种算法不同,RTAB-Map在建图阶段提供了更丰富的输出选项。图4显示,RTAB-Map能够实时生成环境稠密地图,这种地图通过更高密度的特征点云呈现更精细的环境细节。

图4:各算法建图输出对比。(a) RTAB-Map生成的稠密三维点云地图,(b) OpenVSLAM生成的稀疏特征地图,(c) ORB-SLAM3生成的稀疏特征地图。

此外图5展示了RTAB-Map生成的占据栅格地图。这类地图采用二值化表征(可通行区域/障碍物),特别适用于机器人导航任务。占据栅格地图能为路径规划、避障等自主导航功能提供关键环境信息,有效增强机器人的环境交互能力。

图5:RTAB-Map多模态地图输出 (a) 二维占据栅格地图(黑白二值表示障碍物分布) (b) 稠密点云地图的俯视投影图

总结

本文对三种主流RGB-D SLAM算法(RTAB-Map、ORB-SLAM3和OpenVSLAM)进行了全面评估。在定位精度方面,ORB-SLAM3表现出最优的绝对轨迹误差(ATE)性能,其次是RTAB-Map和OpenVSLAM。在闭环检测能力测试中,当机器人遇到特征点急剧减少的墙面时,RTAB-Map成功维持了位姿跟踪,而其余两种算法均出现跟踪丢失。值得注意的是,OpenVSLAM通过闭环检测后实现了地图内重定位,部分解决了这一问题;相比之下,ORB-SLAM3既未能检测闭环,也无法在丢失跟踪后恢复轨迹。在建图能力评估中,RTAB-Map展现出显著优势,可生成稠密地图、八叉树地图和占据栅格地图等多种形式,而另外两种算法仅能提供稀疏特征地图。

相关阅读:2024年度历史文章大汇总

以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android-Gradle(二) Gradle相关配置详解
Gradle是一个项目自动化建构工具,它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。Gradle主要帮我们做了依赖,打包,部署,发布,各种渠道的差异管理等工作。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。
android_薛之涛
2019/08/23
3.7K0
Android-Gradle(二) Gradle相关配置详解
​iOS上架前的准备、上架技巧、常见上架问题及解决方案【修订】
iOS App如何在爱思助手应用市场上架?(申请iOS App上线爱思助手应用市场)
公众号iOS逆向
2021/07/05
2K0
​iOS上架前的准备、上架技巧、常见上架问题及解决方案【修订】
理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱?
理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱?现在投资理财行业都很火爆,如借贷宝,从去年末起,根据政策,金融理财小额贷款等行业的App更新或者上架必须要提供相应的资质,特别是更新,如果没有能提交上资质就会直接被下架!!!市场上很多代上架的服务中,基本是这两种方法。下面给大家分享一下,理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱? 理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱?现在投资理财行业都很火爆,如借贷宝,从去年末起,根据政策,金融理财小额贷款等行业的App更新或者上架必须要提供相应的资质,特别是更新,如果没有能提交上资质就会直接被下架!!!市场上很多代上架的服务中,基本是这两种方法。下面给大家分享一下,理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱? 方案1:马甲包的字面意思给产品穿马甲,但是我认为马甲包更像是产品的一种分身,一种和产品一样拥有灵魂,拥有肉身的一种分身。它能为产品带来同样的功能效果。 方案2:相对与马甲包,这些我就简单介绍(其实也没啥好介绍)简单来说也就是买买买资质!!!
jiang chen
2018/05/05
3.4K1
理财App无法上架?马甲包VS金融许可证资质上架方案哪个更靠谱?
微信热修复tinker初探
前言 Tinker简介 Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。 Tinker已知问题 1) Tinker不支持修改AndroidManifest.xml,Tinker不支持新增四大组件; 2) 由于Google Play的开发者条款限制,不建议在GP渠道动态更新代码 3) 在Android N上,补丁对应用启动时间有轻微的影响; 4) 不支持部分三
用户1665735
2018/06/20
2K1
Android热更新之微信Tinker集成(接入Bugly热更新)
最近公司项目中需要集成热更新功能,由于刚开始接入的时候踩了很多坑,所以现在记录一下集成的过程.
SoullessCoder
2019/08/07
2K0
Android热更新之微信Tinker集成(接入Bugly热更新)
鸿蒙开发:如何上架一个元服务应用
元服务,类似于微信的小程序,无需安装,即开即用,即用即走,它是基于鸿蒙系统,而非某个应用,也就是系统层的支持,可以说,这一点是非常的便捷,除此之外,元服务是支持独立上架、分发和运行的,能够独立实现业务闭环,可大幅度提升信息与服务的获取效率;特别是对于个人开发者,元服务,更加的包容,目前它可以签署免责函,一些简单的工具类应用,可以不备案,不需要软著,就可以提交上架,这对于个人开发者而言,释放了很多枷锁,可以让很多的开发者参与到生态之中。
程序员一鸣
2024/12/30
1380
鸿蒙开发:如何上架一个元服务应用
【Android】热修复——Tinker(入门)
前言 不知你是否遇到这样的情况?千辛万苦上开发了一个版本,好不容易上线了,突然发现了一个严重bug需要进行紧急修复,怎么办?难道又要重新打包App、测试,发布新个版本?就为了修改一两行的代码? 莫慌,这种问题其实可以分分钟解决。如果你学会了这项黑科技——热修复。 在用户使用App的时候,不知不觉,这个Bug就被修复了。 莫慌 热修复:热修复(也称热补丁、热修复补丁,英语:hotfix)是一种包含信息的独立的累积更新包,通常表现为一个或多个文件。这被用来解决软件产品的问题(例如一个程序错误)。——维基
Gavin-ZYX
2018/05/18
3.4K3
美团 5 大最受欢迎的开源项目,牛批!
小程序开发框架 mpvue 是一个使用 Vue.js 开发小程序的前端框架,目前支持 微信小程序、百度智能小程序,头条小程序 和 支付宝小程序。框架基于 Vue.js,修改了的运行时框架 runtime 和代码编译器 compiler 实现,使其可运行在小程序环境中,从而为小程序开发引入了 Vue.js 开发体验。 主要特性 使用 mpvue 开发小程序,你将在小程序技术体系的基础上获取到这样一些能力: 彻底的组件化开发能力:提高代码复用性 完整的 Vue.js 开发体验 方便的 Vuex 数据管理方案:方便构建复杂应用 快捷的 webpack 构建机制:自定义构建策略、开发阶段 hotReload 支持使用 npm 外部依赖 使用 Vue.js 命令行工具 vue-cli 快速初始化项目 H5 代码转换编译成小程序目标代码的能力 项目地址 开源地址:https://github.com/Meituan-Dianping/mpvue 新一代渠道包打包神器 Walle(瓦力):Android Signature V2 Scheme签名下的新一代渠道包打包神器 瓦力通过在Apk中的APK Signature Block区块添加自定义的渠道信息来生成渠道包,从而提高了渠道包生成效率,可以作为单机工具来使用,也可以部署在HTTP服务器上来实时处理渠道包Apk的升级网络请求。 配置build.gradle 在位于项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖, 如下:
Java架构师必看
2021/12/24
9940
Android技术栈(三)依赖注入技术的探讨与实现
首先先给出结论。控制反转是一种软件设计思想,它被设计出来用于降低代码之间的耦合,而依赖注入是用来实现控制反转最常见的手段。
Android技术干货分享
2019/04/18
8620
Android技术栈(三)依赖注入技术的探讨与实现
贷款应用被拒如何应对?怎么上架(含隐藏开关)的马甲包
      突然间的2.1大礼包成了一个重灾区,苹果加大了中国区的审核力度。但其实归根结底,会触犯到这个大礼包的App很大部分或者说几乎都是和这个关键词挂钩的 ---“马甲包”!
jiang chen
2018/06/10
2.4K1
贷款应用被拒如何应对?怎么上架(含隐藏开关)的马甲包
Android组件化架构
在项目开发中,将公用的代码提取到common_module中,将某些单独功能封装到lib_module中,再根据业务划分module,团队成员分别开发各自的模块。 但随着项目的迭代,功能越来越多,增加了一些业务模块后,相互调用的情况会增多,就会发生各个业务模块之间的耦合非常严重,导致代码难以维护且扩展性很差。组件化就应用而生了。 组件化基础:多module划分业务和基础功能。 组件:单一的功能组件,如适配,支付,路由组件等,可单独抽出来形成SDK。 模块:独立的业务模块,如直播,首页模块等。模块可能包含多个不同组件。
八归少年
2022/06/29
1.2K0
Android组件化架构
Android 天气APP(一)开发准备
好天气APP(天气预报、空气质量、生活建议、灾害预警、出行建议、城市切换、城市搜索、世界国家/地区的城市、常用城市、背景更换、应用自动更新) (运用百度定位、百度地图与和风天气API制作)
晨曦_LLW
2020/09/25
1.2K0
Android  天气APP(一)开发准备
“终于懂了” 系列:Android组件化,全面掌握!
随着项目逐渐扩展,业务功能越来越多,代码量越来越多,开发人员数量也越来越多。此过程中,你是否有过以下烦恼?
胡飞洋
2020/10/23
2.1K0
android Gradle的几个基本概念
什么是Gradle? Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。
xiangzhihong
2018/02/02
6190
android Gradle的几个基本概念
从0系统学Android--1.3创建你的第一个 Android 项目
在 Android Studio 的欢迎页面点击 Start a new Android Studio project 就会自动为我们创建一个项目。(首次开启项目,可能构建时间很长,需要下载很多东西,和你的网速有关系)
开发者
2019/12/26
6340
使用Gradle管理你的Android Studio工程
关于Android Gradle更多详细内容已经出书《Android Gradle权威指南》,大家可以购买,看更多没有介绍的知识点和内容,购买链接如下
飞雪无情
2018/08/28
1.1K0
Android Studio 安装配置教程 - Windows(详细版)
Android Studio下载地址-谷歌中国,最新版本目前是4.0.1,这个版本新增了很多牛逼的功能,但是手上有工作项目的不要去轻易尝试,BUG是肯定会有的,你放心,新手可以去下载安装尝试。
晨曦_LLW
2020/09/25
7.1K0
Android 开发的17个建议,紧跟Google官方,进阶必看!
将你的Android SDK放在你的home目录或其他应用程序无关的位置。 当安装有些包含SDK的IDE的时候,可能会将SDK放在IDE同一目录下,当你需要升级(或重新安装)IDE或更换的IDE时,会非常麻烦。 此外,若果你的IDE是在普通用户,不是在root下运行,还要避免吧SDK放到一下需要sudo权限的系统级别目录下。
张拭心 shixinzhang
2022/05/06
6690
安卓入门-熟悉Android Studio以及创建第一个安卓模块
Package name:表示项目的包名,Android系统就是通过包名来区分不同应用程序的,因此包名一定要具有唯一性。
Fisherman渔夫
2020/02/18
2.5K0
安卓入门-熟悉Android Studio以及创建第一个安卓模块
build.gradle文件介绍,gradle版本对应
Could not find com.android.tools.build:gradle:3.0.1.
zhangjiqun
2024/12/16
5470
build.gradle文件介绍,gradle版本对应
推荐阅读
相关推荐
Android-Gradle(二) Gradle相关配置详解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档