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

第七讲、在Isaaclab中使用交互式场景

0 前言

官方教程:https://isaac-sim.github.io/IsaacLab/main/source/tutorials/02_scene/create_scene.html
Isaacsim+Isaaclab安装:https://blog.csdn.net/m0_47719040/article/details/146389391?spm=1001.2014.3001.5502

到目前为止,在本教程中,我们手动将不同的资产(地平面、光源、刚体、关节等)添加到仿真模拟中,并创建对象实例来与它们交互。但,随着场景复杂度的增加,手动执行这些任务变得繁琐。在本教程中,我们将介绍一个scene.InteractiveScene类,它提供了一个便捷的接口,用于在模拟中生成prim并进行管理。

从更高层次上讲,交互式场景是对象实体的集合。每个实体可以是非交互式的prim(例如地平面、光源)、交互式的prim(例如关节、刚体)或传感器(例如摄像头、激光雷达)。scene.InteractiveScene类提供了一个便捷的接口,用于生成这些实体并在仿真模拟中进行管理。

教程对应的脚本为create_scene.pyscripts/tutorials/02_scene目录下。

运行该程序:

  • 进入安装 isaac lab 时创建的conda虚拟环境
  • 在该环境下进入 isaac sim文件夹中运行source setup_conda_env.sh
  • 终端中输入python scripts/tutorials/02_scene/create_scene.py --num_envs 32运行你的代码。

在这里插入图片描述注:这个关于推车杆的案例,在之前有讲过,可以两个结合起来来看,传送门放在下方

第五讲、Isaaclab中与关节交互

1 场景配置

场景由一系列实体组成,每个实体都有各自的配置。这些配置在继承自 的配置类中指定scene.InteractiveSceneCfg。然后将配置类传递给scene.InteractiveScene构造函数以创建场景。

对于 cartpole 示例,我们指定与上一教程相同的配置,但现在在CartpoleSceneCfg配置类中列出它们,而不是手动生成它们。

@configclass # 装饰器,标识这是一个配置类(通常用于自动化配置解析/序列化)
class CartpoleSceneCfg(InteractiveSceneCfg): # 继承自交互式场景配置基类"""Configuration for a cart-pole scene."""# === 地面配置 ===ground = AssetBaseCfg(prim_path="/World/defaultGroundPlane", spawn=sim_utils.GroundPlaneCfg())# === 灯光配置 ===dome_light = AssetBaseCfg(prim_path="/World/Light", spawn=sim_utils.DomeLightCfg(intensity=3000.0, color=(0.75, 0.75, 0.75)))# === 机器人关节配置 ===cartpole: ArticulationCfg = CARTPOLE_CFG.replace(prim_path="{ENV_REGEX_NS}/Robot")

配置类中的变量名(如 ground, dome_light, cartpole)会被用作键(keys),通过 scene[“key_name”] 直接访问场景中的对应实体。

  • 实体配置

    • 非交互式实体(Non-interactive Prims)
      • 类型:地面(ground)、光源(dome_light)等静态或被动实体。
      • 配置类:AssetBaseCfg
      • 特点:不参与物理模拟的交互(如碰撞、动力学计算),仅作为场景中的静态存在(如背景、照明)。
        ground = AssetBaseCfg(prim_path="/World/defaultGroundPlane", ...)
    • 交互式实体(Interactive Prims)
      • 类型:机器人(cartpole)、传感器等需要动态交互的实体。
      • 配置类:ArticulationCfg(对关节机器人)、RigidObjectCfg(对刚体对象)
      • 特点:参与物理模拟(如运动学、碰撞检测),需要动态控制(如机器人关节驱动)。
        cartpole: ArticulationCfg = CARTPOLE_CFG.replace(...)
  • Prim路径

    • 绝对路径
      • 用途:全局唯一的实体(如地面、光源)。
      • 特点:所有环境共享同一个实体,路径固定,不可复制。
      • 实例:prim_path="/World/defaultGroundPlane" # 地面路径 prim_path="/World/Light" # 光源路径
    • 相对路径(含环境命名空间变量)
      • 用途:需要为每个环境单独克隆的实体(如多个机器人的独立实例)。
      • 变量替换:{ENV_REGEX_NS} 会在运行时被替换为 /World/envs/env_0, /World/envs/env_1 等,每个环境(env_0, env_1, …)中会生成独立的机器人实例。
      • 实例:prim_path="{ENV_REGEX_NS}/Robot" # 动态路径
      • 场景克隆:在并行训练或批量仿真时,每个环境拥有独立的实体副本,互不影响。

