想象你是一位“智能管家”培训师,正在面试一个叫小空的机器人实习生。考官(也就是你)随口说出各种指令:“把杯子放到桌子前面”“把椅子往左边挪一点”“钥匙在书桌抽屉里”。你的任务,是判断小空能否听懂这些家常话,并手脚麻利地完成任务。 其实,这些指令背后藏着人工智能一个基础又关键的能力——空间关系推理。所谓“前面”“左边”“抽屉里”,都是一种相对位置描述:它们不像“北京到上海 1200 公里”那么绝对,而是依赖“谁在看”“以什么为参照”才能确定。小空要做的,是把一句含含糊糊的日常话,翻译成房间里一个个准确的坐标位置,再规划路径走过去。 这篇文章就用小空的“上岗日志”作主线,带你完整走一遍空间关系推理的六大步骤:从认识前后左右内外的本质,到选参照系定基准,再到用坐标和数学公式计算方位,接着理解自然语言与空间的对应关系,最后落到推理算法和工程部署。读完你会发现,AI 能听懂“把拖鞋放到床的左边”,跟它会不会“看图识字”一样,是一套清晰可学的技能。

岗位关联

空间关系推理是具身智能与导航系统的基石能力。掌握它,你将理解如何把一句日常口语变成机器人可执行的坐标指令——这是智能体从“听懂话”迈向“做对事”的关键一跃。

目录
  1. 可视化演示
  2. 1. 空间关系基础:像整理书桌一样认识方位
  3. 2. 参照系选取:你的左边还是我的左边
  4. 3. 几何坐标表示:给房间画一张地图
  5. 4. 语义映射理解:把话翻译成坐标
  6. 5. 推理算法实现:让管家动脑选答案
  7. 6. 评估与工程落地:让管家上岗
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

本节配有交互动效(进入视口后自动加载,约 3KB)。

1. 空间关系基础:像整理书桌一样认识方位

面试第一天,考官把小空带到一张书桌前,桌上摆着一杯水、一本笔记本和一个笔筒。考官说:“把杯子放到笔记本的前面,笔筒放到笔记本的左边。”小空低头盯着桌面,心里冒出一连串问题:前面是哪一面?左边是哪一边?笔记本又不是人,它也有“朝向”吗?

这些问题的答案,构成了空间关系推理的第一课:空间关系从来不是物体的固有属性,而是物体之间的“相对坐标”。在自然语言里,人类描述位置的方式可以粗分成三类。第一类是投影关系(projective terms),比如前、后、左、右,它依赖参考物的朝向和观察者的视角;第二类是拓扑关系(topological terms),比如内、外、相邻、接触,它只关心两个物体是否包含或相交,跟距离和角度无关;第三类是度量关系(metric terms),比如“离门两米”“很近”,它带上了数量的刻度。

在智能体的内部,这三类关系被统一建模为一个可计算的关系集合。设目标物体为 A,参考物体为 B,空间关系推理要回答的问题就是:从候选关系集合中挑出与当前几何场景最匹配的那一项。这个候选集合记为:

对小空来说,第一课终于有点感觉了:原来“前面”不是凭空冒出来的词,而是一道待解的填空题——答案取决于参考物是谁、它的朝向在哪。就像它在书桌边站定后才明白,考官说的“笔记本前面”,是以笔记本的摆放方向为基准的。它默默在记忆里给桌上的每件东西标了一个“朝向箭头”。

R(A,B)∈{前,后,左,右,内,外,上方,下方,旁边}\displaystyle R(A,B) \in \{ \text{前,后,左,右,内,外,上方,下方,旁边} \}
这个公式说明:空间关系推理本质上是一个“选择题”,候选答案就是花括号里的方位词集合,AI 要根据场景几何条件选出最合理的一个。
  1. 目标与参考R(A, B) 表示“以 B 为参考物,A 处于什么位置关系”,比如“杯子在笔记本前面”。
    R(杯子,笔记本)=前\displaystyle R(\text{杯子}, \text{笔记本}) = \text{前}
  2. 关系集合花括号列出所有候选关系,每次推理都要从这些词里选一个作为输出。
    {前,后,左,右,内,外,上方,下方,旁边}\displaystyle \{ \text{前,后,左,右,内,外,上方,下方,旁边} \}
  3. 判定规则集合里的每一项背后都对应一条几何判定规则(如“前”用点积、“内”用包围盒),第三节将详细展开。

