小米 CyberOne 将首次海外亮相 IFA 国际消费电子展。如果只看新闻标题,很多人会把它当成一次普通的产品站台。但放到人形机器人从实验室走向产业化的关键节点来看,这件事的信号意义远比“小米又带了一款机器人参展”要大:它意味着人形机器人的竞争,正在从技术发布会走向真实用户面前。
对于大多数开发者来说,人形机器人听上去很遥远:硬件贵、算法难、资料散。但真正深入去看就会发现,底层用到的运动控制、SLAM、目标检测、强化学习、仿真迁移,很多技术栈和我们现在做自动驾驶、工业机器人、嵌入式系统是高度重叠的。换句话说,人形机器人的爆发,不是突然出现一个全新领域,而是把过去分散在多个方向的成熟技术,重新整合到一台“仿人形态”的设备上。
这篇文章不打算复述展会新闻,而是借 CyberOne 出海 IFA 这件事,回答三个问题:人形机器人为什么在最近两年突然变热;它背后真正跑通的技术栈是什么样子;作为普通开发者,可以用哪些开源工具先跑起来,积累第一手经验。文章会给出可执行的 ROS 2、Python 和 URDF 示例,适合算法、嵌入式、后端和产品方向的技术人收藏备用。
1. 这篇文章真正要解决的问题
1.1 为什么 CyberOne 首次海外亮相值得关注
CyberOne 出海 IFA,表面上是“去海外参加一个展会”,但实际上有三个层面值得细看。
第一是国际市场验证。IFA 是全球消费电子领域的风向标级展会,观众不只是技术极客,还有大量渠道商、媒体和普通消费者。一个机器人产品要在这种场合连续演示多天,面对的已经不是实验室里的固定环境,而是现场复杂光照、人流遮挡、噪声干扰和各种突发状况。这种“开放环境下的持续稳定运行”,本身就是比发布会更强的技术测试。
第二是消费级信号。CyberOne 从国内发布到海外亮相,说明小米不只是把它当作技术演示品,而是在试探人形机器人在消费级场景中的真实接受度。人形机器人过去主要出现在科研机构和工厂,如果它开始频繁出现在消费电子展上,意味着产业正在认真思考“普通用户为什么需要一台人形机器人”这个问题。
第三是产业链带动。人形机器人涉及关节电机、减速器、传感器、算力芯片、仿真工具链等多个环节。一款有量产潜力的产品走向海外,会反过来推动上游供应链的技术标准化和成本下降,这对整个行业都是好事。
1.2 人形机器人离普通开发者有多远
很多人有一个误区,觉得研究人形机器人必须拥有一台几十万甚至上百万的硬件设备,否则无从下手。这个想法在今天已经过时了。
目前比较成熟的开发路径是:先在仿真环境里完成算法验证,再用相对低成本的轮式平台验证运动控制和感知逻辑,最后才迁移到人形硬件。仿真环境不花钱,开源工具链也足够丰富,真正稀缺的是对“感知-决策-控制”整个闭环的理解能力。这篇文章后面会展示一条不需要昂贵硬件的入门路径,先把通用技术栈跑通。
1.3 什么样的读者适合继续读
如果你正在做视觉算法,但想从“静态图片识别”扩展到“物理世界交互”,这篇文章适合你。如果你做嵌入式或后端开发,想了解机器人系统的中间件、通信和仿真流程,这篇文章也适合你。如果你只是想判断人形机器人赛道值不值得投入精力,那么第 3 章和第 6 章的分析可以帮助你建立更清晰的判断框架。
2. 人形机器人核心概念:从 CyberOne 说起
2.1 CyberOne 是什么
从公开信息看,CyberOne 是小米在 2022 年推出的全尺寸人形机器人产品,这次将首次在 IFA 国际消费电子展海外亮相。它属于“通用人形机器人”定位,目标不是只完成单一工厂任务,而是希望在家庭、服务、展示等场景中与人类自然互动。
这里需要注意,我们讨论的重点不是某一款产品的参数,而是这类产品背后的共性技术逻辑。人形机器人产品可以千差万别,但核心技术框架高度一致,理解这个框架,才能真正看懂行业新闻。
2.2 人形机器人的“感知-决策-控制”闭环
用一句话解释人形机器人:它像人一样,先要看,再想,然后动,而且整个过程是持续循环的。
感知层负责获取环境信息,包括深度相机、激光雷达、IMU(惯性测量单元)、力传感器等硬件。决策层负责理解场景和规划动作,包括目标检测、语义理解、路径规划、任务拆解。控制层负责执行动作,包括关节电机控制、步态生成、力控制。
关键在“闭环”两个字。每一次运动都会产生新的感知数据,感知数据又会影响下一步决策。这和传统自动化设备的“固定流程执行”有本质区别,也是人形机器人技术难度的核心来源。
2.3 具身智能:为什么这次不一样
具身智能(Embodied AI)是最近两年被频繁提到的概念,它指的是智能体通过身体与环境交互来学习和完成任务,而不是只处理静态数据。CyberOne 这类产品的价值,不只是“能走路”,而是把大模型的语言理解、视觉理解能力放到物理世界中。
这就带来一个非常重要的变化:算法团队不再只是写识别模型,还要处理物理约束、实时性、稳定性和能量效率。一个模型在服务器上跑得好,不代表在机器人上跑得好,因为机器人的算力、时延、功耗都是有上限的。
2.4 三类机器人定位对比
| 维度 | 工业机械臂 | 轮式移动机器人 | 人形机器人 |
|---|---|---|---|
| 运动方式 | 固定基座,关节运动 | 轮式移动 | 双足或多足行走 |
| 主要场景 | 产线焊接、装配、喷涂 | 仓储物流、巡检、配送 | 家庭服务、复杂环境作业 |
| 控制复杂度 | 中等 | 中等 | 很高 |
| 环境适应性 | 差,依赖结构化环境 | 一般,依赖地面平整 | 强,适应人类生活空间 |
| 代表产品 | 六轴工业机械臂 | AGV、AMR | CyberOne 这类双足机器人 |
人形机器人的最大优势在于,人类生活环境不需要为它改造。楼梯、门槛、桌椅都是为人设计的,双足形态天然具备进入这些场景的能力。这也是为什么产业愿意在成本极高的情况下持续投入。
3. 亮相 IFA 的信号:消费级舞台的技术门槛
3.1 IFA 是什么,为什么重要
IFA 全称是柏林国际消费电子展(Internationale Funkausstellung Berlin),是全球消费电子和家电领域最有影响力的展会之一,覆盖智能硬件、影音、家电、机器人等多个品类。
和纯技术会议不同,IFA 的核心观众是渠道商、媒体和普通消费者,产品展示方式更接近“真实使用场景”。机器人厂商愿意去 IFA 而不是只参加机器人学术会议,说明它瞄准的不只是技术评价,而是真实市场反馈。从另一个角度看,能在 IFA 上展出的产品,必须足够稳定,因为现场没有“再来一次”的机会,观众随时随地都在观察。
3.2 从发布会到展会:真机演示对稳定性的考验
发布会上的演示可以提前录制、多次尝试,但展会上的真机运行是连续的、开放的。现场光照变化会影响视觉算法,人流遮挡会影响导航,噪声会干扰语音交互。更麻烦的是,机器人一旦在众目睽睽之下摔倒,就变成负面新闻。
所以 CyberOne 在 IFA 亮相,意味着它的运动控制、导航避障、交互系统已经达到“可以在开放环境中反复演示”的工程水平。这个“演示稳定性”本身就是非常重要的技术指标,它比任何宣传片都更有说服力。
3.3 出海意味着什么:本地化、安全合规、交互体验
海外亮相不只是“把机器运过去”。一个机器人产品要进入海外市场,需要解决语言交互本地化、安全标准合规、数据隐私保护、远程售后维护等一系列问题。
从工程角度看,能够走出去的产品,系统架构上一定具备这些能力:多语言支持、模块化部署、远程监控与诊断、符合当地法规的数据处理机制。这些能力不会在产品发布当天突然出现,而是从架构设计阶段就必须考虑。所以 CyberOne 出海这件事,反过来也能看出小米在机器人系统架构上的准备程度。
4. 从 CyberOne 看人形机器人的核心技术栈
4.1 硬件层:关节、传感器与算力
人形机器人的硬件大致可以拆成四块。
执行器是机器人运动的根本,通常由关节电机加谐波减速器组成,高端方案还会加入力/力矩传感器,实现更精细的力控制。传感器负责感知环境和自身状态,包括深度相机、激光雷达、IMU、六维力传感器、触觉传感器等。算力平台负责运行算法模型,常见方案是边缘计算设备配合 GPU,考虑到功耗和散热,算力选型往往比算法本身更考验工程能力。能源系统则要解决电池容量、充放电管理和散热问题。
4.2 软件层:操作系统、运动控制与感知
软件层是技术栈中最复杂的部分。
底层是操作系统和中间件,ROS 2 是目前机器人领域事实上的标准中间件,负责节点通信、驱动管理、工具链支持。运动控制层负责步态规划、模型预测控制(MPC)、全身动力学控制(WBC)等算法。感知与定位层负责 SLAM、目标检测、语义分割、人体姿态识别。决策与交互层则是最近两年变化最大的部分,大语言模型和视觉语言模型开始被用来做任务规划和人机对话。
4.3 数据层:遥操作、仿真与 Sim2Real
人形机器人的训练离不开数据。
遥操作采集是让真人穿戴动捕设备远程控制机器人,收集高质量动作轨迹。仿真数据生成是利用 Isaac Sim、MuJoCo、Gazebo 等工具生成海量训练数据,降低成本。Sim2Real 则解决“仿真里会、真机上废”的问题,是当前研究热点。
小结一下:硬件层决定机器人能不能动,软件层决定机器人动得聪不聪明,数据层决定软件能力上限。三个层次缺一不可,这也是人形机器人团队通常需要多学科协作的原因。
5. 开发者可以上手的实践路径:一套通用技术栈
这一章的示例不依赖任何特定硬件,也不需要连接 CyberOne。它们是人形机器人和各类移动机器人开发中最基础、最常用的技能,建议按顺序操作一遍。
5.1 环境准备与版本选择
推荐环境如下,版本以官方最新稳定版为准,这里给出的是当前社区较常用的组合:
sudo apt update sudo apt install ros-humble-desktop python3-colcon-common-extensions说明:Ubuntu 22.04 搭配 ROS 2 Humble 是长期支持组合,适合学习和二次开发。安装完成后需要配置环境变量:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc source ~/.bashrc建议再安装 Gazebo 仿真相关包,用于后面的机器人加载示例:
sudo apt install ros-humble-gazebo-ros ros-humble-gazebo-plugins5.2 示例一:用 ROS 2 发布运动指令
创建一个新的 ROS 2 功能包,然后编写一个发布速度指令的节点。/cmd_vel是 ROS 2 生态中非常通用的速度话题,很多移动机器人底盘和仿真模型都订阅这个话题。
# 文件路径:~/ros2_ws/src/teleop_demo/teleop_demo/speed_publisher.py import rclpy from rclpy.node import Node from geometry_msgs.msg import Twist class SpeedPublisher(Node): def __init__(self): super().__init__('speed_publisher') self.publisher = self.create_publisher(Twist, '/cmd_vel', 10) self.timer = self.create_timer(1.0, self.publish_speed) def publish_speed(self): msg = Twist() msg.linear.x = 0.2 # 前进速度,单位 m/s msg.angular.z = 0.0 # 转向角速度,单位 rad/s self.publisher.publish(msg) self.get_logger().info('Publishing cmd_vel: linear.x=%.2f', msg.linear.x) def main(args=None): rclpy.init(args=args) node = SpeedPublisher() rclpy.spin(node) node.destroy_node() rclpy.shutdown() if __name__ == '__main__': main()代码逻辑很简单:每 1 秒发布一次Twist消息,告诉机器人以 0.2 m/s 的速度前进。真正的开发中,这个节点会替换成遥控手柄、路径规划器或视觉导航模块。
运行节点前先编译工作空间:
cd ~/ros2_ws colcon build --packages-select teleop_demo source install/setup.bash ros2 run teleop_demo speed_publisher新开一个终端,验证话题:
ros2 topic echo /cmd_vel --once如果没有报错,就可以在终端看到完整的geometry_msgs/Twist消息内容。
5.3 示例二:机器人正运动学计算
不管是人形机器人还是机械臂,理解关节空间到笛卡尔空间的映射都是基本功。正运动学解决的是“知道每个关节转了多少角度,求末端在什么位置”的问题。
# 文件路径:fk_demo.py import math def forward_kinematics(theta1_deg, theta2_deg, l1=0.3, l2=0.3): """ 计算二连杆机械臂的正运动学。 参数单位:角度制,输出单位:米。 """ t1 = math.radians(theta1_deg) t2 = math.radians(theta2_deg) x = l1 * math.cos(t1) + l2 * math.cos(t1 + t2) y = l1 * math.sin(t1) + l2 * math.sin(t1 + t2) return x, y if __name__ == '__main__': x, y = forward_kinematics(30, 60) print(f"末端位置: x={x:.3f} m, y={y:.3f} m")运行命令:
python3 fk_demo.py预期输出:
末端位置: x=0.260 m, y=0.450 m这个例子虽然简单,但它是后续步态规划、机械臂控制、逆运动学求解的基础。人形机器人的每条腿在本质上都是多连杆机构,每个关节角度变化都会影响重心的位置,而重心控制又是双足稳定的核心。
5.4 示例三:使用 URDF 描述机器人
URDF 是 ROS 生态描述机器人结构的标准 XML 格式,用来描述杆件(link)、关节(joint)、几何形状、碰撞体积和物理属性。下面是一个最简单的差速底盘模型片段。
<!-- 文件路径:~/ros2_ws/src/simple_robot/urdf/simple_robot.urdf --> <?xml version="1.0"?> <robot name="simple_robot"> <link name="base_link"> <visual> <geometry> <box size="0.4 0.3 0.1"/> </geometry> </visual> <collision> <geometry> <box size="0.4 0.3 0.1"/> </geometry> </collision> </link> <link name="caster_link"> <visual> <geometry> <sphere radius="0.05"/> </geometry> </visual> </link> <joint name="caster_joint" type="fixed"> <parent link="base_link"/> <child link="caster_link"/> <origin xyz="0.0 0.0 -0.1"/> </joint> </robot>visual定义外观,collision定义物理碰撞体积,joint定义两个杆件之间的连接关系。在人形机器人项目里,URDF 会非常长,因为全身可能有几十个关节和杆件,但它描述的基本逻辑是一样的。
5.5 示例四:在 Gazebo 中加载机器人
有了 URDF,就可以把机器人模型加载到 Gazebo 仿真环境里。这里用一个简单的 launch 文件启动 Gazebo 并生成机器人实体。
# 文件路径:~/ros2_ws/src/simple_robot/launch/gazebo_demo.launch.py from launch import LaunchDescription from launch_ros.actions import Node from launch.actions import ExecuteProcess def generate_launch_description(): return LaunchDescription([ ExecuteProcess( cmd=['gazebo', '--verbose', '-s', 'libgazebo_ros_factory.so'], output='screen' ), Node( package='gazebo_ros', executable='spawn_entity.py', arguments=['-topic', 'robot_description', '-entity', 'simple_robot'], output='screen' ), ])编译并启动:
cd ~/ros2_ws colcon build --packages-select simple_robot source install/setup.bash ros2 launch simple_robot gazebo_demo.launch.py预期结果是 Gazebo 窗口打开,画面中出现一个方形的机器人底盘模型。如果没看到模型,可以先检查 URDF 是否已经发布到 ROS 2 话题:
ros2 topic echo /robot_description --once如果这个话题有数据,说明 URDF 加载正常;如果为空,需要检查robot_state_publisher节点是否运行。
5.6 从轮式到双足:下一步怎么走
以上四个示例还停留在轮式底盘和机械臂基础,距离双足人形机器人还有一段路。双足行走的核心是步态规划与平衡控制,推荐深入学习倒立摆模型、ZMP(零力矩点)等概念,然后在 MuJoCo 或 Isaac Lab 中跑通一个人形机器人仿真环境。
学习路线建议:先掌握 ROS 2 通信机制,再做轮式机器人的建图导航,然后进入双足仿真,最后再考虑真机迁移。不要一上来就想做全身控制,那会造成很大的挫败感。
6. 亮相背后:人形机器人落地的真实挑战
6.1 运动稳定性的工程难度
双足行走在控制上是不稳定系统。每一步落地都是一次冲击,机器人需要在毫秒级时间内完成姿态调整。目前的控制方法大致分三类:基于模型的 ZMP 和 MPC 方法、基于强化学习的方法、混合方法。
每种方法都有自己的坑。基于模型的方法对动力学参数敏感,参数稍微不准,步态就会变形;强化学习方法需要大量训练数据和精细的奖励函数设计,训练过程很难调试。更重要的是,无论哪种方法,在仿真环境里效果很好,一到真机就可能因为电机延迟、摩擦、结构柔性等问题变得不稳定,这就是 Sim2Real 问题。
6.2 续航与散热:物理约束比算法更现实
人形机器人关节数量多、负载高,耗电远高于轮式机器人。展会现场常见的做法是频繁更换电池或外接电源。散热问题同样不可忽视:高密度的电机驱动器和计算单元在封闭空间中持续运行,热量如果散不出去,性能就会下降甚至触发保护。
所以看一个机器人产品是否成熟,不能只看演示视频,还要关注它连续稳定运行的时间、充电间隔和散热设计。这些看似“不性感”的指标,恰恰是产品化的关键。
6.3 成本与量产:从样机到产品之间的鸿沟
人形机器人的核心成本集中在腿部执行器、灵巧手和高精度传感器。这几个部件目前还没有形成类似手机芯片那样的大规模标准化供应,价格自然居高不下。
短期来看,人形机器人更适合在科研、展示、危险环境作业等对成本不太敏感的场率先落地。家庭场景的普及,要等到部件成本大幅下降、可靠性大幅提升之后。这是一个供应链问题,也是一个时间问题。
6.4 安全与人机交互:边界必须清晰
当机器人进入人类生活空间,物理安全一定是第一优先。急停机制、力矩限制、碰撞检测、速度限制,每一层都不能少。在真机测试中,还必须设计明确的“安全员”角色,随时准备物理切断电源。
隐私和数据合规也需要注意。机器人携带的视觉传感器会持续采集环境数据,这些数据在海外市场会面临更严格的法律约束。开发者在设计系统时,就应该把数据本地化处理、敏感信息过滤、访问权限控制纳入架构,而不是等到上线前再补。
7. 常见问题与排查思路
以下排查思路同样适用于以后接触其他 ROS 2 机器人项目。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| colcon build 报找不到包 | 未 source ROS 2 环境,或缺少依赖 | 确认环境变量,查看错误日志 | source 环境后重新编译,安装缺失依赖 |
| Gazebo 启动后看不到机器人 | robot_description话题没有数据,或 spawn 节点失败 | 执行ros2 topic echo /robot_description --once | 先运行robot_state_publisher发布 URDF |
/cmd_vel没有消息 | 发布节点未运行,或话题名称不一致 | 执行ros2 topic list和ros2 node list | 统一话题名称,确认节点正常启动 |
| 仿真中机器人模型抖动 | 碰撞体配置不合理、物理参数问题 | 检查 URDF 中的 collision 和质量参数 | 调整摩擦系数、质量和仿真步长 |
| 控制指令生效但运动异常 | 底盘驱动未正确接入cmd_vel | 查看底盘驱动节点日志 | 检查驱动配置和坐标系关系 |
遇到问题建议按“先看日志、再查话题、最后查代码”的顺序排查。ROS 2 的调试信息比较完善,大多数问题都能在终端日志里找到线索。
8. 最佳实践与工程建议
8.1 先仿真后真机:分阶段推进
机器人项目建议按四个阶段推进:运动学与算法验证阶段,使用 Python 和 MuJoCo 这类轻量工具快速迭代;系统集成阶段,使用 Gazebo 和 ROS 2 验证节点通信和整体流程;硬件在环测试阶段,接入真实控制器,验证接口兼容性;最后才是小规模真机测试。
每个阶段都要设置明确的通过标准。比如仿真阶段必须完成连续 1 小时无故障运行,才允许进入硬件测试。这样可以大幅降低真机测试的风险和成本。
8.2 建立自动化回归测试
机器人软件改动频繁,今天改了一个感知参数,明天可能就影响运动控制表现。建议建立自动化测试:URDF 是否合法、关键话题是否有数据、状态机是否按预期转换、常见指令是否正常响应。
这些测试不需要很复杂,用 Python 脚本加 ROS 2 命令行工具就可以实现。重点是让“跑一遍测试”成为每次提交代码之前的固定动作。
8.3 日志、回放与可观测性
ros2 bag是 ROS 2 内置的数据记录工具,可以把话题数据完整记录下来。真机测试出现问题时,完整回放现场数据比在现场猜原因高效得多。
从项目第一天就规范化 topic 命名和日志格式,会省下大量后期排查的时间。建议约定统一前缀,比如感知用/perception/,规划用/planning/,控制用/control/,真机上用/real/,仿真中用/sim/。
8.4 安全边界与急停
真机测试必须设计多重安全机制:软件层面的速度限制、电流限制、关节角度限制;硬件层面的物理急停开关;操作流程层面的安全员制度。任何时候都要有“人可以直接切断电源”的物理手段,不能只依赖软件保护。
8.5 团队协作与版本管理
机器人项目涉及机械、嵌入式、算法、仿真不同角色,协作复杂度远高于普通软件项目。建议统一使用 Git 管理所有配置,URDF、launch 文件、参数文件、模型权重都走版本控制。对外发布能力时,必须附带完整的运行环境说明,避免“在我电脑上能跑”的问题。
9. 总结与后续学习方向
CyberOne 首次海外亮相 IFA,不能只当作一条产品新闻来看。它真正释放的信号是:人形机器人已经从实验室演示走向消费级舞台,整个赛道的技术栈开始整合,对开发者综合能力的需求正在快速增长。
如果你对机器人领域感兴趣,建议从这一章开始动手:搭建 ROS 2 环境,跑通cmd_vel发布节点,理解正运动学计算,再尝试用 URDF 在 Gazebo 中加载模型。这几步都不需要昂贵硬件,但能帮你建立起机器人开发的基本直觉。
接下来值得深入的方向包括双足步态规划、Sim2Real 迁移、灵巧操作和具身智能数据集。每个方向都有大量开源资源和论文,关键是先动手跑通一个完整流程,再逐步扩展。
建议收藏这篇文章,按第 5 章的示例逐步操作一遍。等你能在仿真环境中让一个机器人稳定响应指令,再回来看 CyberOne 出海 IFA 的新闻,会有完全不同的理解。