Release Installation

Table of Contents

Generic Installation

Ubuntu 22.04 LTS Installation

Follow the standard Ubuntu installation wizard:

  1. Language: English

  2. Keyboard Layout: Spanish - Spanish

  3. Connect to Internet if required.

  4. Set up installation: - Minimal Installation - Other options > Download updates while installing Ubuntu

  5. Erase disk and install Ubuntu

  6. Timezone: Madrid

  7. User setup: - Name: robot - Computer name: robot-id - Username: robot - Password: **** - Log in automatically

  8. 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:

  1. 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
  1. Change the default OS boot using a script: Create script /usr/local/sbin/toggle-default-boot-partition and make it executable. See original document for contents.

  2. Create script /usr/local/sbin/list-boot-partition to view boot entries. See original document for contents.

  3. 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

  1. Press F2 at boot to enter BIOS

  2. Navigate to Advanced > Power

  3. Set After Power Failure to Power On

  4. Save and exit

Jetway NF797-Q370

  1. Press supr at boot to enter BIOS

  2. Go to Chipset > PCH-IO Configuration

  3. Set State after G3 to Always On

  4. Enable Wake-on-LAN

  5. Save 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

  1. Update the system:

sudo apt-get update && sudo apt-get upgrade -y
  1. 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
  1. Setup fzf and .screenrc. See original document.

  2. Remove unused packages:

sudo apt-get remove brltty -y
  1. Enable remote desktop. Configure via GNOME settings and allow legacy VNC if needed.

  2. Configure keyring: open “Passwords and Keys” and clear login password.

  3. Set up SocketCAN via /etc/systemd/network/80-can.network file. See original for contents.

  4. Apply OS tweaks (power button, animations, screensaver, GRUB): see original.

  5. Virtual dummy HDMI: download archive and run configure_autoscreen.sh. Add dummy script to auto-enable HDMI output.

  6. Prevent network delays from unconnected interfaces. See systemd override config examples.

ROS 2 Installation

Container Installation (WIP)

  1. Authenticate to registry:

docker login https://registry.robotnik.ws
  1. Create docker-compose.yaml. See original for contents.

  2. 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