Isaac Gym-编程示例
常用命令行选项
--help
打印出每个示例的命令行选项。
--physx
使用 PhysX 作为模拟的物理后端。
--flex
使用 FleX 作为模拟的物理后端。
--sim_device
选择用于使用类似 PyTorch 的语法运行模拟的设备。可以是 cpu 或 cuda,具有可选的设备规格。默认值为 cuda:0 。
--pipeline
选择 cpu 或 gpu 管道进行张量运算。默认值为 gpu。
--graphics_device_id
指定用于图形的设备序号。
注意 除 (flex only)、(flex only)、(physx only) 和 (physx only) 之外,所有示例都支持 和 命令行选项。
--physx--flexclaw.pysoft_body.pyfranka_cube_ik.pyfranka_osc.py
示例列表
碰撞过滤 (1080_balls_of_solitude.py)
此示例演示了碰撞组和碰撞过滤器的用法。它在每个环境中创建一个球的金字塔。 默认情况下,每个环境中的球将相互碰撞,但不会与其他环境中的球发生碰撞。 该选项使所有球在所有环境中相互碰撞。 该选项可过滤掉所有球之间的碰撞,即使是同一环境中的球。
--all_collisions--no_collisions
资产和环境信息 (asset_info.py)
此示例在两个级别上演示了自省 API。 首先,从它们各自的表示形式(URDF 或 MJCF)加载资产,并且可以检索主体、关节和自由度。 其次,一旦将资产作为 actor 添加到模拟中,就可以查询模拟中的 actor 的当前状态,就可以访问与不同身体、关节等相关的状态信息。
Body 物理特性示例 (body_physics_props.py)
此示例演示了如何加载刚体、更新其属性并应用各种作。具体来说,有三种情况 显示以下详细信息。
- 首先,加载具有不同属性的刚体资产。
- 其次,修改刚体的形状和视觉属性。
- 第三,使用刚体手柄来控制它并执行各种作,例如施加体力和线速度。
域随机化 (Domain Randomization, domain_randomization.py)
此示例演示了域随机化。
- 首先,它会随机化环境中加载的资产的颜色和纹理。
- 其次,它会随机化环境中存在的灯光的参数。
- 第三,它随机化摄像机的位置并捕获多个视点。
该选项可用于将图像保存到磁盘。--save_images
弗兰卡吸引子 (franka_attractor.py)
此示例演示了如何使用吸引子导航 Franka 手臂以到达目标位置和姿势。
Isaac Gym 图形示例 (graphics.py)
此示例演示了 Isaac Gym 的多个图形作的使用,包括以下内容:
- 加载纹理(Load Textures) / 从缓冲区创建纹理(Create Textures from Buffer)
- 将纹理应用于刚体
- 创建摄像机传感器(Create Camera Sensors):在静态位置,附加到刚体(Attached to a rigid body)
- 检索不同类型的相机图像
该选项可用于将图像保存到磁盘。--save_images
DOF 控制器 (dof_controls.py)
此示例演示了控制 DOF(自由度)的各种方法。 从 URDF 加载 cartpole 资产。此资源在多个环境中实例化,每个环境使用不同的控制模式。 演示 DOF 属性和驱动模式的用法,包括位置、速度和力控制。
关节猴 (joint_monkey.py)
此示例为给定资源的自由度范围设置动画。它演示了 DOF 属性和状态的用法。 它还演示了用于可视化 DOF 帧(原点和轴)的线条绘制实用程序。
命令行参数:
- --asset_id n选择资产(有效范围为 0 到 7)
- --speed_scale s动画速度的乘数,默认为 1.0
- --show_axis启用当前动画 DOF 帧的可视化
Gym Math API (maths.py)
Gym API 中可用的数学运算示例以及转换为 numpy 数据类型的示例
软体 (Soft Body) (soft_body.py)
此示例显示了使用 Flex 后端的软体仿真。 将 URDF 软体模型加载到仿真中,并可视化应力水平。 注意:此示例仅支持 。PhysX 对软体的支持将在即将发布的版本中添加。--flex
可视化变换 (transforms.py)
此示例演示如何在 actor 上的特定位置绘制变换。 橱柜上把手的变换使用线框几何体辅助对象进行可视化,这些辅助对象会随着橱柜门和抽屉的移动而动态更新。
投射物 (projectiles.py)
一个示例展示了如何生成和移动资产,说明了碰撞过滤,以及如何使用查看器与物理模拟交互。
- spacekey 可用于发射射弹
- R键可用于重置模拟
大质量比试验 (large_mass_ratio.py)
在模拟具有大质量比的盒子堆栈时测试稳定性和性能的示例。
- 当每个下一个盒子的密度和质量都比前一个盒子大 10 倍时,盒子的堆叠。默认示例。
- --inverted_pyramid_test盒子的密度相同,但每个盒子都比前一个大 2 个,重 8 倍。
- --num_envs设置要模拟的环境数量
- --num_threads设置 PhysX 用于模拟的线程数
Kuka bin 示例 (kuka_bin.py)
一个示例,显示了带有 Allegro 手的 Kuka 机器人和一个包含多个对象的箱。
- --num_envs设置要模拟的环境数量
- --num_threads设置 PhysX 用于模拟的线程数
- --num_objects设置 bin 中的对象数
- --object_type设置箱中对象的类型,0 - 盒子,1 - 肉罐头,2 - 香蕉,3 - 马克杯,4 - 砖块,5 - 随机
PyTorch 互作 (interop_torch.py)
与 PyTorch 共享 Isaac Gym 张量的示例。演示如何使用 PyTorch 直接访问 GPU 相机传感器和物理状态张量。
当示例正在运行且查看器窗口处于焦点状态时:
- 按下P可打印刚体状态。
- 按下C可将相机传感器图像写入磁盘。
Franka IK Picking (franka_cube_ik.py)
使用 Jacobian 张量进行逆运动学和拾取的示例。
目前,此示例仅在 PhysX 后端中受支持。
该示例可以使用 CPU 或 GPU 管道运行。默认情况下,它在 cpu 上运行。传递将打开 GPU 管道,其中所有张量都驻留在 GPU 上。--pipeline=gpu
Franka Operational Space Control (franka_osc.py)
使用 Jacobian 和 mass matrix 张量进行 Operational Space Control 的示例。末端执行器的位置和方向可以独立控制。默认情况下,将仅对位置进行动画处理,从而产生末端效应器的圆周运动。
目前,此示例仅在 PhysX 后端中受支持。
命令行参数:
- --pos_control <boolvalue>是否为位置设置动画(默认为 ON)。
- --orn_control <boolvalue>是否为方向设置动画(默认情况下为 OFF)。
示例用法:
python franka_osc.py --pos_control 0 --orn_control 0
python franka_osc.py --pos_control 1 --orn_control 0
python franka_osc.py --pos_control 0 --orn_control 1
python franka_osc.py --pos_control 1 --orn_control 1
此示例仅适用于 CPU 管道,因为 GPU 尚不支持质量矩阵。
应用力 (apply_forces.py)
此示例说明如何使用 tensor API 将力和扭矩应用于刚体。
请注意,GPU 张量管道目前仅适用于 PhysX。
在位置应用力 (apply_forces_at_pos.py)
此示例说明如何使用 tensor API 将力施加到给定位置的刚体。
请注意,GPU 张量管道目前仅适用于 PhysX。
多摄像头 (multiple_camera_envs.py)
对于多个环境,每个环境使用多个摄像机的示例。 为每个环境创建两个摄像头传感器。每个相机的视图矩阵被打印出来到 std out。
该选项可用于将图像保存到磁盘。--save_images
图形上轴 (test_graphics_up.py)
此示例演示了更改 Isaac Gym 中使用的上行轴的能力。 默认选项是将 Y 设置为上方向轴。使用 ,我们可以 更改方向,使 Z 轴对 Viewer 和 Camera 传感器都处于向上状态。gymapi.UpAxis.UP_AXIS_Z
该选项可用于将图像保存到磁盘。 该选项将 Z 设置为上轴。--save_images--up_axis_z
图形材料示例 (graphics_materials.py)
此示例演示了不同网格加载资产选项的用法。 这两列演示了资产选项 use_mesh_materials。 此选项用于将资源文件中指定的材质覆盖为 从网格中检索的材质。Spam 容器还演示了 asset 选项覆盖从网格加载的法线,并计算顶点法线 由 Gym 提供。
角色缩放 (actor_scaling.py)
此示例演示了 actor 的运行时缩放 API。多个资产 加载,并为每个资源创建 Actor,每个 Actor 的 应用于它们的比例因子介于 和 之间。
num_columnsmin_scalemax_scale
- --num_columns设置 Actor 的列数(即每个资产创建的 Actor 数)。
- --min_scale设置应用于每行中最左侧角色的比例。
- --max_scale设置应用于每行中最右侧角色的比例。
地形创建 (terrain_creation.py)
此示例演示了用于创建不同类型地形的 terrain 创建 API 和工具。 不同的高度场地形类型使用以下方式生成: 、 和 。 然后,它们使用 转换为三角形网格,并使用 添加到模拟中。random_uniform_terrain()sloped_terrain()pyramid_sloped_terrain()
discrete_obstacles_terrain()wave_terrain()stairs_terrain()pyramid_stairs_terrain()stepping_stones_terrain()
convert_heightfield_to_trimesh()gym.add_triangle_mesh()
球形接头 (spherical_joint.py)
此示例演示了 URDF 文件中对球形关节的支持,以及如何控制具有 6 个自由度、3 个棱柱形 + 1 个球形的铰接长方体,以达到不断变化的目标方向(由轴几何图形指示)。