Release Installation
Table of Contents
Generic Installation
Ubuntu 22.04 LTS Installation
Follow the standard Ubuntu installation wizard:
Language: English
Keyboard Layout: Spanish - Spanish
Connect to Internet if required.
Set up installation: - Minimal Installation - Other options > Download updates while installing Ubuntu
Erase disk and install Ubuntu
Timezone: Madrid
User setup: - Name: robot - Computer name: robot-id - Username: robot - Password: **** - Log in automatically
Skip welcome screens and disable privacy.
Tip
For more info, visit the official Ubuntu installation tutorial.
1.1 Dual Boot (OPTIONAL)
If dual booting with Ubuntu 20.04 and 22.04, install 20.04 first. Then:
Configure GRUB to remember last boot:
sudo sed -i '/^GRUB_SAVEDEFAULT=/d;s/^GRUB_DEFAULT=.*/GRUB_DEFAULT=saved\nGRUB_SAVEDEFAULT=true/' /etc/default/grub && \
sudo update-grub
Change the default OS boot using a script: Create script
/usr/local/sbin/toggle-default-boot-partitionand make it executable. See original document for contents.Create script
/usr/local/sbin/list-boot-partitionto view boot entries. See original document for contents.How to use:
sudo list-boot-partition
sudo toggle-default-boot-partition -b [BOOT ENTRY]
Note
Use the main number, submenu entries are not supported.
1.1.1 Desktop Icons (Ubuntu 22.04)
Create launcher for toggling GRUB boot. Refer to the original document for exact .desktop file contents.
1.1.2 Desktop Icons (Ubuntu 20.04)
Same as above, with reversed boot entry numbers.
BIOS Setup
Intel NUC
Press
F2at boot to enter BIOSNavigate to
Advanced > PowerSet
After Power FailuretoPower OnSave and exit
Jetway NF797-Q370
Press
suprat boot to enter BIOSGo to
Chipset > PCH-IO ConfigurationSet
State after G3toAlways OnEnable
Wake-on-LANSave and exit
OS Customization
Refer to sections for network config, wallpaper, updates, screen settings, GRUB tweaks, SocketCAN, virtual dummy HDMI, and more. Rewritten per section later.
Prerequisites
Update the system:
sudo apt-get update && sudo apt-get upgrade -y
Install packages (Terminator, Docker, OpenSSH, Screen):
sudo apt-get install -y terminator htop git vim aria2 screen curl openssh-server
curl -fsSL https://get.docker.com | sudo bash
sudo usermod -a -G docker $USER
Setup fzf and .screenrc. See original document.
Remove unused packages:
sudo apt-get remove brltty -y
Enable remote desktop. Configure via GNOME settings and allow legacy VNC if needed.
Configure keyring: open “Passwords and Keys” and clear login password.
Set up SocketCAN via
/etc/systemd/network/80-can.networkfile. See original for contents.Apply OS tweaks (power button, animations, screensaver, GRUB): see original.
Virtual dummy HDMI: download archive and run configure_autoscreen.sh. Add dummy script to auto-enable HDMI output.
Prevent network delays from unconnected interfaces. See systemd override config examples.
ROS 2 Installation
Native Installation on Ubuntu 22.04 (RECOMMENDED)
Add APT repo and public keys:
sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
Add ROS 2 sources to APT:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Update and upgrade:
sudo apt-get update && sudo apt-fast upgrade -y
Install ROS 2 Humble and related packages:
sudo apt-fast install ros-humble-desktop-full ros-dev-tools -y
Configure .bashrc:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
source ~/.bashrc
Download robot release and place in ~/robot_ws/src/robot_packages
Install dependencies with rosdep
Compile using colcon build
Configure using provided script configure.sh
Check README.md
Note
If issues arise, revisit auto-updates disabling from earlier section.
Container Installation (WIP)
Authenticate to registry:
docker login https://registry.robotnik.ws
Create docker-compose.yaml. See original for contents.
Run with:
docker compose up -d
Robot Specific Installation
Initial Configuration
If robot doesn’t boot, revisit BIOS setup.
Set robot serial number in:
/etc/hostname/etc/hosts~/.bashrc(ROS_MASTER_URI)
Update router SSID via 192.168.0.1 if applicable.
PAD
PS4:
Use bluetooth_setup.sh to configure dongle
Pair with Share + PS buttons
Test with jstest /dev/input/js_base
PS5:
Pair via GNOME Bluetooth settings
Create udev rule for /dev/input/js_base
Reload udev and restart
Sensors and Components
Intel RealSense:
Add Intel repo and install packages:
sudo mkdir -p /etc/apt/keyrings
curl -sSf https://librealsense.intel.com/Debian/librealsense.pgp | sudo tee /etc/apt/keyrings/librealsense.pgp > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/librealsense.pgp] https://librealsense.intel.com/Debian/apt-repo `lsb_release -cs` main" | \
sudo tee /etc/apt/sources.list.d/librealsense.list
sudo apt-get update
sudo apt-fast -y install librealsense2-dkms librealsense2-utils