近两年讨论机器人,大家聊得最多的往往是人形机器人、大模型、端到端。但一个容易被忽略的事实是:机器人在实验室里能跑得很漂亮,一旦进了仓库、工厂、医院,最容易出问题的反而不是“大脑”,而是“方向感”。定位漂移、地图错乱、动态障碍物误判,每一个都足以让一台机器人从“智能设备”退化成一个需要人盯着的昂贵玩具。
这就要说到今天想聊的主角:Ommo Technologies。近日这家公司完成了数千万美元A轮融资,核心方向是赋予机器人“空间直觉”。36氪在首发报道中给出的判断非常直接——这不是又一家做大模型或做机械臂的机器人公司,而是一家在空间感知与定位技术上做底层突破的公司。
从技术视角来看,这件事值得所有做机器人开发、工业自动化、AMR 导航、ROS 开发的工程师关注。因为它的技术路线直指一个行业级痛点:工业级稳定定位。本文不打算只复述融资新闻,而是结合机器人定位技术现状、传统方案的局限、以及实际工程落地时遇到的坑,聊聊 Ommo 这类技术背后到底意味着什么,以及工程师应该用怎样的视角去理解这场融资背后的技术价值。
1. 机器人行业不缺“大脑”,缺的是“空间直觉”
过去几年,机器人技术的叙事主力一直在“智能化”上。大模型让机器人学会了对话、规划、理解指令;强化学习让机械臂学会了复杂操作;端到端模型让双足机器人跑得越来越稳。这些技术解决的核心问题是:机器人该做什么、怎么做。
但机器人终究是要在物理世界里移动和作业的。这就引出了第二个问题:机器人在哪、周围是什么、怎么安全到达目标点。
这个问题在技术栈里有一个明确的归类——定位、建图、导航、空间感知。它看似比“大脑”低一个层次,却决定了机器人能否脱离实验室环境:
- 在仓储物流场景里,AMR 需要连续 8 小时、保持厘米级精度运行,信号遮挡、动态货架、叉车穿行都会干扰定位。
- 在工业巡检场景里,机器人必须知道自己“在哪条通道、哪个工位”,哪怕偏差 5 厘米,就可能错过检测点位。
- 在商用服务场景里,机器人要面对玻璃幕墙、大面积白墙、反光地面——这些恰恰是传统激光定位的“天敌”。
行业里习惯把这部分能力称为“空间智能”,但 Ommo 团队用了更物理的表达:空间直觉。这个词很准确,因为它在强调的不是“感知”,而是“理解”——机器人不应该只是“看”到环境,更应该在无外部标记、无 GPS、无高精地图的前提下,本能地感知自己与环境的关系。
从 A 轮融资规模来看,资本方押注的显然不是“多一台机器人”,而是“让所有机器人都能更可靠地理解空间”的底层能力。
2. “空间直觉”的技术本质:不靠外部标记,靠物理推算
要理解 Ommo 的技术价值,先得看传统机器人定位技术是怎么工作的。
当前工业移动机器人最主流的定位方式是2D 激光 SLAM + 反光板/二维码/磁条。这套方案已经非常成熟,却有一个结构性弱点:它依赖外部人工标识。
- 反光板需要在厂房里精密部署,改变产线布局时需要重新标定。
- 二维码/磁条需要铺设在地面,长期被重载 AGV 碾压会磨损、污染、破坏。
- 激光 SLAM 在动态变化大、对称结构多的场景里,容易产生“相似场景误匹配”,导致定位跳变。
也就是说,传统方案解决的是“在基础设施完善的环境里稳定定位”,而不是“在没有人工标识的环境里自主定位”。
Ommo 的“空间直觉”技术路线,本质上是把定位从“地标依赖型”转为“物理推算型”。这种技术不依赖外部反射物、不依赖卫星信号、不依赖预建地图,而是通过传感器数据与物理模型的融合,持续推算机器人自身的位置与姿态。
如果画一条技术演进线,大致是:
第一代:磁条/导轨/机械限位 —— 刚性路径,改造成本高 第二代:二维码/反光板/Laser SLAM —— 需要人工部署外部特征 第三代:视觉+激光+IMU 多传感器融合 —— 降低对特征的依赖 第四代:物理推算+环境理解 —— 无标记、无预建、自适应Ommo 更像是在第三、四代之间,把“传感器融合”这件事做到了更深的物理层。这种技术路线最大的想象空间在于:它让机器人在完全陌生的环境里也能建立空间模型,而不需要先有人去做环境改造和铺设工作。
3. 为什么传统定位技术在动态场景里容易翻车?
很多朋友在机器人项目里都遇到过类似问题:机器人白天跑了 10 个小时都很稳,到了晚上某个区域突然原地打转;或者换了一批货架之后,机器人频繁报“定位丢失”。
这不是偶发故障,而是传统定位方案的机制性缺陷。
我们先看激光 SLAM 的工作原理。Laser SLAM 通过激光雷达扫描环境轮廓,与已建立的地图进行匹配,再通过粒子滤波或图优化来估计机器人位姿。它的核心假设是:环境的结构是稳定且可区分的。
但现实是:
- 仓库的货架经常变动,扫描到的轮廓和地图对不上;
- 通道两侧如果高度对称,算法无法区分“这条通道”和“旁边那条通道”;
- 动态物体(托盘、人员、叉车)遮挡了墙面结构,导致匹配点减少,位姿漂移;
- 反光地面、玻璃墙体、金属货架会让激光点云产生噪点。
这些场景在工业和商业环境中是常态,而不是异常。所以出现了这样一个矛盾:传统方案在“环境越规范”时越可靠,而真实场景恰恰是“环境越动态、越混乱、越需要机器人发挥作用”。
而视觉 SLAM 在纹理丰富环境里效果不错,但遇到白墙、暗光、抖动时,图像特征会大量丢失。IMU 可以提供短时运动增量,却会产生积分漂移,长时间运行后必须靠其他传感器修正。
这也是为什么多传感器融合在工业机器人里几乎是标配——单纯靠任何单一传感器,都很难同时满足高精度、长周期、动态环境这三个需求。
4. 从融资热词看行业演进:机器人定位正在从“必修课”变成“基本功”
从近期的热词变化能明显感受到,机器人定位已经成为社区讨论的焦点。
- 在 ROS 开发群里,高频问题从“URDF 怎么写”变成了“导航到目标点总偏移,怎么办”。
- 工业机器人售后论坛里,出现大量像“ABB 机器人怎么优化条件等待卡顿”“发那科机器人干涉区 DI 信号触发时反应”这类问题——这说明定位、安全区域、信号交互已经成了实际产线上的核心痛点。
- 在移动机器人领域,“定位丢失”“动态避障误判”“叉车与 AGV 混行调度”几乎是每个项目群里必然出现的话题。
这些现象背后是一个判断:机器人行业的竞争重点正在从“能不能动”转向“能不能稳定地在复杂空间里工作”。
过去几年,行业最大的技术瓶颈在感知层面,大家花大量成本在传感器选型(激光雷达、深度相机、编码器、IMU)和算法调参上。而现在,头部玩家已经意识到,单靠堆传感器和堆算力并不能解决所有问题,必须从物理模型层面去提升机器人的空间理解能力。
这恰好是 Ommo 这类公司切入的缝隙:
- 它不做整车,不做机械臂,不做“大脑”,专注做空间感知与推算技术。
- 它以技术方案形式开放给机器人厂商,相当于给行业提供了一套“空间直觉”能力模块。
- 它强调不依赖外部基础设施,适合机器人公司在更广泛场景里快速落地。
在商业上,这类角色的价值很像芯片行业里的“IP 授权”模式——不直接面对终端用户,却决定了下游产品的核心性能上限。
5. 工程师视角:如果要在机器人里实现“空间直觉”,需要哪些技术栈?
对工程师来说,与其只看融资新闻,不如思考一个问题:如果我们要在自己的机器人项目里借鉴这套思路,技术栈应该怎么搭?
先说结论:实现“空间直觉”不等于替换掉所有传感器,而是用算法把传感器数据变成“物理推断”。一个典型的空间感知技术栈应该包含下面几层:
5.1 感知层:传感器选型与标定
空间直觉的输入是“多源感知”。常见组合包括:
- 激光雷达(2D/3D):负责环境轮廓与远距离测距;
- 双目/深度相机:负责纹理特征与近距离精细建模;
- IMU:负责高频姿态增量,弥补激光和视觉低帧率的问题;
- 轮式编码器:在轮式机器人上提供里程计先验;
- 气压计/TOF 传感器:在复杂地形或多层环境中提供高度参考。
关键不是“传感器越多越好”,而是标定质量。外参标定不准确,多传感器融合反而比单传感器更差。工程上建议先用lidar-camera-calibration或kalibr这类开源工具做外参标定,再做时间同步(尤其是激光雷达与相机之间)。
以下是标定阶段的常见思路(伪代码):
# 1. 采集标定数据(约30-60秒,缓慢移动传感器平台) rosbag record /scan /camera/image_raw /imu/data # 2. 使用 kalibr 做相机-IMU 外参标定 kalibr_calibrate_imu_camera \ --target aprilgrid.yaml \ --cam camchain.yaml \ --imu imu.yaml \ --bag calibration.bag # 3. 使用 velo2cam_calibration 做激光-相机外参标定 roslaunch velo2cam_calibration calibration.launch这段流程的目的是生成传感器之间的变换矩阵T_cam_lidar、T_imu_cam等。只有这些变换关系精确,后期融合才能成立。
5.2 融合层:状态估计与位姿推算
在机器人领域,空间直觉的核心算法是状态估计(State Estimation)。主流实现有两种:
- 基于滤波的扩展卡尔曼滤波(EKF),适用于嵌入式平台,计算量小;
- 基于图优化的因子图(Factor Graph),适用于算力充足的平台,精度更高。
对于 Ommo 这类“物理推算型”技术,本质上就是利用运动学约束(如轮速、IMU 预积分)+ 传感器观测(如激光扫描匹配、视觉特征匹配),在统一的状态空间里估计位姿。
下面是基于 ROS 2 的robot_localization做多传感器融合的配置示例,它适合快速搭建一个工业级状态估计原型:
# 文件路径:src/config/ekf.yaml # robot_localization EKF 配置(部分) frequency: 30.0 sensor_timeout: 0.1 two_d_mode: true odom0: /wheel_odom odom0_config: [true, true, false, false, false, false, false, false, false, false, false, false, false, false, false] imu0: /imu/data imu0_config: [false, false, false, true, true, true, false, false, false, false, false, false, false, false, false]这份配置的意思是:轮式里程计提供 x、y 方向的位置增量;IMU 提供 roll、pitch、yaw 的姿态角。融合后输出的odometry/filtered比单一传感器稳定得多。
5.3 理解层:从“估计位姿”到“理解空间”
有了稳定的位姿估计,下一步是“空间建模”。这里要从两个维度来看:
- 几何维度:通过 SLAM 构建地图,告诉机器人“哪里有墙,哪里有空地”。
- 语义维度:识别物体与区域功能,告诉机器人“这里是什么区域,有什么约束”。
真正的空间直觉,必须同时具备几何与语义两层理解。比如巡检机器人不仅要避开障碍物,还要知道“配电柜区域不能进入”“狭窄通道需要减速”“这里是一个可能的叉车交汇点”。
在实际工程中,语义地图可以基于深度学习目标检测 + 栅格地图叠加来实现:
# 文件路径:src/labeling/语义区域标注示例.py import numpy as np # 假设栅格地图,0=空闲, 100=障碍物, 200=未知 # 用检测框给指定区域打上语义标签 semantic_map = np.zeros((100, 100), dtype=np.int8) def mark_zone(map_grid, bbox, label_id): x_min, y_min, x_max, y_max = bbox map_grid[y_min:y_max, x_min:x_max] = label_id return map_grid # 示例:把检测到的"配电柜区域"标记为 1(限制区域) semantic_map = mark_zone(semantic_map, (30, 20, 45, 35), label_id=1) print("语义地图已更新,区域数量:", len(np.unique(semantic_map)))这段代码虽然简单,但表达了一个核心思想:空间直觉不仅仅是“我在哪”,更是“哪里能走、哪里要小心、哪里是禁区”。
5.4 决策层:结合成本地图做路径规划
当机器人具备了“位姿 + 语义地图”的实时感知后,路径规划就有了更丰富的约束条件。可以使用 ROS 2 的nav2框架,并在代价地图中叠加语义信息。
例如,通过修改costmap_2d的插件,把语义标记区域映射为代价层:
# 文件路径:src/config/global_costmap.yaml(部分) plugins: - name: static_layer type: nav2_costmap_2d::StaticLayer - name: semantic_layer type: nav2_costmap_2d::ObstacleLayer params: enabled: True combination_method: 1这样,机器人在规划全局路径时,不再把所有非障碍物区域看作等价可通行区域,而是会结合语义约束选择更安全的路径。
6. 现场落地时的可行性验证:无标记环境定位能不能跑通?
纸上谈兵意义不大,关键是验证“无外部标记、无预建高精地图”的定位方案在真实环境里能不能跑通。
这里给出一个可复现的最小验证方案。前提是有一台带激光雷达、IMU 和轮式里程计的轮式机器人,运行 ROS 2。
第一步:安装依赖。
sudo apt install ros-$ROS_DISTRO-robot-localization sudo apt install ros-$ROS_DISTRO-nav2 sudo apt install ros-$ROS_DISTRO-slam-toolbox第二步:启动传感器驱动和 robot_localization。
# 终端1:启动底盘的轮式里程计和 IMU 驱动 ros2 launch scout_base scout_base_launch.py # 终端2:启动 EKF 融合 ros2 launch robot_localization ekf_launch.py第三步:启动 SLAM 建图。
# 终端3:启动 SLAM Toolbox 在线建图 ros2 launch slam_toolbox online_async_launch.py第四步:让机器人手动遥控移动,覆盖测试区域。
# 终端4:使用 keyboard_teleop 控制机器人 ros2 run teleop_twist_keyboard teleop_twist_keyboard完成后,观察 Rviz 里的机器人轨迹和地图是否平滑、是否有跳变。如果机器人经过长走廊或对称区域时依然稳定,说明这套方案在轻量级无标记环境里具备可行性。
如果出现以下现象,需要重点排查:
- 定位漂移明显:优先检查里程计标定、IMU 噪声参数;
- 建图出现重影:往往是激光雷达运动畸变,需要降低移动速度或启用畸变校正;
- 定位丢失:检查动态物体是否过多,或当前区域缺乏足够几何特征。
这个验证流程不会立刻达到 Ommo 这类公司的精度水平,但足以建立对“无标记定位”技术的基本感觉。
7. 机器人定位相关的常见问题与排查思路
在实际项目和社区交流中,我整理了机器人定位相关的高频问题,下面用表格形式列出,方便现场排查:
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 机器人运行半小时后位置偏移 | 轮式里程计标定不准或轮胎磨损 | 对比编码器里程与真值,检查轮胎气压/磨损 | 重新标定轮径和轮距,增加传感器融合权重 |
| 激光建图出现重影 | 移动速度过快或激光雷达运动畸变 | 放慢移动速度,观察点云是否错位 | 启用激光运动畸变校正,或降低扫描频率 |
| 在长走廊/对称区域定位丢失 | 几何特征不足,激光匹配退化 | 查看粒子分布或协方差,确认是否发散 | 融合视觉特征或增加地标约束 |
| 动态物体导致导航急停 | 代价地图动态障碍未及时更新 | 检查 costmap 更新频率和传感器遮挡 | 调大 obstacle range,优化动态层参数 |
| 视觉 SLAM 在暗光环境失效 | 图像特征不足 | 观察特征点数量是否过低 | 增加红外补光或切换激光为主传感器 |
| 多传感器时间戳不同步 | 各传感器消息时间源不一致 | 检查 topic 帧间隔和时钟源 | 统一使用 ROS time 或硬件同步 |
这张表并不覆盖所有问题,但它代表了一个工程态度:排查定位问题,不是看单一传感器数据,而是看数据流和约束关系。
8. 对机器人开发者的实用建议
读完这则融资新闻,如果只记住一点,那就是:机器人行业的长期竞争力,不只是大模型的推理能力,更包括机器人在物理世界中的稳定空间感知能力。
对普通开发者来说,可以朝五个方向储备能力:
- 强化传感器融合基础:EKF、因子图、IMU 预积分、外参标定,这些知识在未来几年越来越重要。
- 重视无标记定位技术:未来产线部署不可能永远依赖反光板或二维码,无标记、自适应方案会是趋势。
- 关注语义地图与几何地图的融合:单纯画墙和障碍物的时代正在过去,语义理解会在导航与安全策略中占据更高比重。
- 在真实场景中长期测试:不要只满足于仿真或短时测试,一周以上的连续运行、不同光照、不同人流密度,才能暴露真实问题。
- 保持对底层物理模型的敬畏:数据驱动的方法可以解决感知问题,但工程级稳定仍需要物理模型做底。
对更远一步的思考:如果 Ommo 这类公司能够把“空间直觉”做成标准化的底层能力模块,机器人厂商就不需要每家公司都从零开始死磕定位算法。整个行业的上限会因此抬高,机器人在非结构化环境里的落地速度也会明显加快。
这件事对行业的影响,可能比融资数字本身更值得关注。