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

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 testingenv_cfg.env.num_envs = min(env_cfg.env.num_envs, 50)env_cfg.terrain.mesh_type = 'trimesh'    # "heightfield" # none, plane, heightfield or trimeshenv_cfg.terrain.num_rows = 5env_cfg.terrain.num_cols = 5env_cfg.terrain.curriculum = Falseenv_cfg.terrain.selected = Falseenv_cfg.noise.add_noise = Falseenv_cfg.domain_rand.randomize_friction = Falseenv_cfg.domain_rand.push_robots = False#  其他代码..........

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


总结

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

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

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

相关文章

系列三十七、IDEA设置全局快捷键

一、IDEA设置全局快捷键 1.1、idea默认的快捷键 1.2、修改全局搜索快捷键为Alt F

永磁同步电机的磁场定向控制

目录 概述 通过系统仿真验证行为 探索模型架构 生成用于集成到嵌入式应用程序的控制器 C 代码 指定控制器模型的参考行为 创建 PIL 实现 准备用于 PIL 测试的控制器模型 测试生成的代码的行为和执行时间 结论 此示例说明从电机控制算法生成 C 代码并验证其编译行为和执…

进程间通信之匿名管道和命名管道的理解和实现【Linux】

进程间通信之匿名管道和命名管道的理解和实现 进程间通信什么是管道匿名管道代码实现管道的读写规则管道特点 命名管道创建命名管道代码实现 进程间通信 进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程资源共享:多个进程之间共享同…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数 (一)

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展:Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 🙋‍♂️ 作者:海码007📜 专栏:Cesiumfor…

谷歌DeepMind最新研究:对抗性攻击对人类也有效,人类和AI都会把花瓶认成猫!

人类的神经网络(大脑)和人工神经网络(ANN)的关系是什么? 有位老师曾经这样比喻:就像是老鼠和米老鼠的关系。 现实中的神经网络功能强大,但与人类的感知、学习和理解方式完全不同。 比如ANN表…

上海亚商投顾:创业板指再创调整新低 全市场超4700只个股下跌

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数1月5日集体调整,沪指午后跌超1%,创业板指一度跌逾2%,尾盘跌幅有所…

.net 开源混淆器 ConfuserEx

官网:ConfuserEx 下载地址:Releases yck1509/ConfuserEx GitHub 使用参考:https://www.cnblogs.com/zhangzhi19861216/p/3937434.html

Windows10安全中心图标的关闭方法

在Windows10​​​​​​​电脑中,用户可以选择关闭不必要的应用图标。现在,用户想要关掉安全中心图标,但不知道有什么方法能够成功关掉安全中心图标?下面小编给用户们带来Windows10系统安全中心图标的关闭方法步骤,帮…

c语言-库函数qsort()初识

目录 前言一、qsort()的介绍及使用1.1 qsort()的介绍1.2 qsort()的使用1.2.1 使用qsort|()对整型数组按照升序排序1.2.2 使用qsort()对整型数组按照降序排序1.2.3 使用qsort()对结构体数组数据进行排序 二、利用冒泡排序模拟实现对任何数据进行排序2.1 冒泡排序2.2 模仿qsort()…

【REST2SQL】04 REST2SQL第一版Oracle版实现

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 REST2SQL的第一个版本,只支持Oracle数据库,以后会逐步加入其它数据看的支持。 项目文件组织如下: 1 REST2SQL为项目主目录 …

leetcode动态规划问题总结 Python

目录 一、基础理论 二、例题 1. 青蛙跳台阶 2. 解密数字 3. 最长不含重复字符的子字符串 4. 连续子数组的最大和 5. 最长递增子序列 6. 最长回文字符串 7. 机器人路径条数 8. 礼物的最大价值 一、基础理论 动态规划其实是一种空间换时间的基于历史数据的递推算法&…

linux常见操作,and一些练习题加线上练习网站,无须配置linux.持续更新中。。。。

文章目录 cd命令相对路径特殊的路径表达符和cd一起使用pwdmore 查看文件内容支持翻页小技巧clear用户,用户权限 and 用户的切换如何创建用户 ls和通配符的使用利用通配符 *grep 过滤管道符 |如何学习Linux在线练习网站 https://www.lanqiao.cn/courses/1 cd命令 cd…

Basal前端梳理

Basalt前端逻辑梳理 TBB安装参考 https://zhuanlan.zhihu.com/p/480823197 代码注释参考 https://blog.csdn.net/qq_39266065/article/details/106175701#t7 光流追踪参考 https://blog.csdn.net/weixin_41738773/article/details/130282527 VI Odometry KLT tracking 原理 …

第九届中西部外语翻译大赛初赛阶段已经圆满结束

2023年第九届中西部外语翻译大赛(以下简称竞赛),于2023年12月30日至31日举行。历届中西部外语翻译大赛均由中西部翻译协会共同体指导发起,各省市译协共建学术指导委员会,获奖证书盖章单位由四川省翻译协会、广西翻译协…

c# 学习笔记 - 集合(List)

文章目录 1.概论1.1 List 特性1.2 .NET API 2. 基本使用2.1 样例 3. 添加类操作3.1 Insert() 4. 删除类操作4.1 Remove()4.2 RemoveAt() 5. 查找类操作6. 排序类操作6.1 Sort(Comparsion<T>) 7. 其他类操作 1.概论 1.1 List 特性 可通过索引访问的强类型列表&#xff0c…

STM32学习笔记二十二:WS2812制作像素游戏屏-飞行射击游戏(12)总结

至此&#xff0c;飞行射击游戏已经基本实现该有的功能&#xff0c;已经比较接近早期的商业游戏了。 如果采用脚本&#xff0c;可以完成关卡游戏&#xff0c;如果不用&#xff0c;也可以做成无限挑战游戏。 我们汇总一下制作的过程&#xff1a; 1、建模UML 2、主循环处理过程…

设计模式篇章(1)——理论基础

设计模式&#xff1a;在软件开发中会面临许多不断重复发生的问题&#xff0c;这些问题可能是代码冗余、反复修改旧代码、重写以前的代码、在旧代码上不断堆新的代码&#xff08;俗称屎山&#xff09;等难以扩展、不好维护的问题。因此1990年有四位大佬&#xff08;GoF组合&…

3的幂00

题目链接 3的幂 题目描述 注意点 无 解答思路 不断除以3直到除数或余数为0为止&#xff0c;判断除完后的数字是否为1 代码 class Solution {public boolean isPowerOfThree(int n) {while (n / 3 ! 0) {if (n % 3 ! 0) {return false;}n n / 3;}return n 1;} }关键点 …

对称加密技术有哪些类型

对称加密是一种加密方式&#xff0c;其加密和解密所使用的密钥是相同的。这种方式的特点是速度快&#xff0c;效率高&#xff0c;适合用于大量数据的加密和解密。对称加密算法有很多种&#xff0c;常见的有AES、DES、3DES等。 对称加密的应用场景非常广泛&#xff0c;下面是一些…

Linux下配置静态ip地址

问题&#xff1a;虚拟机重启后ip地址动态更新&#xff0c;导致连shell十分麻烦 解决&#xff1a; 1. 进入配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 2.1 修改配置 BOOTPROTOstatic ONBOOTyes2.2 新增配置 #ip地址(自定义) IPADDR192.168.149.131 #子网掩码 …