发布说明
1.0.preview4
通用
- 此版本将独立预览版的Isaac Gym的PhysX实现与Omniverse Isaac Sim 2022.1对齐,以简化RL工作负载向Omniverse的迁移。
新特性
- PhysX后端:增加了对SDF碰撞的支持,附带螺母和螺栓示例。
- PhysX后端:默认启用陀螺力以改善仿真(可以通过
asset_options.enable_gyroscopic_forces = False
禁用)。 - PhysX后端:允许按组件和单个形状自定义
rest_offset
和contact_offset
。 - 在URDF导入器中添加了对球形(球)关节支持的解析。
Bug修复和改进
- PhysX:改善弹性碰撞行为。
- PhysX:修复了重置一些固定基础演员时的bug。
- 修复了PhysX材料属性缓存问题,影响动态变化的摩擦属性,例如在域随机化期间。
- 修复了三角网格和高度场的摩擦模式问题;在先前的版本中,这被错误地设置为乘法模式。在此版本中,我们使用平均模式,与仿真中的所有其他形状一样。
1.0.preview3
驱动要求
- 现在需要NVIDIA驱动版本470+。
API变更
- 力传感器现在定义在组件上,而不是单个演员上(参见力传感器文档)。
- 添加了可选的ForceSensorProperties以微调力的报告方式(参见力传感器文档)。
- 添加了GPU质量矩阵API。
- 添加了创建非均匀地形的API。
- 将默认的接触收集模式从CC_LAST_SUBSTEP更改为CC_ALL_SUBSTEPS,这更准确,但在使用多个子步骤运行时可能会更慢。可以通过SimParams.physx.contact_collection覆盖。
RL环境变更
- RL框架和所有RL环境已移至https://github.com/NVIDIA-Omniverse/IsaacGymEnvs。
- RL文档现在可以在https://github.com/NVIDIA-Omniverse/IsaacGymEnvs/blob/main/README.md和docs文件夹中找到。请参阅框架文档了解更新现有RL环境所需的更改。
Bug修复和改进
- 在PhysX中增加了演员身体和关节的数量限制。
- 修复了GPU管道下随机化刚体属性的bug。
- 修复了GPU管道下设置DOF位置目标的bug。
- 修复了倾斜平面渲染。
- 更新docker基础镜像为https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel_21-09.html
- 添加了在docker中运行时的查看器支持。
- 修复了GPU仿真中与演员缩放相关的不稳定性。在使用GPU管道时改变质量属性仍有一些限制,参见演员缩放。
1.0.preview2
API + 命令行参数变更
- 仿真API和组件选择的命令行参数已更改,现在在RL示例和通用编程示例之间保持一致:
- 删除了
--physx_gpu
命令行选项。 --sim_device
用于指定仿真设备。它可以采取cpu
或cuda:n
作为选项。--pipeline
用于明确选择cpu或gpu张量管道API。
- 删除了
- 改进并扩展了设置实验名称的命令行参数:
--experiment
命令行选项替代了--experiment_name
。- 添加了
--metadata
标志。与--experiment <experiment name>
一起使用时,会将关于物理引擎、仿真组件、管道和域随机化的额外信息添加到实验名称中。
- 重新设计了应用刚体力的API:
- 新的体力API允许应用扭矩并使用不同的坐标空间来力、扭矩和位置向量。
apply_body_force
函数被apply_body_forces
和apply_body_force_at_pos
替代(参见API文档)。apply_rigid_body_force_tensor
函数被apply_rigid_body_force_tensors
和apply_rigid_body_force_at_pos_tensors
替代(参见张量API文档)。
- 仿真确定性得到改善:
- 在RL示例中可以设置
--seed
参数来指定使用哪个随机种子。明确设置种子应该在运行之间产生确定性结果。 - 默认情况下,种子设置为-1,这将为每次运行生成一个随机种子。
- 现在可以设置
--torch_deterministic
参数以在PyTorch操作中强制额外的确定性,但代价是性能。 - 有关更多详情,请参阅强化学习示例页面上的可复现性部分。
- 在RL示例中可以设置
- 基础RL任务类已更新,为未来的多GPU训练支持做准备:
- 任何从RL基础任务类继承的用户环境也应该更新
- 设备根和文件路径现在可以从cfg文件中读取。
- 方法
attach_camera_to_body
现在采用命名枚举而不是整数参数来表示相机附件模式。 - docker镜像中的内容现在放在
/opt
下而不是/workspace
。
新特性
- 组件处理
- 在组件导入期间添加了对碰撞网格的凸分解支持。
- 现在使用Assimp进行网格加载。这意味着可以在MJCF或URDF组件中指定许多不同类型的网格(包括.dae、.stl、.obj等)。
- 添加了从URDF和MJCF文件中加载材料和(嵌入和非嵌入)纹理的支持。
- 添加了用平滑顶点法线或面法线覆盖从网格加载的法线的支持。
- 添加了在AssetOptions中显式覆盖惯性张量和质心的标志。
- 添加了从MJCF加载视觉盒子和材料的支持。
- 有关更多信息,请参见组件。
- 更新的图形用户界面和可视化选项
- 添加了从查看器获取鼠标位置和窗口大小的API支持
- 有关更多信息,请参见仿真设置。
- 与Shadow Hand环境和RL框架特性相关的更新
- 在默认的rl-pytorch RL框架中添加了自适应KL调度。这以前只在rl_games RL框架中可用。
- 在Shadow Hand环境中添加了不同的观察变体,以更紧密地匹配OpenAI的学习灵巧项目:https://openai.com/blog/learning-dexterity/
- 添加了使用它们的不对称观察和Shadow Hand训练示例的支持。
- 添加了使用LSTM策略和价
值函数进行训练的示例与rl_games。
- 添加了将控制频率设置为低于仿真频率的支持,以及向yaml配置中添加controlFrequencyInv参数以指定每个控制步骤应执行多少仿真步骤。
- 向域随机化选项中添加了相关噪声。
- 添加了对域随机化中演员参数的自定义分布的支持。
- 其他组件和示例更新:
- 添加了新的训练环境:ANYmal四足机器人、Quadcopter和NASA Ingenuity直升机。
- 与可扩展性相关的容器化更新:
- 添加了对Python 3.8的支持。
- 添加了在docker中使用可用图形驱动进行无头渲染的支持。
- 改善了CUDA上下文处理,为多GPU训练支持做准备
- 额外的新特性:
- 添加了对演员运行时缩放的支持。
- 添加了在改变其质量时重新计算刚体的惯性张量的支持。
- 添加了在对身体施加力时指定位置偏移的支持。
- 更改了max_depenetration_velocity和bounce_threshold_velocity的默认值。
- 添加了CoordinateSpace枚举以在本地、env或全球空间中指定位置偏移。
Bug修复
- 修复了观察和行动噪声的问题。
- 修复了CMU和NV人形的关节限制范围。
- 修复了人形训练的轴错误。
- 修复了PhysX后端碰撞网格的错误可视化。
- 修复了z-up仿真中环境间距的bug。
- 修复了从MJCF导入的网格、圆柱或椭球体可能具有不正确摩擦属性的bug。
- 修复了程序化创建的原始形状在Flex中可能具有不正确厚度的bug。
- 修复了在GPU上获取净接触力张量时可能发生的崩溃。
- 修复了在GPU管道中提交混合控制张量的问题。
- 修复了z-up相机视图矩阵计算、lookAt函数和鼠标拖动方向的问题。
- 修复了返回错误惯性张量的刚体属性获取器。
- PhysX:修复了GPU上聚合偶尔崩溃的问题。
- PhysX:修复了GPU上凸包-胶囊碰撞中可能的缓冲区溢出。
- PhysX:修复了小网格的稳定性问题。
- PhysX:对TGS弹性进行了改进。
- PhysX:修复了GPU管道中应用身体力的问题。
- PhysX:修复了GPU管道中应用身体扭矩的问题。
- PhysX:修复了导致非确定性的各种问题。
- 修复了GPU管道中的同步问题。
- 修复了z-up相机视图矩阵计算的问题。
- 修复了设置演员的刚性形状属性的问题。
- 改进了输入张量的错误检查。
- 当在GPU管道中进行仿真时调用仅限CPU的函数时,改进了错误报告。
- 修复了计算变换逆的bug。
- 修复了由驱动程序bug引起的Flex启动时崩溃。
- 修复了body_physics_props示例中地面平面摩擦的bug。
后面自己考古吧~~我不翻译了,感觉没必要挖这些历史版本