Skip to content

Instantly share code, notes, and snippets.

@Demetrio92
Last active May 17, 2024 15:20
Show Gist options
  • Save Demetrio92/c986493cff3b4d791a42412179ec6264 to your computer and use it in GitHub Desktop.
Save Demetrio92/c986493cff3b4d791a42412179ec6264 to your computer and use it in GitHub Desktop.
reproduce_render_issue_oige
#task_name='Ant'
task_name='Humanoid'
# set up logging
log_dir=render_bug_logs_${task_name}
rm -r ${log_dir} 2>/dev/null
mkdir -p ${log_dir}
#docker rm -f $(docker ps -a -q) # for reproducibility remove all running containers
xhost +local:docker # optional: allow x-host forwarding to docker. Can be necessary on some linux setups
# build the docker if needed
docker build -t isaac-sim-oige -f docker/dockerfile .
# run docker as per documentation but
# add -d so we can then execute multiple runs in the same container
docker run --name isaac-sim-oige-container -it -d --gpus all -e "ACCEPT_EULA=Y" --rm --network=host \
-e "PRIVACY_CONSENT=Y" \
-v $HOME/.Xauthority:/root/.Xauthority \
-e DISPLAY \
-v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
-v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
-v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
-v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
-v ~/docker/isaac-sim/cache/computecache:/root/.nv/ComputeCache:rw \
-v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
-v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
-v ~/docker/isaac-sim/documents:/root/Documents:rw \
isaac-sim-oige
# Train with defaults in headless
echo ' ++ Training ++ '
docker exec -it -w /workspace/omniisaacgymenvs/omniisaacgymenvs isaac-sim-oige-container \
/isaac-sim/python.sh scripts/rlgames_train.py task=${task_name} headless=True \
> ${log_dir}/train_${task_name}_headless.log
# Test in headless
echo ' ++ Testing Headless ++ '
docker exec -it -w /workspace/omniisaacgymenvs/omniisaacgymenvs isaac-sim-oige-container \
/isaac-sim/python.sh scripts/rlgames_train.py task=${task_name} test=True headless=True \
checkpoint=/workspace/omniisaacgymenvs/omniisaacgymenvs/runs/${task_name}/nn/${task_name}.pth \
> ${log_dir}/test_${task_name}_headless.log
# Test in headfull
# Note: this takes a bit to startup as shaders for the rendering need to be compiled,
echo ' ++ Testing Headfull ++ '
docker exec -it -w /workspace/omniisaacgymenvs/omniisaacgymenvs isaac-sim-oige-container \
/isaac-sim/python.sh scripts/rlgames_train.py task=${task_name} test=True headless=False \
checkpoint=/workspace/omniisaacgymenvs/omniisaacgymenvs/runs/${task_name}/nn/${task_name}.pth \
> ${log_dir}/test_${task_name}_headfull.log
# Test in headless but with `enable_cameras=1` which produces a result exactly equivalent to `headless=False`
# Note: there is a delay as some visualization code is trying to access a window to render but cant
echo ' ++ Testing Headless with rendering ++ '
docker exec -it -w /workspace/omniisaacgymenvs/omniisaacgymenvs isaac-sim-oige-container \
/isaac-sim/python.sh scripts/rlgames_train.py task=${task_name} test=True headless=True \
task.sim.enable_cameras=True \
checkpoint=/workspace/omniisaacgymenvs/omniisaacgymenvs/runs/${task_name}/nn/${task_name}.pth \
> ${log_dir}/test_${task_name}_headless_cameras.log
printf "\n == ${task_name} Test; headless=True\n" >> ${log_dir}/${task_name}_comparison.log
cat ${log_dir}/test_${task_name}_headless.log | grep 'av reward' \
>> ${log_dir}/${task_name}_comparison.log
printf "\n == ${task_name} Test; headless=False\n" >> ${log_dir}/${task_name}_comparison.log
cat ${log_dir}/test_${task_name}_headfull.log | grep 'av reward' \
>> ${log_dir}/${task_name}_comparison.log
printf "\n == ${task_name} Test; headless=True enable_cameras=True == \n" >> ${log_dir}/${task_name}_comparison.log
cat ${log_dir}/test_${task_name}_headless_cameras.log | grep 'av reward' \
>> ${log_dir}/${task_name}_comparison.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment