isaac gym - nvidia · isaac gym simple to get started procedural api for scene and model definition...
TRANSCRIPT
![Page 1: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/1.jpg)
Viktor Makoviichuk, 03.19.19
ISAAC GYM
![Page 2: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/2.jpg)
2
• Limited access to hardware
• Well-controlled experiments
• Good progress recently in Sim2Real
SIMULATION IN ROBOTICS
Quadruped Locomotion Dexterous Manipulation
OpenAI, 2018
Grasping in Clutter
Mahler and Goldberg, 2017UC Berkeley
Jemin et al, 2019
ETH
![Page 3: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/3.jpg)
3
MOTIVATIONReinforcement Learning
AlphaZero OpenAI Five
OpenAI, 2018Deepmind, 2018
![Page 4: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/4.jpg)
4
APPLICATIONS
Locomotion/Animation
Reinforcement Learning
Liang, Makoviychuk, Handa et al,
2018
NVIDIA
![Page 5: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/5.jpg)
5
APPLICATIONS
Sim2Real Robotics
Robotics
Chebotar, Handa, Makoviychuk,
et al, 2018
NVIDIA
![Page 6: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/6.jpg)
6
ISAAC GYMPlatform for high-performace AI Learning Experiments
![Page 7: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/7.jpg)
7
ISAAC GYM
Simple to get started
Procedural API for scene and model definition
Performance (from Python) and scalability
Fast, high-fidelity physics/multi-physics
Fast, high-quality image generation
Visualization and camera sensors, fast multi-camera rendering
Decoupling of graphics/physics
Learning algorithm/framework agnostic
Key Goals
![Page 8: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/8.jpg)
8
ISAAC GYM
Multiple physics backends
Multiple rendering backends
Support for multiple robot definition formats
Many environments simulated in parallel
Scalable:
Many simple/single-agent environments
Complex/multi-agent environments
Key Features
![Page 9: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/9.jpg)
9
ISAAC GYM
RTX
MJCF
URDF
Gym Graphics
Gym Framework Gym API(.so/.dll)
Simple
RL Module
Gym Physics
Importers
C++ Application
Gym Bindings
Python
OtherIsaac Gym
Asset
PhysX FleX
OpenSim
Other
![Page 10: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/10.jpg)
10
PHYSICS
New 4.x version for robotics, reinforcement learning and engineering applications
Maximal coordinate representation and articulations
Performance and scalability
From small training environments to large city-scale worlds
CPU and GPU simulation
PhysX
![Page 11: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/11.jpg)
11
PHYSICSPhysX
![Page 12: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/12.jpg)
12
PHYSICSFleX
• Research features backends
• Only GPU simulation
• New Newton solver
• Multi-physics
![Page 13: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/13.jpg)
13
PHYSICSFleX
• Multi-physics
• Rigid and FEM soft bodies
• Cloth, ropes
• Liquids
• Two-way coupling and force propagation between different phases
![Page 14: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/14.jpg)
14
PHYSICSFleX
![Page 15: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/15.jpg)
15
PHYSICSFleX
![Page 16: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/16.jpg)
16
RENDERINGMultiple Rendering Backends
• Vulkan-based Raster
• Fast raster graphics
• Simple materials and lights
• RTX-based Ray-Tracing
• High-fidelity hardware-accelerated ray tracing
• Support for MDL/complex materials
• Area lights, ambient occlusion, reflections, refraction
![Page 17: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/17.jpg)
17
RENDERINGCamera Sensors
• Camera sensors
• Free control
• Fixed
• Attach to bodies
• Render to image buffers
• Input to visual learning algorithms
• Output
• High Performance – thousands of images per second
![Page 18: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/18.jpg)
18
USING ISAAC GYM
• Use native C++ API or python bindings
• Scalable execution:
• Single laptop/desktop
• Cluster
• Remote viewer to visualize results of training on server/cluster
• Includes example environments / experiments
![Page 19: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/19.jpg)
19
USING ISAAC GYMfrom isaacgym import gymapi
# initialize gymgym = gymapi.acquire_gym()
# create a viewer (optional)viewer = gym.create_viewer(None, 1920, 1080);
# load assetrobot_asset = gym.load_asset("../assets", “franka.urdf")
# create a simulationsim = gym.create_sim()# get default sim paramsparams = gymapi.SimParams()gym.get_sim_params(sim, params)# set custom sim paramsparams.gravity = gymapi.Vec3(0.0, -9.8, 0.0)params.solver_type = 5params.num_outer_iterations = 4params.num_inner_iterations = 10params.relaxation = 0.75params.warm_start = 0.5gym.set_sim_params(sim, params)
![Page 20: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/20.jpg)
20
USING ISAAC GYM# specify number of envs in the simulation# - multiple envs can be stepped in parallelnum_envs = 1024
# specify environment spacing and boundsspacing = 2.0lower = gymapi.Vec3(-spacing, 0.0, -spacing)upper = gymapi.Vec3(spacing, spacing, spacing)
# initialize an array of environments using a procedural API# - easy to randomize propertiesfor i in range(num_envs):
# create envenv = gym.create_env(sim, lower, upper)
# add actorpose = gymapi.Transform(gymapi.Vec3(0.0, 2.0, 0.0), gymapi.Quat(-0.707107, 0.0, 0.0, 0.707107))gym.create_actor(env, robot_asset, pose, “franka")
# set some simulation parametersdt = 1.0 / 60.0num_substeps = 2
![Page 21: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/21.jpg)
21
USING ISAAC GYM# main loopwhile not gym.query_viewer_has_closed(viewer):
for i in range(num_envs):
torque = 20.0# get some useful handles (this can be done before the main loop)env = gym.get_env(sim, i)joint3_handle = gym.get_joint_handle(env, “franka", “panda_joint3")
# apply efforts to individual jointsgym.apply_joint_effort(env, “panda_joint3, torque)
# step the simulationgym.simulate(sim, dt, num_substeps)gym.fetch_results(sim, True)
# update the viewergym.step_graphics(sim)gym.draw_viewer(viewer, sim, True)
# Wait for dt to elapse in real time.# This synchronizes the physics simulation with the rendering rate.gym.sync_frame_time(sim)
![Page 22: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/22.jpg)
22
EXAMPLESLocomotion
![Page 23: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/23.jpg)
23
EXAMPLESLocomotion
![Page 24: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/24.jpg)
24
EXAMPLESLocomotion
![Page 25: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/25.jpg)
25
EXAMPLESRobotics
• Trained using RL in Isaac Gym
• RTX renderer, raytraced reflections and refractions
![Page 26: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/26.jpg)
26
WHAT’S NEXT?
• Further performance optimization:
• GPU observations and control
• No-copy communication of camera image to learning framework
• More training environments and examples: robotics, locomotion, multi-agent
• Physics:
• Support of deformable objects – soft bodies, cloth, etc
• Soft actuators
• Early access soon (Contact if interested!)
• General release in 2019
![Page 27: ISAAC GYM - Nvidia · ISAAC GYM Simple to get started Procedural API for scene and model definition Performance (from Python) and scalability Fast, high-fidelity physics/multi-physics](https://reader033.vdocuments.us/reader033/viewer/2022060503/5f1cc5f0cfec6272f77a7d77/html5/thumbnails/27.jpg)
Thank [email protected]