腿足机器人之十一- 深度强化学习

news2025/2/23 9:07:39

腿足机器人之十一- 深度强化学习

    • 机器人能力
    • 腿足机器人RL问题建模
    • 强化学习解决方案
  • 强化学习算法库
    • 选择建议

深度学习技术已经在语音、图像、视频、文本等领域应用广泛,其和强化学习的结合使得基于深度学习的大模型能力更是上升一个台阶。因而用在腿足机器人的运动中枢上也不足为奇,但是和电子化格式的语音、图像、文本而言,机器人的运动姿态涉及到真实的物理世界,要符合物理规律和宏观力学定律。

深度强化学习(deep Reinforcement learning, DRL)在机器人运动姿态上的控制数据是一个很大的难点,强化学习采用是 trial-and-error 的方式,在现实世界中收集机器人运动数据效率低下且可能存在安全问题,如果采用的是仿真环境(如MuJoCo、Gazebo等仿真平台),但和真实世界也存在较大的差距。

尽管存在上面的难度,但是深度强化学习技术还是在无人机、汽车自动驾驶,四足机器人(如ANYbotics,Swiss-Mile)上达到了产品级的运动控制表现。

在这里插入图片描述

机器人能力

在这里插入图片描述
机器人完成任务所需的核心能力分类运动和操作这两个能力,运动是指环境中的自主运动能力,而操作是指对物体的控制能力(如抓取、旋转)。

在机器人领域移动性进一步拆解为运动(Locomotion)和导航(Navigation),locomotion是指底层运动技能,如不同形态机器人(四足 / 轮式 / 无人机等)在特定环境中的基础移动能力,涉及驱动控制、运动稳定性等物理层面的实现,而导航(Navigation)是指高层路径规划,着重于环境感知、路径规划与避障策略,通常输出高层指令(如期望的质心运动状态)。

传统方法采用分层控制:导航层生成指令 → 运动层执行,而新兴研究趋势是将运动与导航的联合优化(如多模态模型),例如 MIT 的 Cheetah 机器人,其高速奔跑控制算法既包含步态生成(运动层),也整合了障碍物规避策略(导航层)。

在操作部分,我们更关注的是基座可移动的腿足机器人,区别于基座不动的工厂机械臂。

腿足机器人RL问题建模

这一建模过程可以参考图1中b子图。
对于单个机器人的RL问题可以看成是部分可观测马尔可夫决策过程(POMDP,Partially Observable Markov Decision Processes),POMDP反映机器人实际场景中的感知局限(如传感器噪声、视野遮挡),而多智能体场景的去中心化POMDP(Dec-POMDP, Decentralized POMDP)进一步考虑协作 / 竞争关系。
POMDP/Dec-POMDP 模型建模:
Agent(智能体):负责根据环境观测(Observations)选择动作(Actions)以最大化累积奖励(Reward),其本质是一个策略函数(Policy),不一定是物理实体,这里可以看成是腿足机器人的控制算法。
观测空间类型(Observation Space):包括未经处理的传感器数据(图像 / LiDAR 点云)高维原始感知以及经过处理的抽象状态(物体坐标、关节角度等)地位状态向量。
动作空间(Action Space):如较为高层的时序扩展的复合指令(如 “抓取物体 A 并放置到区域 B” 的宏动作),也可以是任务空间指令(如末端执行器的笛卡尔坐标移动),或者是低层级的关节或电机级控制指令(如电机扭矩指令)。
奖励函数设计(Reward Function):分为密集奖励和稀疏奖励,密集奖励是指持续提供过程反馈(如距离目标越近奖励越高),而稀疏奖励是指仅在任务完成时给予信号(如成功抓取 =+1,其他 = 0)

如果采用动作空间选择的事低层级的动作(如电机扭矩指令),则需要处理系统动力学约束,训练难度大但控制精细,如果是训练是高层级的动作,则需要依赖机器人运动学/逆运动学、动力学技能库,更适合复杂任务的长时程规划。具身智能研究多采用 “高维观测 + 低层动作” 的端到端模式,仓储机器人常使用 “低维状态 + 高层动作” 的分层强化学习架构。

