Ubuntu22.04配置强化学习环境及运行相关Demo

什么是强化学习

强化学习(Reinforcement Learning,简称 RL)是机器学习中的一个重要分支,属于一种基于试错机制的学习方法。它通过让智能体(Agent)与环境(Environment)进行交互,并通过奖励惩罚的反馈机制,逐步学习到一个最优的决策策略(Policy),以达到预期的目标。强化学习广泛应用于机器人控制、游戏 AI、自动驾驶等领域。

强化学习的基本概念

在强化学习中,智能体的目标是通过和环境的不断交互,在每一个时刻做出一个动作(Action),以期最大化它在长期内获得的累计奖励(Cumulative Reward)。我们可以将强化学习问题形式化为一个马尔可夫决策过程(MDP, Markov Decision Process)。下面是强化学习的几个核心组成部分:

1. 状态(State, S)
  • 状态是智能体当前所处的情境或环境中的某种信息表示。比如在围棋中,状态可以表示当前的棋盘布局;在自动驾驶中,状态可以是传感器数据和周围环境的信息。

2. 动作(Action, A)
  • 动作是智能体在某一时刻可以做出的决策。不同的状态对应不同的可能动作。比如在机器人控制中,动作可以是向左转、向右转、加速或减速。

3. 奖励(Reward, R)
  • 奖励是环境对智能体某一动作的反馈信号。它是一个标量,用来衡量该动作的好坏。智能体的目标是通过行动来最大化累积的奖励。比如在游戏中,获胜可以得到正奖励,而失败则可能得到负奖励。

4. 策略(Policy, π)
  • 策略定义了智能体在每个状态下应该采取什么动作。策略可以是确定性的(即在每个状态下都有唯一的动作选择)或者是随机的(即每个状态下都有某个动作的概率分布)。策略是强化学习中智能体需要学习的核心内容。

5. 值函数(Value Function, V 或 Q)
  • 值函数是用来评估某个状态(或状态-动作对)的“好坏”的函数。它表示智能体从某个状态(或状态-动作对)开始,期望能够获得的累计奖励。

    • 状态值函数 V(s):从状态 s 开始,未来期望能获得的累积奖励。

    • 状态-动作值函数 Q(s, a):在状态 s 下采取动作 a 后,未来期望能获得的累积奖励。

强化学习的基本流程

  1. 智能体观察当前状态(State)

  2. 根据策略(Policy)选择一个动作(Action)

  3. 智能体执行这个动作,环境给出反馈,包括下一状态和奖励(Reward)

  4. 智能体根据奖励和下一状态更新策略,优化动作选择

  5. 重复上述过程,直到达到目标或回合结束

强化学习环境配置

安装ubuntu系统及ROS2

这里不在仔细说明;

设置显卡驱动

安装完ROS2后,找到附加驱动

注意:这里高显卡使用545,低显卡使用535,还有一种可能是其他。

安装虚拟环境Anaconda

下载

Download Anaconda Distribution | Anaconda

安装

 bash Anaconda3-2024.02-1-Linux-x86_64.sh

直按回车键,知道出现yes/no,然后选择yes

这里选择no,不需要配置环境。

在bashrc下添加环境变量

  source ~/anaconda3/bin/activate

打开终端,出现base说明安装成功

安装pytorch

 # 创建虚拟环境
 conda create -n ref python=3.8

 #安装PyTorch 1.13conda activate refconda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.7 -c pytorch -c nvidia#这里pytorch太慢的话,运行下面的conda install pytorch==1.13.1

安装IsaacGym

下载Isaacgym:Isaac Gym - Download Archive | NVIDIA Developer

 cd isaacgym/python/conda activate ref#安装pip install -e.

安装完之后,我们需要配置一个环境

 conda activate refcd $CONDA_PREFIXmkdir -p ./etc/conda/activate.dmkdir -p ./etc/conda/deactivate.dtouch ./etc/conda/activate.d/env_vars.shtouch ./etc/conda/deactivate.d/env_vars.sh

找到/home/XXX/anaconda3/envs/ref/etc/conda目录下有两个文件夹

进入activate.d,打开env_vars.sh文件添加下面内容

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib

