isaacgym(legged_gym)学习 (二)—— 设置环境地形

news2024/11/27 16:33:06

isaacgym(legged_gym)学习 (二)—— 设置环境地形


文章目录

  • isaacgym(legged_gym)学习 (二)—— 设置环境地形
  • 前言
  • 一、了解isaacgym中地形如何构成的
  • 二、自定义修改
    • 1.代码
    • 2.查看script/play.py
  • 总结


前言

如何设置isaacgym中的环境地形,来实现特殊任务需要的训练!!!!


一、了解isaacgym中地形如何构成的

isaacgym中的地形尤其三legged_gym中的地形,其实是模块化的,包含一下几种:
1、凸台阶
在这里插入图片描述
2、凹台阶
在这里插入图片描述
3、不平的地形
在这里插入图片描述
4、有间隙的地形
在这里插入图片描述
5、规则的起伏不平
在这里插入图片描述
这5种地形,通过随机、难度递增和选择三种模式进行组合,形成一个大的训练地形环境,效果如下:

在这里插入图片描述
(这个地形就是以随机的方式,按照5行5列的排列组合的

二、自定义修改

1.代码

对于地形的定义是在:legged_gym/legged_gym/utils/terrain.py文件中
我们可以不用管这个。我们需要修改的代码是:legged_gym/legged_gym/envs/base/legged_robbot_config.py

修改其中的class terrain:

class terrain:
    mesh_type = 'trimesh' # 地形网格类型:'trimesh'(三角形网格),可选值包括 'none', 'plane', 'heightfield', 'trimesh'
    horizontal_scale = 0.1 # 水平缩放比例,单位:米
    vertical_scale = 0.005 # 垂直缩放比例,单位:米
    border_size = 25 # 边界大小,单位:米
    curriculum = True # 是否应用课程学习方法
    static_friction = 1.0 # 静态摩擦系数
    dynamic_friction = 1.0 # 动态摩擦系数
    restitution = 0. # 弹性恢复系数
    # 仅粗糙地形相关:
    measure_heights = True # 是否测量高度
    measured_points_x = [-0.8, -0.7, -0.6, ...] # 在1mx1.6m矩形范围内测量的点的x坐标(不包括中心线)
    measured_points_y = [-0.5, -0.4, -0.3, ...] # 测量点的y坐标
    selected = False # 是否选择唯一的地形类型并传递所有参数
    terrain_kwargs = None # 为所选地形类型指定的参数字典
    max_init_terrain_level = 5 # 课程学习开始的最大初始地形等级
    terrain_length = 8. # 地形长度,单位:米
    terrain_width = 8. # 地形宽度,单位:米
    num_rows= 20 # 地形行数(等级)
    num_cols = 20 # 地形列数(类型)
    # 地形类型:[平滑斜坡,粗糙斜坡,上楼梯,下楼梯,离散]
    terrain_proportions = [0.0, 0.1, 0.1, 0.35, 0.25, 0.2]
    # trimesh(三角形网格)仅适用:
    slope_treshold = 0.75 # 斜坡阈值,高于此阈值的斜坡将被修正为垂直表面

而我们需要重点关注的和修改的是其中这三个参数:

num_rows= 20 # 地形行数(等级)
num_cols = 20 # 地形列数(类型)
# 地形类型:[平滑斜坡,粗糙斜坡,上楼梯,下楼梯,离散]
terrain_proportions = [0.0, 0.1, 0.1, 0.35, 0.25, 0.2]

分别表示单位地形横向和纵向的个数,terrain_proportions = [0.0, 0.1, 0.1, 0.35, 0.25, 0.2]表示每种地形所占的比例,如我需要全部是粗糙斜坡则设置成terrain_proportions = [0.0, 1.0, 0.0, 0.0, 0.0, 0.0] 以此类推!

2.查看script/play.py

注意:以下说明只是针对运行paly.py的情况,train.py只需要1中的配置即可

上面的配置修改好了,有可能实际仿真环境和你设置的不一样,那就有可能是play.py中对其中的某些参数进行了重新配置;

def play(args):
    env_cfg, train_cfg = task_registry.get_cfgs(name=args.task)
    # override some parameters for testing
    env_cfg.env.num_envs = min(env_cfg.env.num_envs, 50)
    env_cfg.terrain.mesh_type = 'trimesh'    # "heightfield" # none, plane, heightfield or trimesh
    env_cfg.terrain.num_rows = 5
    env_cfg.terrain.num_cols = 5
    env_cfg.terrain.curriculum = False
    env_cfg.terrain.selected = False
    env_cfg.noise.add_noise = False
    env_cfg.domain_rand.randomize_friction = False
    env_cfg.domain_rand.push_robots = False
    
    #  其他代码
    ..........

如上面的代码所示;play.py中对地形的横向和纵向个数以及网格类型和组合方式进行了重新配置。这里可以按照你自己的需要进行设置!!!


总结

以上是记录在isaacgym中地形的设置,后续会持续更新!!!!

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

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

相关文章

【操作系统篇】正在持续写入的日志如何清理?

正在持续写入的日志如何清理? ✔️典型解析✔️ 推荐的日志管理工具✔️如何设置日志轮转工具✔️如何选择适合我的Logrote-NG日志轮转工具✔️如何测试Logrote-NG工具的稳定性✔️分析一个简单的ELK报警✔️这个报警的作用是什么✔️报警机制的优缺点✔️如何减少报警机制的误…

蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐

​在众多的耳机类型中,运动耳机因其独特的设计和功能而备受青睐。它们不仅要具备出色的音质,还需要能够适应激烈的运动环境,如防水、防汗、牢固耐用等。今天,我想向大家推荐一些在这些方面表现出色的运动耳机,这些耳机…

Unity 圆角 线段 绘制 LineRender

需求 绘制圆角 核心函数 /// <summary>/// 点ABC 形成的角度必须为90 点c为中间的点/// </summary>/// <param name"a"></param>/// <param name"b"></param>/// <param name"c"></param>/// &…

C++学习笔记——友元及重载运算符

目录 一、友元 1.1声明友元函数 1.2声明友元类 二、运算符重载 2.1重载加号运算符 2.2重载流插入运算符 三、一个简单的银行管理系统 四、 详细的介绍 一、友元 在 C 中&#xff0c;友元是一个函数或类&#xff0c;它可以访问另一个类的私有成员或保护成员。通常情况下…

微服务实战系列之Filter

前言 Filter&#xff0c;又名过滤器&#xff0c;当然不是我们日常中见到的&#xff0c;诸如此类构件&#xff1a; 而应该是微服务中常使用的&#xff0c;诸如此类&#xff08;图片来自官网&#xff0c;点击可查看原图&#xff09;&#xff1a; 一般用于字符编码转换&#xf…

Unity DOTS中的baking(二)Baker的触发

Unity DOTS中的baking&#xff08;二&#xff09;Baker的触发 我们知道&#xff0c;当传入Baker的authoring component的值发生变化时&#xff0c;就会触发baking。不过在有些情况下&#xff0c;component所引用的对象没有变化&#xff0c;而是对象自身内部的一些属性发生了变化…

DNS--windows sever 2012 r2

1 安装dns服务 得到 2 配置正向解析文件 设置正向解析文件的别名 配置(1)主机名 (2)别名&#xff08;3)邮件交换器 最终得到 3 配置反向文件 建立指针 得到 4 验证

【百科物理】-1.弹力和压力

导入 问题&#xff1a; 为什么在蹦床上弹得更高&#xff1f; 现象背后的原理&#xff0c;因为有力。 力&#xff1a;物体(物质)与物体(物质)之间推、拉、挤压的相互作用。力可以改变物体的运动状态&#xff08;比如踢足球&#xff09;&#xff0c;力可以改变物体的形状&#xf…

ProtoBuf一些踩坑记录

一、Protobuf学习基础 学习的资料很多也很全&#xff0c;这里添加几个链接进行Protobuf的基础学习的链接&#xff0c;链接中的案例使用C编辑&#xff1a; 链接&#xff1a;Protobuf介绍及简单使用(上&#xff09;_google_protobuf_version-CSDN博客 Protobuf介绍及简单使用(下&…

行云部署成长之路 -- 慢 SQL 优化之旅 | 京东云技术团队

当项目的SQL查询慢得像蜗牛爬行时&#xff0c;用户的耐心也在一点点被消耗&#xff0c;作为研发&#xff0c;我们可不想看到这样的事。这篇文章将结合行云部署项目的实践经验&#xff0c;带你走进SQL优化的奇妙世界&#xff0c;一起探索如何让那些龟速的查询飞起来&#xff01;…

three.js 学习笔记(学习中1.7更新) |

文章目录 three.js 学习笔记入门基础概念透视相机 第一个three.js应用threejs画布尺寸和布局canvas画布宽高度动态变化 坐标辅助器 THREE.AxesHelper实现动画效果requestAnimationFrame时间相关属性和方法 THREE.Clock类 相机控件 轨道控制器OrbitControls 灯光点光源点光源辅助…

【ArcGIS微课1000例】0087:经纬度格式转换(度分秒转度、度转度分秒)

ArcGIS软件可以很方便的直接实现度分秒转度、度转度分秒。 文章目录 一、转换预览二、工具介绍三、案例解析一、转换预览 借助ArcGIS快速实现度分秒与度及其他格式的坐标转换。例如:度分秒→度 度分秒: 度: 二、工具介绍 转换坐标记法:将一个或两个字段包含的坐标记法从一…

PAT 乙级 1049 数列的片段和

分数 20 作者 CAO, Peng 单位 Google 给定一个正数数列&#xff0c;我们可以从中截取任意的连续的几个数&#xff0c;称为片段。例如&#xff0c;给定数列 { 0.1, 0.2, 0.3, 0.4 }&#xff0c;我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) …

【JAVA】Iterator 和 ListIterator 有什么区别?

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 在Java中&#xff0c;遍历集合是日常编程中常见的任务&#xff0c;而Iterator和ListIterator作为遍历集合的两个主要接口&#xff0…

【MySQL】索引基础

文章目录 1. 索引介绍2. 创建索引 create index…on…2.1 explain2.2 创建索引create index … on…2.3 删除索引 drop index … on 表名 3. 查看索引 show indexes in …4. 前缀索引4.1 确定最佳前缀长度&#xff1a;索引的选择性 5. 全文索引5.1 创建全文索引 create fulltex…

Angular学习第二天--问题记录

一、问题 1.用脚手架搭建完项目之后&#xff0c;缺少app.modules.ts文件&#xff0c; 2.解决办法&#xff1a; 在终端继续输入命令 ng new 项目名称 --no-standalone --routing --ssrfalse 3.完整目录&#xff1a; 二、问题 1.问题来源&#xff0c;源代码&#xff1a; <fo…

K8S API访问控制之RBAC利用

前言 K8S对于API的访问安全提供了访问控制&#xff0c;主要为4个阶段&#xff0c;本文为第二个阶段——鉴权的RBAC。RBAC是基于角色的访问控制&#xff0c;使用kubeadm安装集群1.6版本以上的都默认开启了RBAC。本文主要研究集群可能存在的利用点及相对应的利用手法。 API访问…

kettle的基本介绍和使用

1、 kettle概述 1.1 什么是kettle Kettle是一款开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装&#xff0c;数据抽取高效稳定。 1.2 Kettle核心知识点 1.2.1 Kettle工程存储方式 以XML形式存储以资源库方式存储…

Flutter 图片和资源的高效使用指南

文章目录 指定资源什么是 [pubspec.yaml](https://dart.cn/tools/pub/pubspec) 文件 图片图片常用的配置属性加载本地图片通过 pubspec.yml 文件进行配置图片目录使用 Image.asset 小部件加载本地图片 加载网络图片通过 Image.network小部件加载网络图片&#xff1a;使用Image.…

Idea将xml文件配置为模板

在配置mybatis的mapper映射文件的时候&#xff0c;通常需要到官网拷贝配置文件的内容&#xff0c;这里直接将xml的文件配置为模板&#xff0c;下次可以直接进行创建。