强化学习必备知识①:跑通一个具身控制的最小闭环

历经半个世纪,强化学习至今仍是“首选”。
大家好,这里是【深蓝具身智能】。
本文出自我们公众号开设的新专栏——《具身智能基础》。
这是本栏目下的第四篇文章,我们来聊聊【强化学习在具身智能中的基本原理与应用】,全文近 6000 字,建议收藏阅读。
目录
强化学习的理论基础可追溯到1950年代的动态规划与最优控制。这套方法论运行了半个多世纪,但真正具备工程价值是近十年的事:
“
2013年,DeepMind将深度网络与Q学习结合,在Atari游戏上达到人类水平;
2016年,AlphaGo击败李世石,让RL获得了公众认知;
2017年,PPO算法解决了训练稳定性瓶颈,RL开始从游戏走向物理仿真;
2018年,OpenAI用PPO训练灵巧手转动方块,首次展示了RL在复杂连续控制任务中的潜力。
2020年至今,GPU并行仿真平台成熟,RL在四足行走、机械臂操控等任务上进入可部署阶段。
坦诚地讲,仅用一篇文章很难覆盖强化学习的完整知识体系。(后续相关内容欢迎关注本专栏【具身智能基础】)
因此本文聚焦一个切口:强化学习在具身智能中的基本原理与应用实践。
从主流算法的核心公式切入,立足工程实操场景,用50行代码跑通一个强化学习具身控制的最小闭环。
01 强化学习基础核心概念
什么是强化学习?一个岔路口的思维实验
举一个生活化案例:
就是你在一个岔路口,分别尝试往左走1000次,发现最后499次最后赢得奖励;往右走1000次,发现最后501次最后赢得奖励。然后你就在这个路口立个牌子,上面写着“往右走胜率是501/1000”。
你学习到了往右走比往左走有利一点点,这是学习;立个牌子记下来,这是强化;合起来就是强化学习。
而且以后你可以实验更多次数,来修改牌子上的内容,这就是强化学习的迭代——进一步强化。
从这个例子中可以提炼出强化学习的几个核心特质:
- 没有人工标注的标准答案,智能体仅依赖环境反馈自主迭代;
- 行为选择与奖励结果之间存在延迟因果链;
- 持续探索与利用已学知识的动态平衡。
这个“指示路牌”在算法中叫做策略
上面例子中那块记录“往右走胜率501/1000”的牌子,在强化学习中有一个正式名称——策略。
策略是强化学习的核心载体,可以直观理解为机器人的“行为决策手册”:
输入当前环境状态s,策略输出对应的执行动作a。
具身智能训练的本质,就是持续优化这个策略函数π(a | s),让智能体在不同环境状态下始终能够选择最优动作。
经典的 AlphaGo(阿尔法狗)本质上也是强化学习的典型应用。不过,AlphaGo的决策是“离散”的——棋盘上选择落子位置,可选动作是有限的、可枚举的。
而到了具身智能这里,机器人要处理的是“连续”控制:关节要转多少度、电机输出多大扭矩。
而无论离散还是连续动作,背后决定机器人每一个动作选择的,都是策略这一核心载体。
工程实践中,策略通常由深度神经网络参数化表示,通过反向传播与梯度优化实现策略函数的持续精进。

▲图 | 既然策略是一个函数,自然可以用神经网络来表达
强化学习核心基础:MDP五元组
岔路口思维实验帮助建立了直觉,但它隐含了一个简化假设:
决策只有一次,状态只有“在岔路口”这一种。
真实机器人面对的环境远为复杂:它需要在无数个连续时间步上依次做出决策,且每一步的决策都会影响后续的状态和可选动作。
于是,要想让策略能训练起来,必须有一套完整的交互规则,这就是马尔可夫决策过程(MDP),由五大核心要素构成五元组 ,完整定义智能体与环境的交互规则:
- 状态空间S:
智能体当前感知的全部环境与自身状态,对应具身设备的传感器数据,包括摄像头画面、关节角度、机身倾角、空间位置等观测信息。
- 动作空间A:
智能体可执行的所有行为,针对具身设备多为连续动作,如电机扭矩输出、关节转角、行走步态、机械臂开合等。
- 即时奖励R:
对单步动作优劣的量化评价,是算法迭代的核心导向,例如抓取任务成功加分、机器人摔倒扣分、靠近目标物体小幅加分。
- 状态转移概率P:
环境从当前状态 执行动作
后迁移至新状态
的概率,在具身场景中由物理引擎或真实世界物理动力学规则决定。
- 折扣因子γ:
取值范围为[0,1],用于衰减远期奖励权重,避免累积奖励无限累加,让智能体兼顾即时收益与长期任务完成效果。
而具身智能训练的本质,就是持续优化这个决策策略,让智能体在不同环境状态下,始终输出最优动作。
但是标准MDP框架隐含一个理想化假设:智能体能够获取环境的完整状态信息。
而真实具身设备存在感知局限,仅能通过传感器获取局部观测信息,无法掌握环境全部状态。
因此具身智能的决策场景均为部分可观测马尔可夫决策过程(POMDP),它是具身智能专属决策特性,而非经典MDP。
工程中通常通过CNN、Transformer等特征提取网络,将多帧视觉、传感观测编码为隐状态特征,弥补感知缺失问题,实现端到端的强化学习训练。
02 具身智能主流强化学习算法核心原理
具身设备以连续动作空间为主,离散动作算法(如DQN系列)仅适用于简易移动小车等极简场景。
工业与科研落地中常以PPO、SAC两大算法为核心,二者适配不同的具身任务场景。
核心数学原理与特性如下:
PPO算法(近端策略优化)
工业落地首选。
PPO是目前机器人具身控制最稳定、应用最广泛的算法,核心优势是解决了传统策略梯度算法更新步长不可控、训练易崩溃的问题,通过截断约束实现平稳迭代,适配机器狗步态行走、机械臂定点控制等基础常规任务。