2 场景实例

与之前调用design_scene函数创建场景不同,现在我们创建scene.InteractiveScene类的实例,并将配置对象传递给其构造函数。
在创建配置实例时,CartpoleSceneCfg类允许使用num_envs参数指定要创建的环境副本数量。

	# num_envs ➜ 并行运行的独立环境数量(强化学习中常见于批量训练)env_spacing ➜环境实例之间的物理距离(单位:米,防止渲染重叠)# args_cli.num_envs ➜ 从命令行参数获取环境数量scene_cfg = CartpoleSceneCfg(num_envs=args_cli.num_envs, env_spacing=2.0)# 使用配置对象实例化交互式场景scene = InteractiveScene(scene_cfg)

3 访问场景元素

在前面已经提及,配置类中的变量名(如 ground, dome_light, cartpole)会被用作键(keys),通过 scene[“key_name”] 直接访问场景中的对应实体。

robot = scene["cartpole"]

4 进行模拟循环

该脚本的其余部分看起来与第五讲交互的脚本类似assets.Articulation,但在调用的方法上有一些细微的差别:

assets.Articulation.reset()scene.InteractiveScene.reset()

assets.Articulation.write_data_to_sim()scene.InteractiveScene.write_data_to_sim()

assets.Articulation.update()scene.InteractiveScene.update()

注:这部分可以对应scripts/tutorials/01_assets/run_articulation.pyscripts/tutorials/02_scene/create_scene.py的具体内容来看,要注意的是上面给出的差别是类的,在代码中可能已经实例化了,比如第一个区别展现在代码里实际上是robot.reset()scene.reset()

相关文章:

  • 微信小程序腾讯获得所在城市
  • Python multiprocessing模块Pool类介绍
  • DeepReaserch写的文献综述示例分享
  • 【Kubernetes基础--Pod深入理解】--查阅笔记2
  • vmcore分析锁问题实例(x86-64)
  • 站台候车,好奇铁道旁的碎石(道砟)为何总是黄色的?
  • Spark-SQL核心编程2
  • redis 内存中放哪些数据?
  • Transformer-PyTorch实战项目——文本分类
  • Tessent Scan Stream Network (SSN) 在芯片设计DFT中的架构、实现原理及组成
  • coco128数据集格式
  • 信息系统项目管理工程师备考计算类真题讲解三
  • What are the advantages of our neural network inference framework?
  • 【Sequelize】关联模型和孤儿记录
  • C#中async await异步关键字用法和异步的底层原理
  • YOLOv2 性能评估与对比分析详解
  • 操作系统内核调度:抢占式与非抢占式及RTOS中的应用
  • 目标检测与分割:深度学习在视觉中的应用
  • 代码随想录算法训练营Day30
  • NO.93十六届蓝桥杯备战|图论基础-拓扑排序|有向无环图|AOV网|摄像头|最大食物链计数|杂物(C++)
  • 浙江桐乡征集涉企行政执法问题线索,含乱收费、乱罚款、乱检查等
  • 中国在建结构第一高楼“天津117大厦”将复工,预计2027年完工
  • IPO周报|本周暂无新股申购,上周上市新股中签浮盈均超1.6万
  • 北京理工大学解除宫某聘用关系,该教授此前被指骚扰猥亵学生
  • 申花迎来中超三连胜,这一次终于零封对手了
  • 观察|中日航线加速扩容,航空公司如何抓住机会?