对于观测空间,高维观测传感器数据常结合CNN/PointNet等特征提取网络,低维特征可直接输入多层感知网络(MLP),但依赖状态估计模块的准确性(之前博客的概率、后验、扩展卡尔曼滤波)。

对于稀疏奖励,需结合课程学习 / 示教学习缓解探索难题,而对于采用密集奖励的情况,则需设计防过拟合机制(如熵正则化),以防止局部最优的情况。

强化学习解决方案

对于上面建模好的强化学习问题,其解决方案原理如下图所示:
在这里插入图片描述
config是对算法(Algorithm)的配置,Algorithm指的是上面的Agent(智能体),EnvRunner是强化学习的环境,这可以是仿真环境也可以是真实的环境,以腿足机器人为例,这个环境通常是仿真环境(需要符合物理学定律,动力学、运动学等概念),Learner是学习器,即DRL的核心算法,loss是基于上面的奖励函数Reward得到的和理想目标的差距度量(比如抓取物体),而optim则是根据loss来优化DRL的模型参数,以便Learner更符合设计目标。
图中还有一个episode,这是一个重要的概念,它描述了从一个初始状态开始到达一个终止状态(或达到某个特定条件)的一个完整的序列或过程。以腿足机器人抓取地上的小球为例,这涉及到机器人首先要移动到小球前面(涉及多步移动),然后是弯下身子、然后是伸手捡起球这几个阶段,而一个episode由一系列的状态(state)、动作(action)和回报(reward)组成,形成了代理(agent)在环境中的一次完整交互。实际中会让机器人多次取球(不论成功步成功),每一次都是一个episode,需要用很多的episode来训练模型,所以图中的episode是加了s的(即需要多次的完整交互)。

在腿足机器人mobility和manipulation上,仿真环境用的比较多,真实的环境硬件成本、时间、运动控制、传感器采样数据等代价比较大,通常是基于仿真环境(物理模拟器PyBullet、Isaac Gym (NVIDIA)、MuJoCo、Gazebo等),先在模拟环境中学习,然后再将学习好的plicy部署到模型上,这类做法大致可以分为三类:

  • 零样本迁移(Zero-Shot Sim-to-Real):直接在仿真中训练策略,部署到真实环境时无需微调(依赖高保真仿真)。
  • 少样本迁移(Few-Shot Sim-to-Real):少样本迁移是指仿真预训练后,通过少量真实数据微调(如域随机化)
  • 无模拟器学习(Real-World/Offline Learning):无模拟器学习(游戏场景)是指完全基于真实环境交互(在线 RL)或历史数据集(离线 RL)

对于腿足机器人控制进展情况,我将paper分为了实验室和真实环境,【欢迎到github参考】

四足机器人经历了从早期研究聚焦于本体感知驱动的室内平坦地形行走、复杂地形适应技术、外感知传感器融合以及风险地形预适应等阶段,当前的行走方案是腿足机器人中较为成熟的,四足机器人行走最成熟的深度强化学习(DRL)解决方案主要采用了零次模拟到现实的转移方案(zero-shot sim-to-real transfer),尤其是采用了基于策略的无模型RL算法,例如PPO (Proximal Policy Optimization),因为PPO对超参数的鲁棒性较强。

双足机器人行走是目前研究的热点方向,当前开源的文档和paper不少,但是对复杂环境和地形的适应性没有四足机器人的好。