其核心为Clip截断版目标函数,也是PPO的核心数学表达式:
: 新旧策略的动作概率比值,代表策略更新幅度;
: 优势函数,用于评估当前动作相较于平均动作的优劣;
: 截断阈值,常规取值0.2,用于限制策略更新步长,避免单次更新幅度过大导致模型失效。
PPO的核心逻辑可概括为:小幅迭代、稳步优化,在保证策略持续提升的同时,最大化维持训练稳定性。
强化学习训练有一条核心准则:策略每次迭代更新不能变化太大。
如果单次迭代中策略大幅改动,会直接丢失已学习的有效行为逻辑,导致训练震荡、效果倒退,甚至出现机器人失控、任务完全失败的情况。
因此所有主流具身强化学习算法,都会对策略更新幅度做约束,这也是PPO截断机制、算法稳定训练的底层核心原因。
SAC算法(柔性演员评论家)
精细控制首选。
SAC属于最大熵强化学习算法,核心特点是在优化任务收益的同时,保留适度的动作随机性,让智能体具备更强的抗干扰能力与环境适配性。
适配灵巧手精细操作、复杂环境精准抓取等高精度具身任务。

其核心目标函数兼顾奖励收益与策略熵值:
公式核心参数释义:
: 单步环境即时奖励;
: 策略熵,代表动作随机性,熵值越高,智能体探索性越强;
: 温度系数,用于平衡任务奖励与动作随机性,调控智能体探索与利用的权重。
SAC核心优势是训练出的策略鲁棒性极强,能够适配环境摩擦力、光照、物体位姿的微小扰动,匹配真实物理世界的复杂多变场景。
03 亲手跑一个机器人仿真
具身智能强化学习训练无法直接在真实硬件上开展,存在试错成本高、设备易损坏、训练周期长等问题,因此必须依托物理仿真平台完成前期训练。
PyBullet是基于Python的开源机器人物理仿真工具,核心适配具身智能与强化学习场景,支持重力模拟、刚体碰撞、关节驱动、传感器数据采集等全维度物理仿真功能,可快速搭建机械臂、四足机器人、移动小车等仿真场景。是目前入门与科研主流的轻量级仿真引擎之一。
以下为PyBullet具身仿真极简实践代码,可直接运行,实现了一个强化学习具身控制的最小闭环。
以经典KUKA机械臂定点到达任务为核心,包含仿真环境搭建、机器人加载、目标设置、状态采集、奖励计算、躯体控制全流程,完整复刻强化学习五元组交互逻辑。
pip install pybullet numpy
完整可运行代码如下:
import pybullet as p
import pybullet_data
import numpy as np
- 初始化仿真环境
p.connect(p.GUI) # 启动图形可视化界面
p.setAdditionalSearchPath(pybullet_data.getDataPath())
p.setGravity(0, 0, -9.8) # 设置物理重力
- 加载仿真地面
planeId = p.loadURDF("plane.urdf")
- 加载KUKA机械臂具身模型
robotId = p.loadURDF("kuka_iiwa/model.urdf", basePosition=[0, 0, 0])
num_joints = p.getNumJoints(robotId) # 获取机械臂关节总数
end_effector_idx = 6 # 定义末端执行器编号
- 创建任务目标点(红色球体)