进入deactivate.d,打开env_vars.sh文件添加下面内容

 # 保存原始的 LD_LIBRARY_PATHORIGINAL_LD_LIBRARY_PATH=$LD_LIBRARY_PATH​# 要删除的目录DIRECTORY_TO_REMOVE="$CONDA_PREFIX/lib"​# 使用 grep 过滤掉要删除的目录项NEW_LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | tr ':' '\n' | grep -v "$DIRECTORY>​# 设置新的 LD_LIBRARY_PATHexport LD_LIBRARY_PATH=$NEW_LD_LIBRARY_PATH​#echo "Original LD_LIBRARY_PATH: $ORIGINAL_LD_LIBRARY_PATH"#echo "New LD_LIBRARY_PATH:      $LD_LIBRARY_PATH"

保存,重新进入虚拟环境

测试

 cd isaacgym/python/examples/python joint_monkey.py 

安装强化学习

下载:GitHub - roboterax/humanoid-gym: Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer https://arxiv.org/abs/2404.05695

 cd humanoid-gym/pip install -e.

基于PPO算法的训练

 #运行cd humanoid#启动基于PPO算法的训练,任务为humanoid任务,注意这里根据自己的显卡选择训练数量python scripts/train.py --task=humanoid_ppo --run_name v1 --headless --num_envs 4096

评估训练好的PPO策略 v1

此命令加载 'v1' 策略以在其环境中进行性能评估。除此之外,它还会自动导出一个JIT模型,适合用于部署。

 python scripts/play.py --task=humanoid_ppo --run_name v1

执行模拟到模拟的模型转换

使用导出的 'v1' 策略来进行模拟到模拟的转换。

 python scripts/sim2sim.py --load_model /home/baining/humanoid-gym/logs/XBot_ppo/exported/policies/policy_1.pt

运行训练好的策略

 python scripts/sim2sim.py --load_model /home/baining/humanoid-gym/logs/XBot_ppo/exported/policies/policy_example.pt

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GitHub 开源项目 Puter :云端互联操作系统

每天面对着各种云盘和在线应用,我们常常会遇到这样的困扰。 文件分散在不同平台很难统一管理,付费订阅的软件越来越多,更不用说那些烦人的存储空间限制了。 最近在 GitHub 上发现的一个开源项目 Puter 彻底改变了我的在线办公方式。 让人惊…

深入解析小程序组件:view 和 scroll-view 的基本用法

深入解析小程序组件:view 和 scroll-view 的基本用法 引言 在微信小程序的开发中,组件是构建用户界面的基本单元。两个常用的组件是 view 和 scroll-view。这两个组件不仅功能强大,而且使用灵活,是开发者实现复杂布局和交互的基础。本文将深入探讨这两个组件的基本用法,…

河道水位流量一体化自动监测系统:航运安全的护航使者

在广袤的水域世界中,航运安全始终是至关重要的课题。而河道水位流量一体化自动监测系统的出现,如同一位强大的护航使者,为航运事业的稳定发展提供了坚实的保障。 水位传感器:负责实时监测河道的水位变化。这些传感器通常采用先进的…

开源可视化工具对比:JimuReport VS DataEase

在当今数据驱动的时代,高效的数据可视化工具成为企业洞察业务、做出决策的关键利器。那对于企业来讲如何选择BI产品呢? 在开源可视化工具的领域中,JimuReport和DataEase 以其独特的优势脱颖而出,究竟谁更胜一筹呢?让我…

jquery还有其应用场景,智慧慢慢地被边缘化,但不会消亡

一、jQuery 的辉煌过往 jQuery 的诞生与崛起 在前端开发的漫长历史中,2006 年诞生的 jQuery 犹如一颗耀眼的新星划破天际。它由 John Resig 创造,一出现便以其独特的魅力迅速吸引了广大开发者的目光。在那个前端技术发展相对缓慢的时期,jQue…

TSmaster 专栏索引

文章目录 软件下载官方中文手册和视频教程窗口对齐关闭窗体报文格式转换TSmaster 硬件配置及连接TSmaster Measurement setup(测量设置) 软件下载 下载路径:https://www.tosunai.com/downloads/ 官方中文手册和视频教程 窗口对齐 一个工作…

Java小白成长记(创作笔记一)

目录 序言 思维导图 开发流程 新建SpringBoot并整合MybatisPlus 新建SpringBoot 整合MybatisPlus 统一结果封装 全局异常处理 引入数据库 序言 在一个充满阳光的早晨,一位对编程世界充满好奇的年轻人小小白,怀揣着梦想与激情,踏上了学习…

SpringBoot+Vue 2 多方法实现(图片/视频/报表)文件上传下载,示例超详细 !