强化学习算法库

  1. Stable Baselines3
    特点:基于 PyTorch,实现 PPO、SAC、TD3 等主流算法,与 Gymnasium 兼容
    适用场景:快速实现 RL 算法,支持自定义环境(如 PyBullet 机器人环境)
    机器人支持:需自行集成机器人模型,常用于四足机器人策略迁移训练
  2. Ray RLlib
    特点:分布式训练框架,支持多智能体、混合动作空间,集成 DDPG、APEX 等算法
    优势:适合大规模并行训练,可与 Isaac Gym 结合加速四足机器人训练
    案例:用于 ANYmal 等四足机器人的多任务策略学习
  3. Tianshou
    特点:模块化设计,支持离线 RL、多环境并行,基于 PyTorch
    机器人应用:适用于高维动作空间(如 18 关节的足式机器人),提供策略蒸馏工具
  4. JAX-based 库(如 RLax、Brax)
    优势:利用 JAX 的自动微分与硬件加速,Brax 集成物理引擎
    性能:在 GPU/TPU 上实现毫秒级仿真步长,适合足式机器人高频控制
    案例:Brax 提供四足 Ant 环境,支持 PPO 训练实时步态生成

选择建议

快速验证算法:PyBullet + Stable Baselines3
大规模训练:Isaac Gym + RLlib
高精度动力学:MuJoCo + Tianshou
真实硬件部署:ROS2 + Sim2Real-Lib

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2303843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

纠错检索增广生成论文

一、摘要 动机:RAG严重依赖于检索文档的相关性,如果检索出错,那么LLM的输出结果也会出现问题 解决方案:提出纠正性检索增强生成(CRAG)即设计一个轻量级的检索评估器,用来评估针对某个查询检索…

多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题

多源 BFS 是一种解决 边权为 1 的多源最短路问题 的高效算法。其核心思想是将所有源点视为一个“超级源点”,通过一次 BFS 遍历即可计算所有节点到最近源点的最短距离。以下从原理、实现和代码示例三个方面深入讲解: 目录 一、原理分析 1. 单源 BFS vs…

Jenkins 构建 Unity 打包 .apk 同时生成 .aab

Jenkins 构建 Unity 打包 .apk 同时生成 .aab Android App Bundle简称 AAB,想了解更多关于 AAB 的知识,请看官网 https://developer.android.google.cn/guide/app-bundle/faq?hlzh-cn APK 打包部分在复用上一篇 Jenkins 构建 Unity打包APK 一、新建一…

清华大学第五弹:《DeepSeek与AI幻觉》

作者:清华大学新闻与传播学院新媒体研究中心、人工智能学院(新媒沈阳团队) 时间:2025年2月 完整版下载地址:夸克网盘分享 一、AI幻觉的定义与分类 定义 学术定义:模型生成与事实不符、逻辑断裂或脱离上下…

分布式数据库解析

title: 分布式数据库解析 date: 2025/2/20 updated: 2025/2/20 author: cmdragon excerpt: 通过金融交易、社交平台、物联网等9大真实场景,结合Google Spanner跨洲事务、DynamoDB毫秒级扩展等38个生产级案例,揭示分布式数据库的核心原理与工程实践。内容涵盖CAP定理的动态…

Zotero 快速参考文献导出(特定期刊引用)

目录 一、添加样式 每次投期刊时每种期刊的引用方式不一样,就很麻烦。发现zeotero添加期刊模板再导入很方便 一、添加样式 然后就能导出自己想要的期刊格式的引用了

库的制作与原理(一)

1.库的概念 库是写好的,现成的可以复用的代码。本质上库是一种可执行的二进制形式,可以被操作系统载入内存执行。库有俩种:静态库 .a[Linux] .lib[windows] 动态库 .so[Linux] .dll[windows] 就是把.c文件变成.o文件,把…

go 日志框架