target_pos = np.array([0.3, 0.2, 0.5])
target_vid = p.createVisualShape(p.GEOM_SPHERE, radius=0.05, rgbaColor=[1, 0, 0, 1])
target_body = p.createMultiBody(baseMass=0, baseVisualShapeIndex=target_vid, basePosition=target_pos)
- 仿真主循环(模拟强化学习交互过程)
for step in range(10000):
p.stepSimulation()
# 获取具身状态S:机械臂末端实时位置
ee_state = p.getLinkState(robotId, end_effector_idx)
ee_pos = np.array(ee_state[4])
# 计算即时奖励R:距离目标越近,奖励值越高
dist = np.linalg.norm(ee_pos - target_pos)
reward = -dist
# 输出控制动作A:朝向目标点自适应移动
action = (target_pos - ee_pos) * 0.05
for i in range(num_joints):
p.setJointMotorControl2(
bodyUniqueId=robotId,
jointIndex=i,
controlMode=p.VELOCITY_CONTROL,
targetVelocity=action[0] if i < 3 else 0
)
# 迭代信息打印
if step % 50 == 0:
print(f"迭代步:{step} | 末端位置:{ee_pos.round(3)} | 目标位置:{target_pos.round(3)} | 即时奖励:{reward:.2f}")
- 关闭仿真环境
p.disconnect()
该仿真案例完整还原了具身强化学习的核心交互逻辑,与强化学习五元组的各要素一一对应:
- 状态S:机械臂末端三维坐标、各关节角度的实时观测数据,通过getLinkState实时获取
- 动作A:机械臂各关节的速度控制指令;
- 奖励R:以机械臂与目标点的距离为核心,距离越近奖励越高;
- 状态转移P:由PyBullet物理引擎自动计算重力、碰撞、关节运动后的环境状态变化;
- 优化目标:持续迭代动作策略,最大化累积奖励,实现机械臂精准抵达目标位置。


▲图 | 小编运行的截图
04 强化学习在具身智能中的典型应用场景
强化学习在具身智能中的应用已超越学术验证阶段,在多个具身形态上进入工程落地层面:
- 四足机器狗与双足人形机器人:
四足机器狗、人形机器人的自主行走、越障、上下台阶、摔倒起身等任务,是PPO算法的核心落地场景。

智能体以机身IMU倾角、腿部关节角度、深度相机观测为状态输入,以各腿部关节扭矩为动作输出,通过前进速度奖励、姿态矫正奖励约束策略,无需人工设计步态规则,自主学习适配复杂地形的运动模式。
- 工业机械臂智能操作:
工业机械臂智能操作针对工业无序分拣、随机位姿抓取、零件拧装等精细化任务,多采用SAC算法。
传统机械臂依赖精准标定与固定编程,无法适配物体位置、尺寸、摩擦力的动态变化,而强化学习机械臂可通过持续试错,自主优化抓取点位与操作力度,适配复杂工业场景,提升设备泛化能力。
- 移动机器人自主导航避障:
室内巡检AGV、户外移动机器人依托激光雷达、视觉传感器获取环境状态,以左右轮转速为动作输出,通过抵达目标奖励、碰撞惩罚约束策略,实现未知环境下的自主路径规划与实时避障,摆脱对预设地图的依赖。

▲图 | FlashSAC训练的策略在宇树G1真机上的部署效果。经过仅几分钟的仿真训练,G1即可在户外环境中稳定行走,展现出对复杂地形的适应能力。
- 仿生灵巧手精细操控
比如五指仿生手翻转方块、拆装微型零件等超高维度精细任务,动作空间维度高、任务难度大,通常结合SAC算法与HER事后经验回放技术,解决稀疏奖励问题,让智能体自主学习精细手势与操控逻辑。

- 虚拟具身智能体预训练
比如在Isaac Sim、Habitat等三维仿真场景中,通过强化学习训练虚拟具身智能体完成环境探索、道具交互等任务,预训练完成后将模型蒸馏迁移至真实硬件,大幅降低真机训练成本。

▲图 | Isaac Gym 验证
05 从一个“路牌”到具身智能的“行为引擎”
回顾全文,一条清晰的技术脉络:
强化学习提供了“在试错中学习”的计算框架,MDP与策略梯度为这一框架赋予了数学可解性;PPO通过截断机制解决训练稳定性问题,SAC通过最大熵原则赋予策略环境鲁棒性。
事实上,RL的理论框架已建立数十年,至今仍是“首选”,并且已从单一算法迭代走向多技术融合:
一是大模型+强化学习,由LLM完成高层任务语义分析,RL负责底层硬件精准控制,实现复杂语义到物理动作的落地;
二是多任务统一策略训练,单个模型可同时适配行走、抓取、避障等多元任务;
三是无奖励自驱动学习,依托内在好奇心奖励实现智能体自主探索,摆脱人工设计奖励的局限。
在物理世界这个最复杂的交互场景中,它是目前唯一被系统性验证、能够在无先验模型与无人工示教的条件下,从零开始赋予机器自主行为能力的计算框架。
回到文章开头那块岔路口的牌子——“往右走胜率501/1000”,是强化学习最初的样子:
智能体的行为策略不来自人为的事先规定,而来自与环境交互产生的结果反馈。
更多推荐

所有评论(0)