Windowing system

How to install EOS

  • BIOS/UEFI boot from USB, choose EOS NVIDIA
  • update with yay --mflags --nocheck -S python-future
  • yay -S openssh, enable sshd
  • clash-verge-rev-bin, system proxy Use auto config URL, same as firefox
  • install ibus-rime, enable ibus-wayland from system setting - vkeyboard, use F4 choose 简化字
  • visual-studio-code-bin, vim, ?ccache

conda create -n isaac38 python=3.8 numpy pandas jupyterlab matplotlib tensorboard
conda activate isaac38
conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.1 -c pytorch -c nvidia

# isaacgym:
#   np.float to float
#   export LD_LIBRARY_PATH=$CONDA_PREFIX/lib
#   conda install -c conda-forge libstdcxx-ng

Conda: Saving environment variables

cd $CONDA_PREFIX
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh

choreonoid

yay -S cmake eigen fmt python-numpy assimp ode fcl
QT_QPA_PLATFORM=xcb ./your_qt_application

Isaac Gym

  • robots are simulated using PhysX reduced coordinate articulations(root+dof, which usage are Get/Set)
  • use Temporal Gauss Seidel (TGS) solver to compute the future states of objects in our physics simulation
  • actor = rigid bodies + joints(dof states)
  • tensor API = data abstraction of PhysX
  • access physics data in flat buffers. physics state is exposed to python users as global tensors
  • the core of Isaac Gym is implemented using C++ and CUDA
  • sim2real:
    • asymmetric actor-critic & history
    • domain randomization (friction, mass…)
    • add noise to obs
    • randomly push
    • curriculum learning
    • normalization
    • delay
    • armature
    • actuator constrained
  • IsaacGym 不支持 capsule 需用 cylinder replace_cylinder_with_capsule = True
  • set_xxxxxx_tensor_indexed use actor indices
  • Whenever you call unwrap_tensor, make sure that there is a Python reference to that tensor that will prevent it from being garbage-collected
  • Another limitation with the GPU pipeline is that tensor refresh functions should be called only once per step, before any calls to tensor setter functions
  • Aggregates do not provide extra simulation functionality, but allow you to tell PhysX that a set of actors will be clustered together, which in turn allows PhysX to optimize its spatial data operations
  • state and error (in reward) must be standardized
pkg how to install usage
PhysHOI $pip install termcolor==1.1.0 rl-games==1.1.4  
urdf-viz $yay -S rust && cargo install urdf-viz $WINIT_UNIX_BACKEND=x11 urdf-viz file
urdfdom $yay -S graphviz urdfdom  
BVHView   $XDG_SESSION_TYPE=x11 bvhview