2. 参照系选取:你的左边还是我的左边

第二天的培训换成场景练习。考官站在小空对面,指着柜子说:“把花盆放到我的左边。”小空刚迈出一步又顿住了:考官说的“左边”,到底是考官的左边,还是小空自己的左边?它站在两人中间,一时不知该伸手还是该转身。

这正是空间关系推理最经典的坑:参照系(reference frame)的选择。同一个位置,用不同的参照系描述,会得到完全相反的方向词。主流参照系有三种。自我中心参照系(egocentric)以观察者自身的位置和朝向为原点,“我的左边”就是小空视野里的左侧;环境中心参照系(allocentric)以房间、地图或全局坐标为基准,“北边”“门旁边”属于这一类;物体本身参照系(object-centered)则看参考物自己的朝向,比如“笔记本的前面”取决于笔记本摆放的方向。

对机器人来说,三类参照系需要能自由切换。数学上,切换就是一次坐标变换:把以机器人自身为原点的本地坐标,平移到世界坐标,并旋转到目标朝向。设机器人感知到的位置向量为 p_ego,自身朝向角为 θ,世界坐标系下的位置由下式给出:

听完这些,小空心里的困惑解开了。它先把考官的脸和身体朝向记下来,在心里嘀咕:“原来考官说的左边,是以他面朝的方向为基准,翻转 90 度。”它走到花盆边,先让身体的朝向与考官对齐,然后向左迈了一步,顺利把花盆放到了考官左侧。参照系搞对了,动作就自然对了。

pworld=(cos⁡θ−sin⁡θsin⁡θcos⁡θ)pego+t\displaystyle \mathbf{p}_{\text{world}} = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix} \mathbf{p}_{\text{ego}} + \mathbf{t}
这个公式是“参照系切换”的数学骨架:先旋转、再平移。它解释了为什么判断左右前必须先确认参照系——旋转矩阵把机器人的“视野”对齐到世界的“地图”。
  1. 旋转矩阵2×2 矩阵把本地坐标逆时针旋转 θ 角,θ 是机器人朝向与世界坐标轴的夹角。
    (cos⁡θ−sin⁡θsin⁡θcos⁡θ)\displaystyle \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{pmatrix}
  2. 平移向量t = (t_x, t_y) 表示把旋转后的坐标挪到世界原点所需的偏移,相当于“走路”的距离。
    t=(tx,ty)\displaystyle \mathbf{t} = (t_x, t_y)
  3. 完整变换先旋转、再平移,顺序不能颠倒,否则结果完全不同。
    pworld=R(θ) pego+t\displaystyle \mathbf{p}_{\text{world}} = \mathbf{R}(\theta)\, \mathbf{p}_{\text{ego}} + \mathbf{t}

3. 几何坐标表示:给房间画一张地图

培训第三天,考官给小空看了一张俯视图:房间被画成一张二维地图,每件家具都变成了带坐标的方块。考官指着地图说:“看清了吗?判断前后左右,其实就是在这张图上做算术。”

在地图上,每个物体都有位置坐标 (x, y),每个参考物还有一条“朝向向量” f,表示它面朝的方向。于是“杯子在桌子的哪一侧”这个口语问题,就变成了一道纯粹的向量计算题。两个工具撑起全部计算:点积判前后,叉积判左右。

设目标点 T 相对参考点 R 的位移向量为 d = T − R,参考物的朝向向量为 f。前后用点积:d 在 f 方向上的投影,正数意味着 T 在 R 的前方,负数意味着后方。左右用叉积:f 到 d 的旋转方向,正数意味着 d 在 f 的左侧,负数意味着右侧。用公式合并表达:

对小空来说,这张“地图加算术”的组合拳让一切豁然开朗:它不用再凭直觉绕圈子,只需要在脑中的地图上拉两根箭头——一根指向目标,一根代表家具的朝向——然后让点积和叉积替它回答“前还是后、左还是右”。它把这块“几何地图”当成了自己的秘密武器,之后的每次判断都又快又稳。

前后=sign(dxfx+dyfy),左右=sign(fxdy−fydx)\displaystyle \text{前后} = \text{sign}\big(d_x f_x + d_y f_y\big), \qquad \text{左右} = \text{sign}\big(f_x d_y - f_y d_x\big)
这两行是空间关系推理的“左膀右臂”:点积管前后,叉积管左右。符号函数 sign 把计算值压缩成 +1、0、−1,分别对应“正方向/正中/反方向”。
  1. 位移向量先计算 d = (d_x, d_y) = (T_x − R_x, T_y − R_y),这是从参考物指向目标的箭头。
    d⃗=(xT−xR,  yT−yR)\displaystyle \vec{d} = (x_T - x_R,\; y_T - y_R)
  2. 点积判前后d·f = d_x × f_x + d_y × f_y,正值表示目标落在参考物前方,负值表示后方。
    dot=dxfx+dyfy\displaystyle \text{dot} = d_x f_x + d_y f_y
  3. 叉积判左右f × d = f_x × d_y − f_y × d_x,正值表示目标在参考物左侧,负值表示右侧。
    cross=fxdy−fydx\displaystyle \text{cross} = f_x d_y - f_y d_x
  4. 符号函数sign 把数值压成 +1 / 0 / −1,分别对应左/中/右、前/平/后。
    sign(s)={+1,s>00,s=0−1,s<0\displaystyle \text{sign}(s) = \begin{cases} +1, & s > 0 \\ 0, & s = 0 \\ -1, & s < 0 \end{cases}

4. 语义映射理解:把话翻译成坐标

第四天,考官把纸条递给小空,上面写着:“把椅子挪到书桌的前方。”小空看着“前方”两个字,脑海里联想起培训时学过的朝向箭头——它知道,第一步是先算出书桌面向哪里。

从自然语言到几何动作,中间隔着一条“翻译流水线”。第一步是解析(parsing):从句子中找出目标物体(椅子)、参考物体(书桌)和关系词(前方)。第二步是规范化(normalization):把“前方”“前面”“正前方”这类同义词统一成标准关系标签。第三步是空间词映射:把标准标签换算成几何符号——「前方」映射到参考物的朝向单位向量,「左方」映射到朝向向左旋转 90 度的单位向量。

映射这一步最核心。设参考物的朝向向量为 f,归一化后得到单位向量 f̂。那么“前方”就等价于 f̂,“左方”等价于把 f̂ 逆时针旋转 90°,“右方”则旋转 −90°。写成矩阵形式:

小空把“前方”两个字在脑中过了翻译流水线:先锁定“书桌”和“前方”,再算出书桌的面朝方向,接着在朝前的那片半圆形区域里选中一个合适的空位。当它推着椅子走到那个位置时,考官满意地点了点头——那句“把椅子挪到书桌的前方”,已经变成了它脚下实实在在的一步。

d^前=f⃗∥f⃗∥,d^左=(0−110)d^前\displaystyle \hat{d}_{\text{前}} = \frac{\vec{f}}{\|\vec{f}\|}, \qquad \hat{d}_{\text{左}} = \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix} \hat{d}_{\text{前}}
这个公式把口语里的方向词“翻译”成几何方向:先单位化得到标准朝向,再用旋转矩阵得到左方。有了这些单位向量,机器人就能在目标区域里搜索可落脚的点了。
  1. 单位化f̂ = f / ‖f‖ 把任意长度的朝向向量变成“只管方向、不管长短”的单位向量。
    d^前=f⃗∥f⃗∥\displaystyle \hat{d}_{\text{前}} = \frac{\vec{f}}{\|\vec{f}\|}
  2. 左旋矩阵矩阵乘 f̂ 等于让向量逆时针旋转 90°,正好指向参照物的左侧。
    (0−110)\displaystyle \begin{pmatrix} 0 & -1 \\ 1 & 0 \end{pmatrix}
  3. 落点搜索方向定了之后,在沿该方向的适当距离处选一个可落脚的点,就完成了从词到动作的翻译。
    落点=参考物位置+λ⋅d^方向,λ>0\displaystyle \text{落点} = \text{参考物位置} + \lambda \cdot \hat{d}_{\text{方向}}, \quad \lambda > 0

5. 推理算法实现:让管家动脑选答案

