Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CoppeliaSim结合Gym构建强化学习环境

CoppeliaSim结合Gym构建强化学习环境

作者头像
博士的沙漏
发布于 2021-08-13 06:18:25
发布于 2021-08-13 06:18:25
2.2K0
举报
文章被收录于专栏:AI与机器人AI与机器人

前言

本文将介绍CoppeliaSim与Gym框架结合来构建强化学习环境的基本方法,通过一个强化学习的经典控制例子cartpole来讲述如何在Gym的框架下,构建基于CoppeliaSim的强化学习仿真环境,如何使用visdom来实时查看训练的过程,以及使用一些现有的强化学习方法(基于stable-baselines3)来训练构建好的模型。本文所涉及的代码已开源在github,开源地址:

https://github.com/chauby/CoppeliaSimRL。

先来看一个效果视频:

本文所构建的强化学习环境已经在Ubuntu 20.04上面测试通过,所需的环境配置为:

  • CoppeliaSim 4.2
  • Python 3.6+ 以及一些常用的包
  • Gym
  • Stable-baselines3
  • Pytorch
  • Visdom

一. Gym环境介绍

Gym(https://gym.openai.com/)是OpenAI公司开源的强化学习框架,内部自带了一些仿真环境,用户安装Gym以后可以直接使用。Gym自带的仿真环境比较简单,我们也可以利用它的框架去结合现有的一些机器人仿真环境来实现我们自己的强化学习环境,本文就以CoppeliaSim为例进行讲解。

想要利用Gym的框架,我们需要实现一个自定义的环境类,在类当中还需要实现以下几个函数:

其中,

  • action_space表示机器人的动作空间,可以是离散的,也可以是连续的,比如2就表示机器人在实际运行时一共有2个动作可以选择。
  • observation_space表示机器人的观察空间,用于表示机器人的observation范围,可以是离散值也可以是连续值。
  • state表示机器人的当前状态,可以是机器人的关节角度,也可以是机器人的位置和速度等等,取决于你想采用什么方式来表示机器人当前的状态。某种意义上来说,state是对observation的一次采样,每次step我们就能从observation中得到当前的state。

这几个函数的作用从函数名就能看出来了,Gym框架在运行我们定义的环境的时候会分别依次去调用每个函数,因此,我们只需要把我们自己仿真环境的接口与这几个函数结合就能实现Gym与仿真环境的交互过程,从仿真环境中获取数据,施加action到仿真环境中控制机器人运动。

二. 仿真环境的构建过程

2.1 CoppeliaSim中的模型

在CoppeliaSim中构建仿真模型cart-pole,两个关节,一个横向移动的滑块和一个旋转关节。旋转关节设定为被动运动,通过控制滑块的左右移动来实现杆的平衡。

在不给定任何外力控制的情况下,竖着的杆受到重力的影响会倒下,如下图所示:

基于CoppeliaSim官方提供的API接口,我们使用Python代码来远程获取模型的关节角度和位置等,需要构建一个模型类代码,具体实现请看源代码:

有了这些接口,我们就能远程读取模型的数据,控制仿真的开始、停止和复位等等,就有了实现多次重复学习的基础。在模型的控制上,我们只控制底部滑块的左右滑动,通过给滑块施加左右不同方向的力来实现。

2.2 基于Gym框架的实现

前面我们已经介绍了Gym的基本情况,在这里我们只需要基于上述获取机器人状态的函数接口,在Gym的几个函数里面分别调用接口来实现机器人状态的读取,仿真环境的启停等等。

在这里,我们参考了Gym官方的模型,获取模型中滑块的位置、速度,旋转关节的角度和角速度四个数值作为机器人的状态,而动作空间我们设置了三个动作:不动、向左推滑块、向右推滑块。三个动作分别对应action_space里面的三个数值(0, 1, 2),三个动作分别给模型中的底部滑块施加0N,-1N,1N的力使其能够采取不动的动作。通过训练模型,我们获取得到在不同的状态下模型应该采取的动作,从而控制滑块实现杆的平衡。

2.3 算法的可视化

通常,强化学习的算法训练时间比较长,如果我们想要直观地的查看算法训练过程中的Loss以及Reward变化,有两种方式可以选择,使用tensorboard或使用visdom。在本文中,我们使用Visdom来实现,通过在代码中使用回调函数来获取在模型训练过程中的各种数据,然后发送到visdom的服务器端就可以实现数据的可视化了。这里我们使用stable-baselines3提供的回调函数接口,关于回调函数更多的细节,可以在这里找到:https://stable-baselines3.readthedocs.io/en/master/guide/callbacks.html。

本文中我们使用了两个回调函数,一个回调函数用于Visdom的数据可视化,另一个用于保存在训练过程中获得最佳reward的模型,这样在训练完成以后,我们就可以直接加载在训练过程中表现最佳的那个模型用于预测。

使用Visdom可视化Reward的结果,可以一边训练模型,一边查看Reward的变化:

三. 使用现有的强化学习算法

现有的强化学习算法已经有很多开源的代码实现,我们可以直接使用,只要搞明白了算法的接口,可以很容易跟我们自己的仿真环境做结合。在本文中,我们采用了德国航空航天中心机器人与一体化研究所(DLR-RM)开发的强化学习开源算法库Stable-baselines3(https://github.com/DLR-RM/stable-baselines3),该算法库是基于Pytorch开发的,在Gym的框架下实现了许多现有的强化学习算法模型,包括DQN、DDPG、SAC、A2C、TD3、HER等经典模型。在本文中,我们使用的是A2C(Advantage Actor-Critic)算法来训练我们的模型。

只需要上面几步,就可以直接使用现有的强化学习算法。当然,我们可以很容易的替换为其他模型,只需要在创建Model的时候使用不同的算法名字即可。除了使用现有的算法,用户也可以自定义算法,只需要按照一定的规则自定义模型即可,这里暂不讨论。

四. 模型的学习过程

通过前面三步,我们已经在CoppeliaSim中构建了cart-pole仿真模型,构建了基于Python的模型控制代码,构建了基于Gym和Stable-baselines3的强化学习环境,接下来我们可以直接开始训练模型了。

在训练刚开始的时候,模型的控制表现:

经过了5万个timesteps的训练以后:

经过10万个timesteps的训练以后:

最终的效果与仿真环境中模型的配置,所使用的强化学习算法等都有关系,因此,如果尝试改进模型的参数以及其他的强化学习算法,或进行更长时间的模型训练,我们可能会得到更好的控制效果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博士的沙漏 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
精益产品开发 —— 丰田生产系统 & 精益生产
准时制又被成为 JIT(Just In Time),是指仅在需要的时间生产需要数量的需要的产品。准时化的目的是灵活应对变化,消除生产过剩的浪费,以缩短前置时间。
腾讯云 CODING
2022/03/16
1.4K0
精益产品开发 —— 丰田生产系统 & 精益生产
优思学院|精益生产为企业带来革命性转变的效益
企业的成长和发展需要不断的变革和创新,而精益生产则成为了这个时代的代名词。精益生产不仅仅是一个生产方式,更是一种革命性的转变,为企业带来了无限的效益。
用户2865703
2023/04/27
2610
优思学院|精益生产为企业带来革命性转变的效益
优思学院|精益生产现场管理的要素是什么?
精益生产的目的是通过消除3M来实现生产过程的优化和精简。3M指的是 "Muda"、"Muri"、"Mura",这三个词来自于日本,代表了生产过程中的浪费、超负荷和不平衡。
用户2865703
2023/02/27
5420
优思学院|精益生产现场管理的要素是什么?
从SAP最佳业务实践看企业管理(100)-精益生产
精益生产产生的背景 丰田的TPS就是为企业的现金流做贡献、消除库存,缩短制造时间。佐佐木元给出一个令人震惊的数据:制造过程降低10%的成本=经营层面在市场扩大销售额的一倍,资金周转率提高1%=市场占有率提高10%。如果销售额是10亿日元,周转率提高1%,那么,对现金流的贡献是100亿。 佐佐木元曾经站在某家中国工厂的现场,观察一个工人30秒。他发现中国企业浪费太大!工人们工作起来没有章法、没有节奏,太乱。最后,佐佐木元的结论是:如果别的因素不考虑,在中国有效推行丰田生产方式,只要进行作业改善,不需要花钱进设
SAP最佳业务实践
2018/03/26
1K0
精益生产咨询为天津公司带来了什么?
当下,精益生产咨询已经成为一种非常重要的生产方式,可以为公司提供多种价值。本文将从精益生产咨询为天津公司带来的价值等方面展开探讨。
用户9972271
2023/04/18
3500
丰田的生产计划与物料控制方法
众所周知TOYOTA能够以其产品的高品质、低成本、低油耗打进美国等发达国家的市场,而且形成了相当大的竞争优势,主要不在于它采用的生产制造技术,而是由于在生产组织和管理上采取了一系列先进的生产经营理念、管理模式、组织体系、管理技术和方法以及推行了良好的企业文化,被世人称为“丰田生产方式(TPS,TOYOTA Production System)”又被称作“精益生产(LPS)”,还被称为“准时生产制(JIT)”。仅仅从这些名称上就不难看出,车辆生产管理与零件的采购是其中起到最关键作用的一环。它是实体工厂生产的前工程,是降低汽车生产成本的捷径。
用户5495712
2021/01/13
1.4K0
优思学院|盘点,精益生产25个工具!【必需收藏】
精益生产方法需要一种全面的方法才能有效实施。精益这个概念是每个接触产品供应链的人都要实践的,无论是在计划方面还是在分析方面。
用户2865703
2023/03/07
8070
优思学院|盘点,精益生产25个工具!【必需收藏】
从0到1,企业如何实现精益生产?
精益生产是一种以消除浪费为目标的生产管理方法,旨在提高企业生产效率和质量,同时降低成本。精益生产源于日本的丰田生产系统,被认为是全球生产管理的典范之一。
用户9972271
2023/05/05
3030
优思学院|什么是精益生产?企业如何实现精益生产?
在现代工业社会中,企业的生产效率和质量管理是其生存和发展的关键因素之一。而精益生产作为一种高效的生产管理模式,已经成为了众多企业提升效率和质量的首选。优思学院在本文将对精益生产进行详细的介绍,并提供企业实现精益生产的实用建议。
用户2865703
2023/05/12
3190
优思学院|什么是精益生产?企业如何实现精益生产?
制药行业的几个特点
制药行业对技术水平要求较高,创新药开发需要投入大量资源,具有高投入、高风险、高收益和周期长的特点。化学药品的生产需要符合严格的技术标准,对生产设备、工艺流程的要求较高。目前,国际领先的化学制药企业掌握着先进的化学合成工艺,具备较强的专利优势和技术优势,创新药基本由其垄断,凭借专利保护在较长时间内保持技术领先。
SAP虾客
2021/05/01
1.2K0
优思学院|"丰田生产"和“福特生产”有哪些区别?
“丰田生产方式”跨出了丰田汽车娘家大门,进入了日本企业,跨过了业种境界,不分企业规模,广受青睐而被导入采用。时至今日,连东南亚、美国、欧洲等地的企业,也纷纷加以研究,并陆续导入之中,也成为了今天经常被人提起的精益生产管理。
用户2865703
2022/08/16
5250
优思学院|"丰田生产"和“福特生产”有哪些区别?
精益生产这样做,成功率99.99%!
搞了很多精益理论,把精益讲的天花乱坠,其实把这几条做好了,精益生产就可以做到至少80%:
用户9972271
2023/04/03
2200
数字化 | 制造业转型的十个方向详细探索
互联网对商业环节的渗透和改造是逆向的,从与消费者最近的广告营销端开始,进入零售、渗透进分销环节,最终倒逼到生产制造环节,在此过程中生产方式、管理理念、生产设备、甚至原材料都将发生重大变化。关于互联网+制造业会发生什么样的变革?传统制造业企业如何拥抱互联网倒逼的变革?笔者基于制造业经典理论和产业边缘发生的变革端倪,总结分析,与业内人士共同探讨。
CloudBest
2020/08/28
7370
数字化 | 制造业转型的十个方向详细探索
8个步骤告诉你如何做好精益生产
精益生产是一种以尽量减少浪费为目标的生产方式,其核心在于高效利用资源、优化流程、提高质量。以下是8个步骤告诉你如何做好精益生产:
用户9972271
2023/05/16
5700
优思学院|精益生产中的“一个流”真的能够做到吗?
精益生产中提到的“一个流”(One Piece Flow)是一种生产方式,它的核心理念是通过合理配置作业场地、人员和设备,使产品从投入到成品产出的整个制造加工过程中始终处于不停滞、不堆积、不超越,按节拍一个一个地流动。
用户2865703
2023/03/10
3510
优思学院|精益生产中的“一个流”真的能够做到吗?
为什么服装行业要做精益工厂布局?
当下,服装行业作为一个重要的消费品行业,已经成为了人们生活中不可或缺的一部分。然而,随着市场竞争的加剧和消费者需求的多样化,如何提高服装企业的生产效率和降低成本已经成为了一个急需解决的问题。而精益工厂布局则是其中一个能够有效解决这一问题的方法。
用户9972271
2023/03/21
2050
精益管理改善制造业生产模式
精益生产源于日本丰田生产模式,是当前工业界公认最佳的生产组织和生产方式之一。它既是世界级企业的竞争利器,又是一种管理思想和追求卓越的企业文化。精益生产的核心理念是消除浪费、持续改善、聚焦客户和尊重人性。 传统制造业经过几十年的努力,已经具有相当的规模,积累了大量的技术和经验。但是随着世界经济一体化的形成,由于中国潜在的巨大市场和丰富的劳动力资源,国外的技术、资金、产品大量涌入中国,企业面临前所未有的国内外激烈的竞争局面。因此,传统制造业生产管理转型升级势在必行。 目前国内制造业存在的问题: 基础“6S”管理
SAP最佳业务实践
2018/03/26
1K0
优思学院|八大浪费是什么?- 精益管理学会 CLMP
精益管理在企业中最常见的八种浪费包括了:等待浪费、处理浪费、不良浪费、行动浪费、加工浪费、库存浪费、管理浪费和制造过量 (过早) 浪费。下面优思学院・精益管理学会把这八种浪费一一解读,供大家参考。
用户2865703
2022/09/05
1.8K0
优思学院|八大浪费是什么?- 精益管理学会 CLMP
优思学院|什么才是真正的精益化管理?-CLMP
精益管理,或者精益生产(Lean Production)一般定义为:彻底消除浪费,创造更大利润的管理和改进方法。
用户2865703
2022/09/20
5130
优思学院|什么才是真正的精益化管理?-CLMP
如何利用精益六西格玛规避库存陷阱
在当今的市场竞争中,库存成为了企业最头疼的问题之一。库存过多不仅意味着资金占用,还会导致产品陈旧、滞销等问题,而库存不足则会导致无法满足客户需求。如何规避库存陷阱成为了企业必须思考的问题。
用户9972271
2023/04/25
2000
推荐阅读
相关推荐
精益产品开发 —— 丰田生产系统 & 精益生产
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档