-
Notifications
You must be signed in to change notification settings - Fork 0
Waterloo Steel:Workstation Setup
[Last generated: Thu 2 Mar 2023 15:56:45 EST]
- 1. Ubuntu
- 2. Mac
- 3. Windows
> π£οΈ In this page, you may find useful step-by-step instructions to set-up your workstation:
search for bootable USB
$ sudo apt install net-tools
# now you can check ip:
$ ifconfig$ sudo apt update
$ sudo apt install openssh-server
# allow bypass firewall
$ sudo ufw allow ssh
# check ssh status:
$ sudo systemctl status ssh-
to connect to this server:
$ ssh username@ip_address # search for local network ip in case $ ip a
-
NO Machine: https://downloads.nomachine.com
-
Please check your OS version via:
$ arch
-
-
See detailed setup without monitor in [Waterloo-Steel/Platform-Setup.md]
$ sudo apt install curl
$ curl -sL https://raw.githubusercontent.com/wimpysworld/deb-get/main/deb-get | sudo -E bash -s install deb-get
# then install:
$ deb-get install zenith
$ deb-get update
$ deb-get upgradeπ Now you may access Ubuntu remotely, and setup following locally on Ubuntu or remotely
-
install zsh first
$ sudo apt install zsh # change to default in zsh $ sudo chsh -s $(which zsh)
-
Oh-my-zsh (THE hipster dev tool + coke)
$ sudo apt install curl $ sudo apt install git $ sudo apt install vim $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" # to modify themes: $ sudo vim ~/.zshrc ## Recommended themes: `ys` and `jonathan` $ source ~/.zshrc
βΉοΈ https://github.com/ohmyzsh/ohmyzsh
βΉοΈ Themes: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
-
Pretty/Easy-to-use Custom Mod: https://www.hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/ (except ctrl-b mod)
-
$ sudo apt install tmux
π Do not use multiple
sshclients, as they will make the system a bit heavier.
π₯ Tmux can still run in the background, even if the computer is disconnected from the internet.
β οΈ Normal ssh sessions without tmux will terminate the program if your ssh client is disconnected
-
set github editor to vim:
$ git config --global core.editor "vim"or have env variable in zshrc:
export GIT_EDITOR=vim -
Why VIM? ---> personal preference
-
generate key
$ ssh-keygen -t ed25519 -C "your_email@example.com" -
copy the public key
$ cat ~/.ssh/id_ed25519.pub -
paste to github SSH keys under personal account profile
π« I often use VSCode Remote SSH to modify codebase --Jack
-
Open VSCode, and make sure [Remote-SSH] is installed in EXTENSIONS: MARKETPLACE on left tab
-
[CMD + P] to open command pallette , and type command "> SSH" and select [Remote SSH: Connect to Host ...]
-
Enter host username and ip:
$ ssh username@ip_address
-
Now you can open folder in local VSCode editor and modify the remote files
-
:happy:
Install Catkin Workspace + Hardware Setup + ROS in one script
-
π¨ Pre-req:
-
**Make sure SSH authenticated with Github, see instruction @ **
-
ZSH as default Shell
-
-
Clone configurations:
$ cd ~ && git clone git@github.com:UW-Advanced-Robotics-Lab/uwarl-robot_configs.git
-
Select Configuration Branch:
$ cd ~/uwarl-robot_configs # check all available branches: $ git branch -a # EX: select `universal/ros1/data-analysis/session-feb-2023`: $ git checkout universal/ros1/data-analysis/session-feb-2023
-
πΆοΈ **Register your PC ** in
common.sh:$ vim ~/uwarl-robot_configs/scripts/common.sh-
Define Package Dependency:
# $USER = "oem": SUBMODULES_FOR_JX_OEM=( ## SUMMIT Side: "multimap_server_msgs" "system_monitor" "uwarl-multimap_server" "uwarl-robot_localization_utils" # "uwarl-robotnik_base_hw" # not needed for simulation ! # [x86_64 only] "uwarl-robotnik_msgs" "uwarl-robotnik_sensors" # "uwarl-summit_xl_common" "uwarl-summit_xl_robot" "waterloo_steel" ## WAM Side: "uwarl-barrett_wam_hw" # : Enabled for local dev. # [x86_64, aarch64/arm64] "uwarl-barrett_wam_msgs" "uwarl-realsense_ros" # [L515 Support] )
-
Define New PC and Network Parameters:
export ROS_JX_OEM_PC_IP=10.42.0.1 export ROS_JX_OEM_PC_HOSTNAME=10.42.0.1 export ROS_JX_OEM_PC_DISTRO=noetic
-
In
function source_ros(), register Out-of-network as below:elif [[ $USER = "oem" ]] && [[ $LOCAL_PC_IP = "$ROS_JX_OEM_PC_IP" ]]; then ic_wrn " - NON-Robot PC User [Jack's Parallel VM] detected!" ic_wrn " > We have detected a registered out-of-network PC, now forcing local host for ROS_MASTER_URI !" ros_core_sync "LOCAL-HOSTS" export ROS_IP=$ROS_JX_OEM_PC_IP export ROS_HOSTNAME=$ROS_JX_OEM_PC_HOSTNAME export ROS_MASTER_URI=http://localhost:11311/ export ROS_DISTRO=$ROS_JX_OEM_PC_DISTRO export DISPLAY=$DISPLAY_DEFAULT export PYTHONPATH_ROS=/usr/bin/python3 export PYTHONPATH=$PYTHONPATH_ROS
-
-
::hot_pepper: Register PC Submodules Mapping in
auto-config_UWARL_catkin_ws.zsh-
add attributes as below after line 80
[Optional]:
- You may uncomment
install_misc_utilities # misc apt- to install some apt packages (tree, tmux, git, zsh, vim)
- You may uncomment
install_librealsense_if_not- to install driver for librealsense cameras
- You may install PCAN by adding:
- NETDEV:
install_pcan_if_not NETDEV_SUPPORT - NON_NETDEV:
install_pcan_if_not NETDEV_SUPPORT
- NETDEV:
- You may install Dlink Dongle for wifi dongle provided in the lab:
install_dlink_dongle
- You may add
install_libbarrett_if_notforwam_nodehardware dependency
- You may uncomment
elif [[ $USER = "oem" ]] && [[ $LOCAL_PC_IP = "$ROS_JX_OEM_PC_IP" ]]; then ic " > Loading parallels workspace submodules:" # install_misc_utilities # misc apt # install_librealsense_if_not # for Intel Sensors load_submodules "${SUBMODULES_FOR_JX_OEM[@]}"
-
-
Install the repo and configure hardware with auto-script:
$ cd ~ && ./uwarl-robot_configs/scripts/auto-config_UWARL_catkin_ws.zsh
π this script will install automatically based on the user name (e.g. uwarl-orin) to identify the PC space
π₯ This will install ROS Noetic for you, if you have ubuntu 20.04 focal (like Jetson) , otherwise, you have to install manually OR add a script to it as well?
-
Reboot is Required if it is the first time installing libbarrett !!
-
Catkin Build:
# source robot config env & ros $ source ~/.zshrc # build: $ build_ws # from anywhere, which will does the job for you :P (Jack is too lazy) # source: $ source_ws # lemme know if we should auto-source after build, :wink:
-
Commit Config settings:
$ cd_config $ git status $ git commit -a # push to remote: $ git push
-
$ uname -r: OS check -
$ cat /prov/version_signature: identify kernel -
$ arp -a: Scan Local Network Devices and IPs -
$ tree -L 1: list hierarchy of directory in depth=1
-
EX: backup home directory [cite:how-to-backup]
sudo rsync -a --info=progress2 --exclude="lost+found" --exclude=".cache" /home/ /mnt/usbdrive/
[TODO]
[TODO]
Copyright Β© 2012-2021 - University of Waterloo - Advanced Robotics Lab
-
π·οΈ [ Lab ]:
-
π·οΈ [ Logbook ]:
-
π·οΈ [ Tips ]:
-
π·οΈ [ Waterloo Steel ]:
