Isaac 仿真
简介
Nvidia机器人项目的两个目标之一就是机器人的现实仿真。仿真的优势在于机器人系统和算法的开发、测试以及评估都可以在仿真环境中实现,而不需要真实机器人,这加速了开发速度。
Isaac Sim提供了以下工具:
-
模拟机器人动力学测试控制算法
-
模拟机器人传感器生成真实感相机、深度和分割图像、激光雷达、IMU
-
模拟不同的环境和场景,在不同的条件和环境下测试算法
-
模拟代理,机器人周围提供有趣动态环境的人类演员
-
将域随机化以创建具有随机变化的对象和环境属性的巨大且多样的训练集
使用isaac sim的高性能3d渲染器和真实物理引擎,您可以测试您的机器人、它与世界的交互以及它的传感器,就像您对实际硬件所做的那样。所有数据流都使用与真实robot相同的标准消息,因此您可以在整个应用程序中互换使用它们。例如,模拟相机发布的消息与实际相机硬件完全相同。模拟器还提供地面真实数据的倒带和回放功能。
isaac sim基于unreal engine 4.20.3。模拟器的主要组成部分是用于深度学习应用的世界模型、机器人模型、动态特性、虚拟传感器、虚拟执行器和地面真实信息。isaac sim通过isaac Bridge与isaac sdk通信。下图描述了isaac sim。
Setup
配置机器
这个配置要求还是相当高的,我使用的电脑的配置显示差一些,所以尝试一下。
Isacc Sim运行在ubuntu1804系统下以下为最小配置:
-
CPU: Intel i7-6800K
-
GPU: Nvidia GeForce GTX 1080 (minimum), NVIDIA Titan XP (recommended), RTX 2070 (Recommended)
-
Memory: 32 GB
-
Storage: 512 GB
-
OS: Ubuntu 18.04, 64-bit
For prerequisites required for building Isaac Sim on Linux, see /Engine/Build/BatchFiles/Linux/README.md.
-
CUDA 10.0 and a NVIDIA GPU driver that supports CUDA 10.0.
-
NVIDIA GPU driver version 418.74 or higher is recommended.
安装Vulkan SDK
- 下载最新版本的VulkanSDK:
安装 Isaac Sim
1. 从github下载Isaac Sim
使用以下步骤从github获取isaac sim-core包。下面的这些步骤是获取Unreal的代码,人家把代码放到github上private的,所以我们看不到,创建完帐号之后加入人家的组织获得授权就可以看到他的代码了。
-
创建一个Epic Unreal Engine帐号。
https://www.unrealengine.com/register
-
按照以下网站进行操作,连接上你的github帐号:
https://www.unrealengine.com/en-US/ue4-on-github
-
从以下网站中下载IsaacSim_1.2分支或者checkout到IsaacSim_1.2分支:
https://github.com/EpicGames/UnrealEngine
github上的isaac sim项目只包含isaac sim的核心。按照下面的说明访问使用isaac sdk的isaac sim的全部内容。
Build Isaac Sim with SDK Components
根据下面的说明获取Isaac的全部内容:
- 删除 Isaac Sim文件下的/Engine/Build/IsaacSimProject_1.2_Core.gitdeps.xml.
- 下载Isaac Sim Content XML并解压到IsaacSim 下的Engine/Build目录下
tar -xvzf IsaacSimProject_1.2.<build_number>.gitdeps.tar.gz -C <ISAAC_SIM_ROOT_PATH>/Engine/Build
- Download dependencies and content with the following command:
./Setup.sh
It may be required to run this script with sudo, the first time. When prompted, enter Y when asked if you agree to a license. Enter Y again when asked if you would like to overwrite some files.
- Generate Makefiles with the following command:
./GenerateProjectFiles.sh
- Generate path.json files with the following command:
./GenerateTestRobotPaths.sh
- Build Isaac Sim editor with the following command:
make && make IsaacSimProjectEditor