第五天,考官开始加难度:“把花瓶放到那本书的旁边。”小空环顾四周,发现书周围有桌子、台灯和另一本书。到底哪个位置才配得上“旁边”?它第一次意识到,空间关系推理不是判断题,而是一道排序题。

在真实场景中,“旁边”“附近”“前方不远处”都不是精确约束,智能体要在海量候选位置里挑一个最合适的。完整的推理流程分四步:先生成候选关系,再对候选排序打分,然后消解冲突,最后输出结构化结果。

打分是灵魂。一个候选位置 c 的得分由三部分加权合成:方向对齐度(c 是否在参考物的正确方位上)、距离合适度(c 与参考物之间的距离是否匹配“旁边”的语义)、以及可到达性(c 是否为无障碍的空地)。

小空明白了,所谓“选一个位置”,其实是把所有可能的落点都列在脑中的地图上,像面试官批试卷一样给每个点打分:方向对不对?距离合不合适?路上有没有障碍?最终,它选中了书左侧 30 厘米处的一个空位,稳稳放下花瓶。考官再次点头——排序题,小空拿到了满分。

Score(c)=α⋅Align(c)+β⋅11+Distance(c)+γ⋅Reach(c)\displaystyle \text{Score}(c) = \alpha \cdot \text{Align}(c) + \beta \cdot \frac{1}{1 + \text{Distance}(c)} + \gamma \cdot \text{Reach}(c)
这就像面试官给候选答案批分:方向对不对占一部分,距离合不合适占一部分,路能不能走通占一部分。权重 α、β、γ 通常由训练数据学习得到。
  1. 方向对齐度Align(c) 用第三节的点积/叉积算出,判断候选点是否落在“旁边”对应的方向区域。
    Align(c)={1,方向正确0,方向不符\displaystyle \text{Align}(c) = \begin{cases} 1, & \text{方向正确} \\ 0, & \text{方向不符} \end{cases}
  2. 距离项1/(1+dist) 把距离压缩到 0~1 之间,越近分数越高,匹配“旁边”偏好近距离的语义。
    11+Distance(c)\displaystyle \frac{1}{1 + \text{Distance}(c)}
  3. 可到达性Reach(c) 检查该点是否被障碍物占据,相当于一个 0/1 开关。
    Reach(c)={1,可到达0,被占据\displaystyle \text{Reach}(c) = \begin{cases} 1, & \text{可到达} \\ 0, & \text{被占据} \end{cases}
  4. 加权求和α、β、γ 是三者重要性权重,排序后取分数最高且符合物理约束的候选作为输出。
    最优位置=arg⁡max⁡c∈CandidatesScore(c)\displaystyle \text{最优位置} = \arg\max_{c \in \text{Candidates}} \text{Score}(c)

6. 评估与工程落地:让管家上岗

培训最后一天,考官宣布:“小空,你毕业了。但上岗之前,还要过一轮标准化考核,以及和工程团队的联调。”小空既紧张又兴奋——它知道,真正的挑战才刚刚开始。

空间关系推理要真正走向产品,离不开两件事:评估基准与工程规范。评估基准解决“怎么做才算对”的问题——它需要一个带标注的数据集,里面每条样本都问“物体 A 相对物体 B 是什么关系”,并给出标准答案;工程规范解决“怎么接上线”的问题——感知团队输出坐标,算法团队输出关系,导航团队输出路径,三者的数据接口必须统一。

最常用的评估指标是准确率,即模型判断正确的样本占全部样本的比例:

小空顺利通过了标准化考试——在 5000 道“物件关系选择题”里拿到了 94% 的准确率。紧接着,它的“大脑”被接入房间的感知与导航系统:摄像头给出坐标,它给出关系判断,轮式底盘负责移动。工程团队和算法团队坐在一起,把接口调通的那一刻,小空真正从一个培训生,变成了能听懂人话、看得懂房间的智能管家。

Acc=1N∑i=1N1(r^i=ri)\displaystyle \text{Acc} = \frac{1}{N} \sum_{i=1}^{N} \mathbf{1}\big(\hat{r}_i = r_i\big)
准确率就是“答对的题数除以总题数”。其中 1(·) 是一个小机关:条件成立记 1 分,不成立记 0 分,把每次判断变成一次对错统计。工程侧,标准做法是定义统一的空间关系接口:输入三元组(目标物体、参考物体、参照系类型),输出结构化的关系标签和置信度。
  1. 指示函数1(条件) 在括号内等式成立时取 1,否则取 0,用来把每次判断转成“对或错”。
    1(r^i=ri)={1,r^i=ri0,否则\displaystyle \mathbf{1}\big(\hat{r}_i = r_i\big) = \begin{cases} 1, & \hat{r}_i = r_i \\ 0, & \text{否则} \end{cases}
  2. 求和平均把 N 个样本的 0/1 结果累加并除以 N,得到正确率这个百分比。
    1N∑i=1N⋅\displaystyle \frac{1}{N} \sum_{i=1}^{N} \cdot
  3. 输入输出接口接口约定“喂什么”(目标、参考、参照系)和“吐什么”(标签+置信度),让上下游团队可以独立开发。
    接口:(目标,参考,参照系)→(关系标签,置信度)\displaystyle \text{接口}: (\text{目标}, \text{参考}, \text{参照系}) \rightarrow (\text{关系标签}, \text{置信度})

AI 应用场景

家庭服务机器人整理房间

阶段:具身智能 / 指令理解

解决的问题:传统扫地机器人只能按预设路线移动,听不懂“把拖鞋放到床的左边”这类相对位置指令。引入空间关系推理后,机器人解析场景中物体的坐标和朝向,再执行空间动作。

具体案例:用户出门前说“帮我把钥匙放到玄关柜的左边抽屉里”。机器人先通过摄像头识别玄关柜,计算它的朝向和左侧区域,再定位抽屉把手坐标,最后完成放置动作。

园区物流车的停靠定位

阶段:导航与路径规划

解决的问题:无人车收到“停到最后一排货架的左侧通道”这类指令时,需要理解货架的朝向并计算通道中心线,而不是简单导航到一个固定坐标点。

具体案例:园区物流车到达装卸区,系统指令要求“停到最后一排货架的左侧通道”。车辆融合激光雷达点云,输出货架的包围盒和朝向,计算出左侧通道的中心线,完成精准泊车。

AR 辅助维修的语音指引

阶段:多模态理解

解决的问题:AR 眼镜提示“拧开工位右上角那颗螺丝”时,传统系统需要人工预标注每个零件的坐标,无法适应任意视角和设备布局。

具体案例:维修人员戴着 AR 眼镜说“那个红色阀门的右边有一个按钮”,系统通过语义映射把“右边”转成相对阀门朝向的向量,再投影到屏幕上高亮目标按钮,引导维修员操作。

Python 演示

python63 行
"""空间关系推理演示: 前后/左右/内外的几何判定"""import math  class Object:    """场景物体: pos 为坐标 (x, y), front 为朝向向量 (fx, fy)"""     def __init__(self, name, pos, front=(0, 1)):        self.name = name        self.pos = pos        self.front = front  def judge_front_back(target, ref):    """用点积判断目标在参考物的前方还是后方"""    dx = target.pos[0] - ref.pos[0]    dy = target.pos[1] - ref.pos[1]    score = dx * ref.front[0] + dy * ref.front[1]    if score > 0:        return "前方"    if score < 0:        return "后方"    return "侧面"  def judge_left_right(target, ref):    """用叉积判断目标在参考物的左侧还是右侧"""    dx = target.pos[0] - ref.pos[0]    dy = target.pos[1] - ref.pos[1]    cross = ref.front[0] * dy - ref.front[1] * dx    if cross > 0:        return "左侧"    if cross < 0:        return "右侧"    return "正中"  def judge_inside(point, box):    """判断点是否在矩形包围盒内部: box = (中心x, 中心y, 半宽, 半高)"""    cx, cy, half_w, half_h = box    return (cx - half_w <= point[0] <= cx + half_w and            cy - half_h <= point[1] <= cy + half_h)  def main():    # 场景: 桌子朝向向量 (0, 1) 表示面向屏幕下方    table = Object("桌子", (5.0, 4.0), front=(0, 1))    cup = Object("杯子", (5.0, 6.0))    chair = Object("椅子", (4.0, 3.0))     print("杯子在桌子:", judge_front_back(cup, table), "/",          judge_left_right(cup, table))    print("椅子在桌子:", judge_front_back(chair, table), "/",          judge_left_right(chair, table))     # 桌面矩形范围: 中心(5,4), 半宽2, 半高1.5    table_box = (5.0, 4.0, 2.0, 1.5)    print("杯子坐标在桌面矩形范围内:",          judge_inside(cup.pos, table_box))  if __name__ == "__main__":    main()
目的:用不到 60 行实现空间关系推理的核心判定——点积判前后、叉积判左右、包围盒判内外,输出“杯子在桌子前方/左侧”这类结构化结果。
  1. score = dx * ref.front[0] + dy * ref.front[1]点积计算:把目标相对参考物的位移投影到朝向上,正负号决定前后。
  2. cross = ref.front[0] * dy - ref.front[1] * dx叉积计算:判断目标相对朝向向量的旋转方向,正负号决定左右。
  3. (cx - half_w <= point[0] <= cx + half_w and ...)包围盒内外判定:四个边界不等式同时成立才算“在内”。
  4. table = Object("桌子", (5.0, 4.0), front=(0, 1))定义参考物:位置 (5,4),朝向向量 (0,1) 表示面朝屏幕下方。
  5. judge_front_back(cup, table)推理入口:传入目标与参考物,返回结构化方位标签。

常见误区

误区很多初学者以为“桌子的左边”是桌子永恒的标签,无论从哪个方向看都一样。判断时不需要考虑观察者,直接对着图看就行。

正解左右取决于参照系。如果你站在桌子对面,桌子的左侧在你看来可能刚好是右侧。“桌子的左边”必须结合桌子的自身朝向来定义——先明确朝向,再谈左右。这就好比你和朋友面对面时,你们的“左边”正好相反。

为何常见:人类习惯以自己为中心,默认“我看到的左”就是左,忽略了物体自身参照系的存在。

误区以为“桌子前面”指的是某一个精确坐标,机器人只要走到那个点就完成指令。可到了现场却发现,前方有地毯、有花盆,到底该停哪?

正解“前面”在语义上是一个扇形区域,而不是一个点。具体落点还要结合距离、可到达性和避障来决定。空间关系推理的输出更像“划定区域”,而不是“指定坐标”。

为何常见:很多教学演示只画了一个目标点,让人误以为空间关系是点对点的精确定位。

误区拿“点是否在 2D 包围盒内”当作“物体在盒子内”的完整答案,忽略了容器的开口、物体的体积和遮挡关系。

正解真实世界的“内”还要考虑容器开口和物理可达性。比如一本书“在抽屉里”,抽屉拉出和合上状态完全不同;判定时要结合容器的 3D 几何与开口朝向,判断物体能否被容纳且实际处于其中。

为何常见:课程里为了简单常用 2D 包围盒举例,初学者容易把简化模型当成完整答案。

误区认为“旁边”只有一个固定距离,“前方”也只有一个固定的方向角。把每个空间词硬编码成一个常量。

正解“旁边”是一个模糊带,距离远近随场景和物体尺度变化——“书桌旁边的 30 厘米”和“篮球场旁边的 3 米”都是合理的。语义映射常输出概率分布或距离区间,而非单一向量。

为何常见:词典释义给了我们“旁边=附近”的错觉,忽略了语用的灵活性。

误区认为“理解语言”用大模型,“计算位置”用几何库,两者是独立模块,不需要联合设计。

正解二者必须耦合。同一个“前”字,在“汽车前面”和“人前面”里对应的几何含义完全不同——汽车前方是行进方向,人的前方是面部朝向。语言解析的结果直接影响坐标计算,坐标计算结果也会反过来修正语义(比如出现意向歧义时)。

为何常见:工程分工时语言模型和几何模块往往由不同团队负责,接口一拆,就容易形成“只传词不传上下文”的割裂。

面试题

Q1. 判断目标物体在参考物前方还是后方,最常用下列哪种几何运算?

单选题 · easy

  • A.用点积判定投影方向← 正确答案
  • B.用叉积判定旋转方向
  • C.用开方计算欧氏距离
  • D.用取余计算角度周期

答案:A。点积把目标相对参考物的位移向量投影到参考物朝向向量上,正为前、负为后。叉积管左右,距离管远近,取余与方位判定无关。

Q2. “把花盆放到我的左边”属于哪种参照系?

单选题 · easy

  • A.环境中心参照系
  • B.自我中心参照系← 正确答案
  • C.物体自身参照系
  • D.全局地理参照系

答案:B。“我的左边”以说话人自身位置和朝向为基准,是典型的自我中心参照系。环境中心参照系以房间或地图为基准,物体自身参照系以参考物朝向为基准。

Q3. 下列哪些是空间关系推理面临的主要挑战?

多选题 · mid

  • A.空间词存在语义模糊性← 正确答案
  • B.参照系不同导致判断翻转← 正确答案
  • C.“旁边”的距离随场景变化← 正确答案
  • D.物体颜色影响识别效果

答案:ABC。模糊性、参照系和场景尺度都会影响方位判断。物体颜色属于视觉外观属性,与空间关系推理本身无直接关联。

Q4. 叉积 f×d 的结果为正数,表示目标 d 在参考物朝向 f 的哪个方向?

单选题 · mid

  • A.左侧← 正确答案
  • B.右侧
  • C.前方
  • D.后方

答案:A。在约定的坐标系约定下,叉积符号代表旋转方向,正数对应参考物朝向的左侧。注意坐标系方向不同,符号含义可能互换,使用前要固定坐标系约定。

Q5. 自然语言空间词映射为几何向量时,“左方”通常对应把单位朝向向量怎样变化?

单选题 · mid

  • A.逆时针旋转 90 度← 正确答案
  • B.顺时针旋转 90 度
  • C.长度缩短一半
  • D.取相反方向

答案:A。左方是朝向向量的逆时针 90 度旋转,右方是顺时针 90 度。旋转只改变方向,不改变向量长度,因此不涉及缩放或取反。

Q6. 空间关系推理算法中,对候选位置打分通常考虑哪些因素?

多选题 · mid

  • A.方向对齐度← 正确答案
  • B.距离合适度← 正确答案
  • C.可到达性← 正确答案
  • D.物体价格高低

答案:ABC。方向对齐度用点积/叉积衡量方位是否正确,距离项判断远近是否匹配语义,可到达性检查路径是否有障碍。价格与空间关系无关。

Q7. 智能体完成“把杯子放到书桌前方”指令的正确处理顺序是?

单选题 · easy

  • A.解析→定参照系→几何算→执行← 正确答案
  • B.移动→解析语言→确定参照系
  • C.随机→选方向→直接移动
  • D.感知→只识别物体→忽略位置

答案:A。标准流程是先解析自然语言找出目标和关系词,再确定参照系,接着用几何计算锁定目标区域,最后规划路径执行移动。其余选项顺序颠倒或忽略关键步骤。

Q8. 评估空间关系推理模型时,准确率公式 Acc = (1/N)Σ1(r̂_i = r_i) 中的 1(·) 是什么函数?

单选题 · hard

  • A.指示函数,条件成立取 1← 正确答案
  • B.指数函数,结果恒大于 1
  • C.对数函数,用来压缩数值
  • D.激活函数,用于输出归一化

答案:A。1(·) 是指示函数(indicator),当括号内等式成立时取 1,否则取 0。累加后除以 N 得到正确率。其余函数与统计对错无关。

Q9. 某机器人以自身为原点测得目标在 (3, 4),自身朝向与世界坐标 x 轴夹角 0°,自身在世界坐标的位置是 (10, 20)。目标在世界的坐标是?

单选题 · hard

  • A.(13, 24)← 正确答案
  • B.(7, 16)
  • C.(10, 20)
  • D.(3, 4)

答案:A。参照系转换公式为世界坐标 = 旋转后的本地坐标 + 平移向量。旋转角 0° 时本地坐标不变,加上 t=(10,20),得到 (3+10, 4+20)=(13,24)。

Q10. 关于空间关系推理的工程落地,下列说法正确的有?

多选题 · hard

  • A.需要统一的数据接口规范← 正确答案
  • B.感知、算法、导航多团队协作← 正确答案
  • C.有了基准数据集就无需工程联调
  • D.接口标准化能加速技术生态成熟← 正确答案

答案:ABD。统一接口和多团队协作是工程基础,标准化规范促进技术生态成熟。但基准数据集只解决“评测”问题,不解决“部署”问题,联调依然必不可少。