当前位置: 首页 > news >正文

机器人学习仿真框架

机器人学习仿真框架一般包含(自底向上):

  1. 3D仿真物理引擎:对现实世界的模拟仿真
  2. 机器人仿真平台:用于搭建工作场景,以实现agent与环境的交互学习
  3. 学习算法框架集合:不同的策略学习算法的实现
  4. 算法测试环境及benchmark:针对不同的定制化算法的测试环境以及评价标准

整体框架简要介绍

  1. 物理引擎:模拟现实世界物理行为的软件工具。可模拟牛顿动力学模型,使用质量、速度、摩擦力和空气阻力等变量,为刚性或柔性物体赋予真实的物理属性,基于此模拟物体的运动、旋转、碰撞等交互过程。本质上是一个计算器,执行模拟物理所需的数学计算。如下是一些流行的物理引擎
    • PhysX (Nvidia):属于Nvidia GameWorks软件套件的一部分,拥有刚体动力学、软体动力学、关节、车辆动力学、流体力学等特性,是游戏和机器人领域最知名的物理引擎。Nvidai在GeForce系列图形卡上启用PhysX硬件加速
    • Bullet
    • MuJoCo、Havok、ODE、RaiSim、DART、Vortex、Simbody
    • 经过某位网友调研发现(不保真),针对机器人学习领域,比较适合的物理引擎有:PhysX, Bullet, MuJoCo, RaiSim
  2. 机器人仿真平台:让用户在没有物理硬件的情况下也能快速对算法进行验证。一般来说,由于真实物理平台与仿真环境存在差异,仿真一般只在系统前期使用,后期还会要转到实际硬件平台上进行调试。如下是一些流行的机器人仿真平台
    • Nvidia Isaac Sim:整合了PhysX物理引擎和RTX图像渲染引擎,并引入了Pixar公司开发的USD(Universal Scene Description)描述格式作为机器人和复杂场景的描述方式
    • ROS-Gazebo:可访问ODE、Bullet、Simbody、DART多个物理引擎
    • PyBullet:基于Bullet物理引擎开发的仿真环境。和python紧密结合,目前在强化学习中广泛应用
      • PyBullet和Bullet的区别:PyBullet is a python module for sim, robotics and machine learning, it has rendering, inverse kinematics etc. Install is just pip install pybullet, it will do all, no need to manually install Bullet c++.
        Bullet C++ is the underlying physics library, you don’t need to compile or install it, pip does that.
    • MuJoCo、CoppeliaSim、MATLAB Robotics Toolbox、Webots、UE4(Unreal Engine)、Unity3D
    • 该网友调研:Pybullet和MuJoCo在机器人学习领域尤其火
  3. 学习算法框架集合:类似于Numpy,只不过是强化学习算法的打包实现
    • 如OpenAI Baselines、PyTorch DRL、Stable Baselines3、RLlib、rlpyt、Acme
  4. 算法测试环境及benchmark
    • RLBench:有100个手工设计任务,旨在促进视觉引导的manipulation领域的研究(包含强化学习、模仿学习、多任务学习、几何计算机视觉)
    • ControlSuite(DeepMind)、Gym(OpenAI)、RoboSchool(OpenAI)、Robosuite(Stanford)、RoboTurk(Stanford)、PyRoboLearn、Meta-World(Stanford)、SURREAL(Stanford)、OpenSpiel(DeepMind)、PyRobot(Facebook)、S-RL Toolbox、ROBEL(Google)、Menger(Google)、SEED RL(Google)、DERL(Stanford)

一些零碎的相关概念扫盲

  1. 目前机器人模拟器主要分两种类型:1)具身智能模拟器(为强化学习算法服务的);2)传统工业控制模拟器(基于模型控制服务的)
    • 前者最早来自游戏产业,如Isaac Sim、Isaac Gym和SAPIEN都是基于PhysX这个物理引擎。Unity游戏设计框架也使用了PhysX物理引擎
    • 具身智能模拟器更注重速度,但在接触点建模方面可能不够精细,但非常适合个人/实验室用户,只需一块显卡就能训练
    • 后者像MIT Russ Tedrake开发的Drake模拟器,速度较慢,但在接触点建模方面更为精细,适用于最优控制等场景
    • 机器人模拟器和一些基础力学的模拟器,如分析材料在一定力下是否变形的模拟器,都有各自的价值。它们在不同维度上强调速度和精度的权衡,各自有不同的定位。它们之间不是完全竞争的关系
  2. 做一个好的simulator最大的挑战是什么
    • 更准确+更真实,往往需要牺牲速度和采样效率
    • 对于强化学习等任务,采样效率可能是关键;而对于一些需要真实渲染的领域,如视觉和模仿学习,渲染质量可能更重要。因此不同研究中关注的特性可能不同
    • 刚体模拟现在比较成熟,软体模拟相比之下是一个蓝海
  3. 模拟器目前没有一个大一统的标准,原因之一是许多主流模拟器背后是不同的科技巨头。如Isaac系列背后是Nvidia,MuJoCo背后是Google。这些科技巨头的目标是让模拟器与他们的硬件或编译器紧密耦合,以在自家计算平台上更好地部署(比如Nvidia的GPU、Google的TPU)
  4. 强化学习和模仿学习:
    两种算法没有直接关联,且最早应用在机器人上时是不需要模拟器的。是因为强化学习对数据的需求量很大,即采样复杂度很高,而真实世界中采集大量数据非常困难,才转向使用模拟器的。
    若想在模拟器中训练强化学习算法,就需要解决模拟器和真实机器人之间的sim2real gap问题,这个鸿沟不易填补。因此有人倾向于直接使用真实机器人数据,但强化学习对数据的需求量很大(采样复杂度很高),所以一些研究者更愿意采用模仿学习策略。
    Yuzhe称,对于相对简单的任务,他更倾向于使用模仿学习,因为人类可以轻松使用遥控器采集数据;对于一些复杂、高动态的任务,真实世界中采集数据可能很困难,因此最好的做法是在模拟器中开始,并尝试将其迁移到真实环境中,这时就需要强化学习的方法。
  5. 如何解决sim2real gap的问题?
    • 总的来说,Sim2Real Gap的问题大致分为两类:1)视觉方面的gap;2)物理方面的gap
      • 视觉方面:即外观,取决于视觉感知的可靠性。在模拟器中,机器人可以获得非常真实的深度信息,但在真实世界中,使用的深度传感器可能存在噪声和不准确性,特别是在处理透明、反光等复杂材料时,可能会出现畸变等问题。可通过:1)优化硬件;2)随机化等解决
      • 物理方面:和之前调研的差不多,论文里更详细
    • 解决方法可分为三类
      • 构建更好的模拟器:更好的物理仿真。如在深度相机仿真方面,传统方法简单地将渲染得到的物体深度直接用作深度传感器等数据,但也有一些工作采用更贴近真实深度相机原理的仿真
      • 数据增强:通过增加更丰富的数据来拉近模拟和真实环境的数据。如在模拟器中训练一个模型,使其能抓取多种属性的杯子,那么迁移到真实世界中时,该模型更有可能成功地抓取真实世界的杯子。代表性工作是Domain Randomization。这点模拟器有天然优势,可利用模拟器进行大规模数据增强
      • 寻找切入点:寻找一个在模拟器和真实世界之间差距较小的切入点,比如将问题简化,在简化的问题上使模拟器和真实世界趋于一致
  6. 对于仿真数据和真实数据
    对于一些简单的仿真任务,如抓取,在仿真中学到的策略迁移到真实世界时表现较为成熟;然而对于一些复杂的接触任务,特别是涉及接触点不断变化的情况,仿真效果并不理想,可能需要一些真实数据。因此他更倾向于使用模拟器对机器人模型进行初始化,最终通过在真实世界中微调(模型的权重)来学习出最终的策略
  7. 3D生成和模拟器
    3D生成可为模拟器提供服务,可为模拟器提供环境和素材。在模拟器中需要模拟很多3D模型和物体,而最早这些模型由艺术家手工建模,成本较高。现在人们开始考虑如何利用AI生成的模型来丰富模拟器的内容,使其更强大。
    大多数生成的3D素材以通用格式(如Mesh)存储,并且目前主流模拟器都能导入这类外部文件,因此没有出现点对点适配问题,大家都能使用和生成这些mesh格式的素材

http://www.mrgr.cn/news/55964.html

相关文章:

  • VMware Workstation Pro 下载安装指南
  • 利用飞腾派进行OpenCV开发
  • Snort浅析
  • xlnt加载excel报错:xl/workbook.xml:2:2581: error: attribute ‘localSheetId‘ expected
  • C#删除dataGridView 选中行
  • 【OpenAI】第二节(Token)什么是Token?如何计算ChatGPT的Token?
  • 骨传导耳机哪个牌子最好?真实测评五大年度热门单品机型
  • 【直播回放】达索系统赋能新电池产业链数字仿真一体化协同解决方案
  • 软件源码,招投标管理系统,询价管理系统,供应商管理系统,一体化管理系统,供应链管理(springboot+vue+mysql)
  • 2024年墨西哥金融科技报告解读(上)| 从基础到前沿(附下载)
  • sdads
  • SiLM266x系列SiLM2660CD-DG 可配置的电池组电压检测功能 高压电池组前端充/放电高边NFET驱动器
  • 宠物电商新篇章:SpringBoot驱动的在线交易网站
  • comfyui替换电商模特工作流,模特们要真的要失业了吗?
  • 歌曲伴奏去哪里找?轻松获取你喜欢的伴奏
  • 10.17 多进程编程
  • 2024年9月青少年软件编程Python等级考试(一级)真题试卷及答案
  • 离线安装lrzsz
  • 代购系统搭建涉及到哪几方面❓
  • 电子便签:从偶像剧到职场的实用转变
  • 认识ldconfig,不仅仅可以用于查看库的版本
  • 使用Selenium爬取图片并保存为Excel:完整教程
  • 哪个牌子的台灯性价比高?五款性价比拉满的护眼台灯推荐
  • Thymeleaf模板引擎教程(详细总结)
  • Redis进阶:Spring框架中利用Redis实现对象的序列化存储
  • 华为员工爆料:朋友怀孕被裁,直接赔偿了82W!我真有点“羡慕”了。网友:“这算啥,我还见过更绝的!”