内置log import ("log""os" )func main() {// 设置loglog.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)// 自定义日志前缀log.SetPrefix("[pprof]")log.Println("main ..")// 如果用format就用PrintF,而不是…

Rust配置笔记

1.Node.js下载配置 2.c环境配置 C我是用vs装的点击这个installer 点击修改 选择C环境就行,这个时候它就帮忙配置环境了 3.Rust下载配置 4.装napi-rs框架 npm install -g napi-rs/cliRust下载网站 下完之后直接打开 一开始下包会比较慢,多等等 下好之后跑项目前第一件事配置…

具有整合各亚专科医学领域知识能力的AI智能体开发纲要(2025版)

整合各亚专科医学领域知识能力的AI代理的开发与研究 一、引言 1.1 研究背景 在科技飞速发展的当下,人工智能(AI)已成为推动各行业变革的关键力量,医疗领域也不例外。近年来,AI 在医疗行业的应用取得了显著进展,从医学影像诊断到疾病预测,从药物研发到个性化医疗,AI 技…

数据表的存储过程和函数介绍

文章目录 一、概述二、创建存储过程三、在创建过程中使用变量四、光标的使用五、流程控制的使用六、查看和删除存储过程 一、概述 存储过程和函数是在数据库中定义的一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。存储过程和函数可…

为AI聊天工具添加一个知识系统 之117 详细设计之58 思维导图及观察者效应 之2 概念全景图

(说明:本文和上一篇问题基本相同,但换了一个模型 deepseek-r1) Q1227、在提出项目“为使用AI聊天工具的聊天者加挂一个专属的知识系统”后,我们已经进行了了大量的讨论-持续了近三个月了。这些讨论整体淋漓尽致体现了…

Error [ERR_REQUIRE_ESM]: require() of ES Module

报错信息: 【报错】Message.js 导入方式不对,用的是 ES Moudle 的语法,提示使用 import 引入文件 项目开发没有用到 js-message 依赖,是 node-ipc 依赖中用到的 js-message 依赖, node-ipc 中限制 js-message 版本&a…

GStreamer源码安装1.24版本

从官网下载 1.24的源码包 https://gitlab.freedesktop.org/gstreamer/gstreamer/-/tree/1.24?ref_typeheads#getting-started ,尝试过使用git clone 的方式,但速度贼慢,就选择了下载源码包的方式安装依赖 sudo apt install libssl-dev g me…

从CNN到Transformer:遥感影像目标检测的未来趋势

文章目录 前言专题一、深度卷积网络知识专题二、PyTorch应用与实践(遥感图像场景分类)专题三、卷积神经网络实践与遥感影像目标检测专题四、卷积神经网络的遥感影像目标检测任务案例【FasterRCNN】专题五、Transformer与遥感影像目标检测专题六、Transfo…

从 x86 到 ARM64:CPU 架构的进化与未来

在计算机发展的历史长河中,x86、x64 和 ARM64 这三大主流 CPU 架构各自书写了辉煌的篇章。它们不仅代表了技术的进步,更承载着无数创新者的梦想与努力。 x86:从 16 位到 32 位的辉煌之路 诞生与崛起 1978 年,英特尔(…

Java数据结构第十二期:走进二叉树的奇妙世界(一)

专栏:数据结构(Java版) 个人主页:手握风云 目录 一、树型结构 1.1. 树的定义 1.2. 树的基本概念 1.3. 树的表示形式 二、二叉树 2.1. 概念 2.2. 两种特殊的二叉树 2.3. 二叉树的性质 2.4. 二叉树的存储 三、二叉树的基本操作 一、树型结构 1.…

【AI时代】基于AnythingLLM+ Ollama + DeepSeek 搭建本地知识库

一、本地安装Ollama及DeepSeek 参考教程: https://blog.csdn.net/Bjxhub/article/details/145536134 二、下载并安装AnythingLLM AnythingLLM下载地址: https://anythingllm.com/ 傻瓜式安装即可 可以自定义安装路径。三、配置AnythingLLM并使用 3.…

leetcode刷题记录(一百一十五)——64. 最小路径和

(一)问题描述 64. 最小路径和 - 力扣(LeetCode)64. 最小路径和 - 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下…

UE5 编辑器辅助/加强 插件搜集

1. Actor Locker 地址:https://www.fab.com/listings/ec26ac5e-4720-467c-a3a6-b5103b6b74d0 使用说明:https://github.com/Gradess2019/ActorLocker 支持:5.0 – 5.5 简单的编辑器扩展。它允许你通过世界轮廓窗口/热键/上下文菜单在编辑器视…