ASCENT:突破多楼层导航的零样本物体目标导航框架 1. 引言在现代智能机器人的应用场景中服务型机器人和配送机器人正逐步走入多楼层建筑环境。设想这样一个场景你向家用服务机器人发出指令帮我找到电视机但电视机位于楼上的客厅。对于人类而言这是一个自然而直观的任务——我们会本能地上楼、探索房间、最终找到目标物体。然而对于当前的机器人导航系统来说这个看似简单的任务却充满了技术挑战特别是在陌生环境中进行导航时。物体目标导航Object-Goal Navigation, OGN是机器人领域的一个核心研究方向其目标是让机器人在未知环境中自主寻找并到达指定的目标物体。近年来随着深度学习和计算机视觉技术的发展OGN系统在单楼层环境中已经取得了显著进展。然而当我们将视野扩展到多楼层建筑时现有系统普遍暴露出严重的局限性。这些局限性不仅限制了机器人的实际应用范围也阻碍了服务机器人在家庭、办公楼、商场等真实场景中的广泛部署。为了量化多楼层导航问题的重要性研究团队对两个广泛使用的OGN基准数据集进行了深入分析HM3DHabitat-Matterport 3D和MP3DMatterport3D。这两个数据集包含了大量真实世界的室内场景扫描数据被学术界和工业界广泛用于评估导航算法的性能。统计结果揭示了一个令人震惊的事实在HM3D和MP3D数据集的验证集中超过65%的场景涉及多楼层建筑结构。更重要的是约28%的导航任务明确要求机器人进行跨楼层移动才能到达目标物体。这意味着如果一个导航系统无法处理多楼层场景它将在超过四分之一的实际任务中直接失败。这些数据清晰地表明多楼层导航不是一个边缘化的特殊场景而是机器人在真实世界中必须面对的普遍挑战。然而现有的大多数OGN方法在设计时都隐含地假设机器人只在单一楼层活动这种假设与实际应用需求之间存在着巨大的鸿沟。针对上述挑战来自香港科技大学广州、香港科技大学、新加坡国立大学和清华大学的联合研究团队提出了ASCENTAutonomous Stair-aware Cross-floor Exploration and Navigation Technology框架。这是首个支持在线多楼层零样本物体导航的完整系统能够在未知的多楼层建筑中自主探索并找到目标物体无需预先构建地图或针对特定任务进行训练。相关代码已经在Github开源了。2.核心技术架构ASCENT采用模块化设计由两个相互协作的核心模块组成多楼层抽象模块Multi-Floor Abstraction和粗到精推理模块Coarse-to-Fine Reasoning。这种设计既保证了系统的灵活性又确保了各模块之间的高效协同。从系统输入输出的角度来看ASCENT接收RGB-D相机的视觉输入经过多楼层抽象模块构建分层的环境表示再通过粗到精推理模块进行决策最终输出导航动作指令。整个过程完全在线进行机器人在探索过程中逐步建立对环境的理解无需依赖预先构建的全局地图。2.1 问题形式化与优化目标在技术层面ASCENT将物体目标导航问题形式化为一个双目标优化问题。系统需要在探索成本和目标到达成本之间寻找最优平衡τ ∗ arg ⁡ min ⁡ ( λ expl ⋅ c expl ( τ ) λ goal ⋅ c goal ( τ ) ) \tau^* \arg\min(\lambda_{\text{expl}} \cdot c_{\text{expl}}(\tau) \lambda_{\text{goal}} \cdot c_{\text{goal}}(\tau))τ∗argmin(λexpl​⋅cexpl​(τ)λgoal​⋅cgoal​(τ))其中τ \tauτ表示导航轨迹c expl c_{\text{expl}}cexpl​表示探索成本包括移动距离和时间c goal c_{\text{goal}}cgoal​表示到达目标的成本λ expl \lambda_{\text{expl}}λexpl​和λ goal \lambda_{\text{goal}}λgoal​是权重系数。这个优化目标反映了导航任务的本质矛盾机器人需要充分探索环境以找到目标但又要避免无效的探索浪费时间和能量。多楼层抽象模块主要负责降低c goal c_{\text{goal}}cgoal​通过构建准确的环境表示和楼层连接关系确保机器人能够高效地到达目标所在区域。粗到精推理模块则主要负责降低c expl c_{\text{expl}}cexpl​通过智能的前沿点选择策略避免在低价值区域浪费探索资源。2.2 三大核心贡献ASCENT的技术贡献可以总结为三个方面第一提出了首个在线分层框架支持在未知多楼层建筑中进行探索和导航。与需要预先构建地图的方法不同ASCENT能够在探索过程中动态构建和更新环境表示适应各种未知的建筑结构。第二设计了粗到精的前沿点推理策略将LLM调用次数减少了90%以上。这一创新解决了基于LLM的规划方法的效率瓶颈使得实时导航成为可能。具体而言系统默认使用快速的VLM进行粗粒度评估仅在必要时才调用LLM进行深度推理。第三在标准基准测试中取得了最先进的性能。在HM3D数据集上ASCENT相比之前的最佳方法提升了7.1%的成功率SR和6.8%的路径长度加权成功率SPL在MP3D数据集上提升了3.4%的成功率。更重要的是在跨楼层导航任务中ASCENT的成功率达到33.3%大幅超越现有方法。3. 多楼层抽象模块构建分层环境表示多楼层抽象模块是ASCENT实现跨楼层导航的基础。该模块的核心思想是为每个楼层维护独立的鸟瞰图Bird’s Eye View, BEV表示同时建模楼层之间的连接关系。这种设计避免了将多楼层数据合并导致的空间重叠问题为后续的规划决策提供了清晰的环境认知。3.1 BEV地图表示双地图协同机制ASCENT采用两种互补的BEV地图表示来支持高效的探索和导航3.1.1 探索价值地图Exploration Value Map探索价值地图M val M_{\text{val}}Mval​整合了语义相似度和空间可达性两个维度的信息。与之前的方法如VLFM仅考虑语义相似度不同ASCENT引入了基于距离的探索成本确保机器人优先探索既语义相关又空间可达的区域。对于第i ii个前沿点F i F_iFi​其探索价值计算公式为defsort_waypoints(self,obstacle_map,value_map,frontiers:np.ndarray,env:int0,)-Tuple[np.ndarray,List[float]]:# 获取初始排序后的前沿点和值raw_sorted_pts,raw_sorted_valuesvalue_map[env].sort_waypoints(frontiers,0.5)# 过滤掉禁用的前沿点filtered_pairs[]forpt,valinzip(raw_sorted_pts,raw_sorted_values):iftuple(pt)notinobstacle_map[env]._disabled_frontiers:filtered_pairs.append((pt,val))returnnp.array([pair[0]forpairinfiltered_pairs]),[pair[1]forpairinfiltered_pairs]这个设计的直觉是当存在多个语义相关的前沿点时机器人应该优先探索距离较近的区域充分利用局部信息后再进行远距离探索。这种策略在实验中被证明能够显著提高探索效率。3.1.2 楼梯感知障碍地图Stair-Aware Obstacle Map楼梯感知障碍地图M obs M_{\text{obs}}Mobs​是一个二值占用栅格记录环境中的可通行和不可通行区域。与传统方法的关键区别在于ASCENT不将楼梯视为障碍物而是通过语义分割和深度分析将其标记为可通行的特殊区域。该地图维护两个重要的持久化记录黑名单Blacklist记录已尝试但失败的楼梯位置避免重复尝试缓存Cache记录成功通过的楼梯的起点和终点坐标用于后续快速通行这种设计为跨楼层导航提供了拓扑基础使得机器人能够在多个楼层之间灵活切换。3.2 楼梯检测双模态识别机制楼梯检测是实现多楼层导航的关键技术。ASCENT采用双模态方法能够同时检测向上和向下的楼梯。3.2.1 向上楼梯检测向上楼梯的检测结合了物体检测和语义分割两种技术。系统首先使用物体检测器识别候选楼梯区域然后通过语义分割验证楼梯像素的占比。只有同时满足检测置信度和像素占比两个条件的候选区域才被认定为有效楼梯实际实现楼梯检测逻辑集成在ascent/mapping/obstacle_map.py中的ObstacleMap类。核心代码片段# ascent/mapping/obstacle_map.py:520-541 (向上楼梯检测)ifnp.any(stair_mask)0andnp.sum(seg_maskSTAIR_CLASS_ID)20:stair_map(seg_maskSTAIR_CLASS_ID)fusion_stair_maskstair_maskstair_mapifnp.any(fusion_stair_mask)0:stair_depthnp.full_like(depth,max_depth)scaled_depth_stairscaled_depth.copy()stair_depth[fusion_stair_mask]scaled_depth_stair[fusion_stair_mask]# 生成楼梯点云stair_cloud_camera_frameget_point_cloud(stair_depth,fusion_stair_mask,fx,fy)stair_cloud_episodic_frametransform_points(tf_camera_to_episodic,stair_cloud_camera_frame)stair_xy_pointsstair_cloud_episodic_frame[:,:2]stair_pixel_pointsself._xy_to_px(stair_xy_points)ifagent_pitch_angle0andclimb_stair_flag!2:forx,yinstair_pixel_points:if0xself._up_stair_map.shape[1]and0yself._up_stair_map.shape[0]:self._up_stair_map[y,x]13.2.2 向下楼梯检测主动探索策略向下楼梯的检测面临更大的挑战因为从当前视角往往无法直接看到下方的楼梯结构。ASCENT采用了一种创新的主动探索策略来解决这个问题。系统通过深度图识别深度值小于-0.2米的区域这些区域可能是地面的下沉部分暗示着向下楼梯的存在。当检测到这样的潜在区域时机器人会执行以下步骤执行LOOK_DOWN动作调整相机角度向下观察主动接近向潜在楼梯区域移动获得更好的观察视角验证确认使用物体检测和语义分割验证是否为真实的向下楼梯# ascent/mapping/obstacle_map.py:551-562 (向下楼梯检测)ifagent_pitch_angle0andreach_stairFalse:filled_depth_for_stairfill_small_holes(depth,self._hole_area_thresh)inverted_depth_for_stairmax_depth-filled_depth_for_stair*(max_depth-min_depth)inverted_maskinverted_depth_for_stair2# 检测深度下沉区域inverted_point_cloud_camera_frameget_point_cloud(inverted_depth_for_stair,inverted_mask,fx,fy)inverted_point_cloud_episodic_frametransform_points(tf_camera_to_episodic,inverted_point_cloud_camera_frame)below_ground_obstacle_cloud_0filter_points_by_height_below_ground_0(inverted_point_cloud_episodic_frame)below_ground_xy_pointsbelow_ground_obstacle_cloud_0[:,:2]below_ground_pixel_pointsself._xy_to_px(below_ground_xy_points)self._down_stair_map[below_ground_pixel_points[:,1],below_ground_pixel_points[:,0]]1这种主动探索策略使得ASCENT能够实现真正的双向楼层探索而不是像之前的方法那样只能单向通行。这是实现灵活多楼层导航的关键能力。3.3 跨楼层转换动态导航机制当系统决定进行楼层切换时跨楼层转换模块负责执行实际的上下楼操作。这个过程涉及多个精心设计的步骤。3.3.1 楼梯前沿点生成…详情请参照古月居