<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Locomotion Control | Yasen Jia</title><link>https://lupinjia.github.io/tags/locomotion-control/</link><atom:link href="https://lupinjia.github.io/tags/locomotion-control/index.xml" rel="self" type="application/rss+xml"/><description>Locomotion Control</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 11 Aug 2026 00:00:00 +0000</lastBuildDate><image><url>https://lupinjia.github.io/media/icon_hu_5c64a4bee4457df8.png</url><title>Locomotion Control</title><link>https://lupinjia.github.io/tags/locomotion-control/</link></image><item><title>Learning-based Locomotion方法总结</title><link>https://lupinjia.github.io/blog/locomotion_review/</link><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate><guid>https://lupinjia.github.io/blog/locomotion_review/</guid><description>&lt;p&gt;本文总结Locomotion的已有方法，包括blind locomotion和perceptive locomotion的方法。目前Locomotion的方法多与表征学习（Representation Learning）相结合，表征学习的目的是从数据中学习出有效、抽象的特征表示，帮助网络更高效地学习。&lt;/p&gt;
&lt;h2 id="blind_locomotion"&gt;blind_locomotion&lt;/h2&gt;
&lt;p&gt;blind_locomotion的方法可以分为两个大类：不使用表征学习和使用表征学习。&lt;/p&gt;
&lt;h3 id="不使用表征学习"&gt;不使用表征学习&lt;/h3&gt;
&lt;p&gt;不使用表征学习的blind locomotion的一般做法是堆叠本体感知的历史帧。本体感知的一帧 $o_t$ 一般包括$c_t, \omega_t, g_t, q_t, \dot{q}_t, a_{t-1}$ （$c_t$为命令，$\omega_t$为基座角速度，$g_t$为重力向量在基座坐标系中的投影，$q_t$为关节角度，$\dot{q}_t$为关节角速度，$a_{t-1}$为策略上一帧输出的动作）。这类方法的做法就是将本体感知的多帧$o_{t-H:t}$堆叠在一起输入给actor，然后再让actor输出动作$a_t$，。critic方面一般是输入全知的特权信息，包含本体感知信息以及只有仿真中才能获取的一些信息（基座线速度、连杆接触状态、足端高度、高度图等）。整体的架构如下所示：&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./vanilla_rl.png" alt="普通RL训练方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;给actor输入多帧本体感知能够增强策略的鲁棒性，核心的insight是&lt;strong&gt;本体感知的历史信息中包含了机器人状态随时间变化的规律，网络可以根据这些规律来应对更复杂的情况&lt;/strong&gt;（崎岖地形、受外力扰动等）。如果没有历史信息的话，网络只能根据当前时刻的感知来应对动态的环境，信息过于稀少。&lt;/p&gt;
&lt;h4 id="优势"&gt;优势&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;实现简单&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="缺点"&gt;缺点&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;训练效率低，学得慢&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="代表性文章"&gt;代表性文章&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="使用表征学习"&gt;使用表征学习&lt;/h3&gt;
&lt;p&gt;使用表征学习的方法可以分为多种形式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Teacher-Student系列：使用teacher encoder编码与任务相关的物理状态，sutdent encoder根据本体感知的历史信息预测teacher encoder的编码。具体又可以分为不同的实现形式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
：由ETH的Marco Hutter组提出的最原始的Teacher-Student实现，主要特点为两阶段训练，encoder和actor绑定在一起，二阶段蒸馏时用action loss来优化student的encoder和actor。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./original_ts.png" alt="原始Teacher-Student方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：CMU的Deepak Pathak组提出的Teacher-Student变体，仍然是两阶段训练，encoder和actor解绑，第一阶段训练完actor后第二阶段使用冻结的一阶段actor，二阶段蒸馏时用latent loss来优化student的encoder。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./rma.png" alt="RMA方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：MIT的Pulkit Agrawal组提出的Teacher-Student变体，单阶段训练，依然是encoder和actor解绑，训练时用latent loss来优化student的encoder，用RL的loss来优化teacher encoder和actor。这种方式中student没有实际和环境交互，类似于behavior cloning的idea，得到的student policy的效果并不好。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：SusTech的张巍组提出的并行Teahcer-Student方案，单阶段训练，最主要的创新是将env分为teacher和student两组，将RL loss中的surrogate loss形式化为teacher surrogate loss + student surrogate loss，从而在RL更新中同时考虑两者的return，实现互相反哺的效果。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./cts.png" alt="CTS方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：KAIST的Jemin Hwangbo组提出的估计器网络方法，单阶段训练，核心idea是在训练中添加一个估计器网络，从本体感知的历史信息中估计出来真实物理状态（基座线速度、足端接触状态、足端相对于地面的高度等），将这个估计的信息输入给actor，使其可以有更高效的信息输入。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./estimator_net.png" alt="EstimatorNet方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：KAIST的 Hyun Myung组提出的方法，通过预测下一步的observation来提取有效的中间表征，VAE的引入（与标准高斯分布的KL散度损失）使得隐变量聚集在一个超球面上，压缩了隐变量空间。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./dreamwaq.png" alt="DreamWaQ中的VAE的训练框图" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Contrastive Learning：相比于预测数值的回归的方式，对比学习提供了另一种方式来让策略隐式地理解环境状态与动力学。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
：上海AI Lab的庞江淼组提出的基于对比学习的盲走方案，单阶段训练，基于
方法得到隐向量的高效表征。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./himloco.png" alt="HimLoco方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：逐际动力的谌骅组提出的基于对比学习的盲走方案，单阶段训练，基于
方法得到隐向量的高效表征。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./pvp.png" alt="PvP方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="perceptive_locomotion"&gt;perceptive_locomotion&lt;/h2&gt;
&lt;blockquote class="border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6"&gt;
&lt;p&gt;这里的perceptive_locomotion只涉及深度图输入的运动控制策略&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;对于输入深度图的perceptive_locomotion来说，由于深度图的信息维度更高，冗余更多，所以不使用表征学习来提取低维有效表征所造成的训练效率低下会更显著。
这种任务的方法同样可以分为不使用表征学习和使用表征学习两大类。&lt;/p&gt;
&lt;h3 id="不使用表征学习-1"&gt;不使用表征学习&lt;/h3&gt;
&lt;p&gt;与blind_locomotion类似，这类方法就是简单粗暴的将信息输入给网络。只不过在深度图方面，会引入CNN来处理图像。
这类方法的代表是
，通过AMP+MoE的框架来学习拟人的perceptive_locomotion动作。&lt;/p&gt;
&lt;p&gt;
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./hiking_in_the_wild.png" alt="Hiking in the Wild架构图" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="使用表征学习-1"&gt;使用表征学习&lt;/h3&gt;
&lt;p&gt;很多使用表征学习的perceptive_locomotion方法就是在blind_locomotion的框架基础上拓展而来的。大概可以分为以下几类：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Teacher-Student系列：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
：CMU的Deepak Pathak组提出的方法，双阶段训练。论文中提出了两种训练方式，一种是直接沿袭RMA的方式，encoder和actor解耦，通过latent loss优化encoder；另一种是更贴合原始TS的方式，encoder和actor耦合，通过action loss优化encoder和actor。根据论文中展示的结果（Table 1），Monolithic的方式得到的student policy的性能更好。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./rma_depth.png" alt="RMA拓展方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：清华的赵行组提出的方法，使用两阶段的teacher-student训练，二阶段蒸馏时使用了BCE loss来优化，因为网络的输出被tanh限制在了[-1,1]之间，并且经过&lt;code&gt;(1+a)/2&lt;/code&gt;的变换最终到了[0,1]之间，覆盖概率的特征。本文的一个创新在于virtual obstacle的引入，实现快速的预训练。这一思想在后期的
中得到了继承，并利用
实现了更快速的穿透检测。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./virtual_obstacle.png" alt="Virtual Obstacles" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：CMU的Deepak Pathak组提出的方法，同样使用双阶段Teacehr-Student，利用action loss来优化encoder和actor。这篇文章中提出了用预定的落点来引导机器人的基座线速度命令，解决了velocity-based的policy在复杂地形上命令难以完美执行的问题。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./extreme_parkour.png" alt="Extreme Parkour方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：南科大的张巍组提出的方法，在原始的盲走CTS的框架基础上拓展深度图的输入，利用decoder来进一步约束latent的表征。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./cts_depth.png" alt="带深度图的CTS" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;EstimatorNet系列：这一系列的工作沿袭了EstimatorNet的&lt;strong&gt;估计物理状态&lt;/strong&gt;的思想，在perceptive_locomotion的任务中用容易获得的深度图估计高效的地形表征。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;
：OSU的Alan Fern组提出的方法，主要idea是利用向前看的一个depth image来拟合机器人周身的heightmap，通过网络参数和仿真数据的scale，让单个视角的深度图也能拟合出来较为真实的heightmap。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./cassie_depth.png" alt="Cassie Perceptive Locomotion" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：ETH的Marco Hutter组提出的方法，用四足机器人前后左右四个深度相机拟合机器人周身360°的heightmap。策略在训练直接输入仿真中获取的heightmap，实物上直接输入拟合到的heightmap即可。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./nsr.png" alt="NSR方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：浙大的朱秋国组提出的方法，用向前看的深度相机拟合机器人前方的heightmap
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./start.png" alt="START的terrain reconstruction net训练框图" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
：逐际动力的谌骅组提出的方法，同样使用U-Net来拟合高度图
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./oli_depth.png" alt="高度图拟合方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;DreamWaQ拓展：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
：浙大的朱秋国组提出的方法，沿袭了
的思路，利用VAE架构，通过拟合下一帧的obs以及当前的heightmap来获取中间表征
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./pie.png" alt="PIE方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;世界模型系列：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
：上交的张伟楠组提出的方法，利用
中提出的RSSM架构作为world model的架构，通过预测下一帧的深度图和本体感知来提取中间表征。
&lt;figure &gt;
&lt;div class="flex justify-center "&gt;
&lt;div class="w-full" &gt;&lt;img src="./wmp.png" alt="WMP方法" loading="lazy" data-zoomable /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>