# Important terminal commands ## Connect to Server TensorBoard\ `http://Adress:8080` login\ `ssh -i /privateKey -l user Adress` show GPU usage\ `$ watch -d -n 0.5 nvidia-smi` processes\ `$ htop` ## Docker commands Build Docker image\ `$ docker build -t roboskate:finn ./docker/RoboSkate/`\ `$ docker build -t roboskategpu2:finn ./docker/virtualscreen/` launch Docker container\ `$ docker run -it --gpus all --rm --name RoboLevel1 --privileged --mount type=bind,source="$(pwd)",target=/home/ubuntu/roboskate roboskategpu2:finn`\ `$ docker run -it --gpus all --rm --name roboskatecnn --mount type=bind,source="$(pwd)",target=/home/ubuntu/roboskate roboskatecnn:finn`\ `$ docker run -it --rm --name givemebackmyownership --mount type=bind,source="$(pwd)",target=/home/ubuntu/roboskate givemebackmyownership:finn` Show Docker log\ `docker logs roboskatecnn` Open docker shell\ `$ docker exec -it roboskate /bin/bash`\ Detach the container by pressing ctrl+p and ctrl+q one after another. List\ `$ docker container ls`\ `$ docker image list` remove\ `$ docker rmi image_name_or_id` ## Run scripts at Server restart server\ `$ sudo shutdown -r now` Start script in background and log to file.\ `$ nohup python3 -m scripts.python.RoboSkate.RoboSkateSB3_A2C > output_log_file.log &` ## VM setup (obsolete) Install Anaconda: https://www.digitalocean.com/community/tutorials/how-to-install-the-anaconda-python-distribution-on-debian-10 \ `$ pip install tensorboard`\ `$ pip install gym`\ `$ pip install stable-baselines3` ## Local commands start tensorboard\ `$ tensorboard --logdir ./scripts/python/RoboSkate/tensorboard//`\ `$ tensorboard --logdir ./rl-baselines3-zoo/logs/tensorboard/` Use remote RoboSkate\ `ssh -fNT -i /home/cmlrss2021-g1/.ssh/RoboSkateCCLRZprivateKey \ -L 50010:127.0.0.1:50010 \ -L 50011:127.0.0.1:50011 \ -L 50012:127.0.0.1:50012 \ -L 50013:127.0.0.1:50013 \ -L 50014:127.0.0.1:50014 \ -L 50015:127.0.0.1:50015 \ -L 50016:127.0.0.1:50016 \ -L 50017:127.0.0.1:50017 \ -L 50018:127.0.0.1:50018 \ -L 50019:127.0.0.1:50019 \ -l user adress` ## Start Docker with Remote RoboSkate 1. Start all RoboSkate instances manually on the LRZ server\ `nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50010 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50011 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50012 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50013 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50014 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50015 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50016 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50017 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50018 & nohup RoboSkate/games/RoboSkate/roboskate.x86_64 -nographics -batchmode -p 50019 &` 2. run container on Chair server with the corresponding number of environments ## Connect TensorBoard from Chair Server to LRZ server `chmod 400 ~/.ssh/RoboSkateGPUprivateKey` 1. login to LRZ Server 2. `$ mkdir /home/ubuntu/ChairGPUtensorboard` 3. `$ sshfs user@Adress:/home/cmlrss2021-g1/G1_RoboSkate/rl-baselines3-zoo/logs/tensorboard/ /home/ubuntu/ChairGPUtensorboard/ -o IdentityFile=/home/ubuntu/.ssh/RoboSkateGPUprivateKey` 4. `$ nohup tensorboard --logdir /home/ubuntu/ChairGPUtensorboard/ --port=8081 --bind_all > TensorBoardRemote.out &` 5. (unmount agein: `$ umount /home/ubuntu/ChairGPUtensorboard/`) ## Start traing with RL Baselines3 ZOO Use rl-baselines3-zoo as root folder. enjoy best agent local\ `python enjoy.py --algo sac --env RoboSkateNumerical-v0 --folder logs/ --load-best --env-kwargs headlessMode:False random_start_level:False startLevel:0 --exp-id 4` `python enjoy.py --algo sac --env RoboSkateSegmentation-v0 --folder logs/ --load-best --env-kwargs headlessMode:False random_start_level:False startLevel:0 show_image_reconstruction:True --exp-id 1 --n-timesteps 1000` Train Local (for testing)\ `python train.py --algo sac --env RoboSkateMultiInputPolicy-v0 --env-kwargs AutostartRoboSkate:False` ### Train on Server \ RoboSkateNumerical-v0 \ `nohup python train.py --algo sac --env RoboSkateNumerical-v0 --tensorboard-log logs/tensorboard -i ./logs/sac/RoboSkateNumerical-v0_1/best_model.zip --n-timesteps 6000000 --save-freq 50000 --env-kwargs random_start_level:False startLevel:0 startport:50051 headlessMode:True --save-replay-buffer > RoboSkateReduced_Level1.out &` RoboSkateMultiInputPolicy-v0 \ `python3 train.py --algo sac --env RoboSkateMultiInputPolicy-v0 --tensorboard-log logs/tensorboard -i ./logs/sac/RoboSkateMultiInputPolicy-v0_3/best_model.zip --n-timesteps 6000000 --save-freq 50000 --save-replay-buffer` RoboSkateSegmentation-v0 \ `python3 train.py --algo sac --env RoboSkateSegmentation-v0 --tensorboard-log logs/tensorboard -i ./logs/sac/RoboSkateSegmentation-v0_level1_wrongCheckpoint/best_model.zip --n-timesteps 6000000 --save-freq 50000 --env-kwargs random_start_level:False startLevel:0 headlessMode:False --save-replay-buffer` Start TensorBoard at LRZ Server\ `nohup tensorboard --bind_all --port 8080 --logdir /home/ubuntu/G1_RoboSkate/rl-baselines3-zoo/logs/tensorboard > TensorBoardLocal.out &`