目录 一、主流方法介绍 1. Base 64 2. 二进制流传输 3. multipart/form-data 4. FTP/SFTP 5. 云存储服务API 二、multipart/form-data 方式上传单个文件 1、前端部分 2、后端部分 三、multipart/form-data 方式上传多个文件 1、前端部分 2、后端部分 四、Base 64 方…

小米顾此失彼:汽车毛利大增,手机却跌至低谷

科技新知 原创作者丨依蔓 编辑丨蕨影 三年磨一剑的小米汽车毛利率大增,手机业务毛利率却出现下滑景象。 11月18日,小米集团发布 2024年第三季度财报,公司实现营收925.1亿元,同比增长30.5%,预估902.8亿元;…

unity中:超低入门级显卡、集显(功耗30W以下)运行unity URP管线输出的webgl程序有那些地方可以大幅优化帧率

删除Global Volume: 删除Global Volume是一项简单且高效的优化措施。实测表明,这一改动可以显著提升帧率,甚至能够将原本无法流畅运行的场景变得可用。 更改前的效果: 更改后的效果: 优化阴影和材质: …

webgl threejs 云渲染(服务器渲染、后端渲染)解决方案

云渲染和流式传输共享三维模型场景 1、本地无需高端GPU设备即可提供三维项目渲染 云渲染和云流化媒体都可以让3D模型共享变得简单便捷。配备强大GPU的远程服务器早就可以处理密集的处理工作,而专有应用程序,用户也可以从任何个人设备查看全保真模型并与…

React Native 基础

React 的核心概念 定义函数式组件 import组件 要定义一个Cat组件,第一步要使用 import 语句来引入React以及React Native的 Text 组件: import React from react; import { Text } from react-native; 定义函数作为组件 const CatApp = () => {}; 渲染Text组件

【专题】中国企业出海洞察报告暨解码全球制胜之道报告汇总PDF洞察(附原数据表)

原文链接:https://tecdat.cn/?p38314 在当今全球化的浪潮中,中国企业的出海行动正以前所未有的规模和速度展开,成为全球经济舞台上的重要力量。本报告旨在对 2024 年中国企业出海情况进行深度洞察,涵盖多个领域和视角。 从对外投…

『VUE』32. 动态组件,组件的动态切换(详细图文注释)

目录 动态组件示例代码总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 动态组件 有些时候我们的组件需要切换,这个时候用到<conponent></conponent>标签, <component :is"choseComponent"><…

传输层协议TCP

一.TCP协议格式 对于传输层协议我们之前是学过了UDP&#xff0c;对于传输层协议是存在了一定的了解的&#xff0c;所以现在我们再来看TCP协议格式&#xff1a; 我们之前学过UDP的报文格式&#xff0c;所以源端口和目的端口是不需要进行再次讲解的&#xff0c;对于32序号和确认序…

不能打开网页,但能打开QQ、微信(三种方式)

1.VPN错误 下面三个开关全关闭 2.DNS问题 WINR 输入CMD打开命令行 命令行输入 ipconfig/flushdns 重启电脑 3.直接火绒&#xff08;一键修复&#xff09;

Unity类银河战士恶魔城学习总结(P132 Merge skill tree with skill Manager 把技能树和冲刺技能相组合)

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili 教程源地址&#xff1a;https://www.udemy.com/course/2d-rpg-alexdev/ 本章节实现了解锁技能后才可以使用技能&#xff0c;先完成了冲刺技能的锁定解锁 Dash_Skill.cs using System.Collections; using System…

Linux-第2集-打包压缩 zip、tar WindowsLinux互传

欢迎来到Linux第2集&#xff0c;这一集我会非常详细的说明如何在Linux上进行打包压缩操作&#xff0c;以及解压解包 还有最最重要的压缩包的网络传输 毕竟打包压缩不是目的&#xff0c;把文件最终传到指定位置才是目的 由于打包压缩分开讲没有意义&#xff0c;并且它们俩本来…

mysql delete后通过日志恢复数据

1.打开navicat查看删除时间 2.查看日志功能是否打开 show variables like %log_bin%;3. 查看日志文件所在目录 show variables like %datadir%;4.用这个路径去找日志文件&#xff0c;名字里带bin&#xff0c;最后修改时间和你第一步找到删除时间一样(如果之后有过其它增删改…

鸿蒙NEXT开发-用户通知服务的封装和文件下载通知

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…