Isaac Lab 学习笔记:概述
Isaac Lab 主要用于机器人仿真,其对 Isaac Sim 进行了简化封装,并提供了 RL 所需的 Eviromnent 接口/基类等,相较于 Isaac Sim 而言,更加简洁、易于上手。Isaac Lab 的项目在 GitHub - isaac-sim/IsaacLab,提供了源代码及 Documents。
这篇文章简要梳理了 isaac lab 的代码架构及各模块的功能、相互关系,一定程度上帮助更好理解、使用 isaac lab。
1. 各模块简介
isaac lab 的核心代码位于 github/IsaacLab/source/extensions/isaac.lab/omni/isaac/lab 中,主要包括了 actuators、app、assets、controllers、devices、envs、managers、markers、scene、sensors、sim、terrains、utils几个部分。各模块的功能简述如下:
actuators 关节驱动器
actuator 是关节驱动器模型,给定关节的期望位置/速度/力矩等,可通过 actuator 计算得到应施加到关节上的位置/速度/力矩等。该模型的目的是,将真实世界中的关节控制对应到仿真环境中。例如,真实世界中,给定某个环节控制量,在仿真环境中施加什么样的控制量,才能使真实世界和虚拟环境中的关节运动实现一样的效果呢?这个就是驱动器需要做的事。
Actuator models augment the simulated articulation joints with an external drive dynamics model. The model is used to convert the user-provided joint commands (positions, velocities and efforts) into the desired joint positions, velocities and efforts that are applied to the simulated articulation.
The base class provides the interface for the actuator models. It is responsible for parsing the actuator parameters from the configuration and storing them as buffers. It also provides the interface for resetting the actuator state and computing the desired joint commands for the simulation.
For each actuator model, a corresponding configuration class is provided. The configuration class is used to parse the actuator parameters from the configuration. It also specifies the joint names for which the actuator model is applied. These names can be specified as regular expressions, which are matched against the joint names in the articulation.