Step 1 : Setup environment (docker & ROS2)

Langkah pertama memulai proyek robotika: Instalasi Docker dan ROS 2 Humble di Raspberry Pi 5. Tutorial lengkap dengan konfigurasi Docker Compose agar efisien dan rapi.

Setup environment pengembangan robotika menggunakan Docker dan ROS2 Humble

Setelah memikirkan dengan segala pertimbangan, dan memutuskan dengan menyadari bahwa disetiap keputusan ada resiko yang akan dihadapi. sekarang kita beraksi, agar semua tidak menjadi fiksi, dan langkah pertama kita tentunya adalah Setup environment pastinya.

Sebelumnya berikut Hardware dan OS yang saya gunakan:

  • Hardware -> Raspberry Pi 5 varian 16GB RAM
  • OS -> Raspberry Pi OS Bookworm

Sekarang kita mulai instalasi-nya:

1. Install docker & docker compose

# Kita mulai dengan melakukan Update dan Upgrade pada OS nya dulu kawan kawan, 
# untuk memastikan semua paket sistem Anda berada dalam versi terbaru.

sudo apt update && sudo apt upgrade -y

# Lalu install docker dengan convenience script resmi dari docker, skrip ini akan 
# mendeteksi arsitektur (32-bit atau 64-bit) dan mengonfigurasi repositori 
# secara otomatis.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Secara default, kita harus menggunakan sudo untuk menjalankan perintah docker
# nah kalau kamu mau bisa menggunakan user yang biasa kamu pakai tanpa sudo
# pakai ini

sudo usermod -aG docker $USER

# Verifikasi instalasinya dengan ini ya kawan kawan

docker --version

Oke sekarang docker telah siap, kita ke step berikutnya

2. ROS2 Humble
Setelah docker sudah terinstall dengan baik, berikutnya kita akan melakukan instalasi ROS2 Humble, berikut step by step nya

Siapkan direktori nya, dan masuk kedalam direktori ROS yang sudah kita buat

mkdir -p ~/ros2_ws
cd ~/ros2_ws

didalam direktori-nya kita buat file docker-compose.yaml

vim docker-compose.yaml

# isikan code berikut:

services:
  ros2:
    # Membangun image dari Dockerfile di direktori yang sama
    build:
      context: .
      dockerfile: Dockerfile
    
    container_name: ros2_humble

    # Networking dan IPC untuk performa maksimal ROS 2
    network_mode: host
    ipc: host

    # Agar container interaktif dan tetap menyala
    stdin_open: true
    tty: true

    environment:
      - RMW_IMPLEMENTATION=rmw_fastrtps_cpp

    volumes:
      - ./workspace:/root/ws

    command: bash

Simpan, dan buat Dockerfile-nya

vim Dockerfile

# isikan code berikut

# Gunakan base image ROS 2 Humble khusus ARM64
FROM arm64v8/ros:humble

# Hindari prompt interaktif saat instalasi
ENV DEBIAN_FRONTEND=noninteractive

# 1. Update dan Install Vim serta tools dasar untuk pengembangan Vision
RUN apt-get update && apt-get install -y \
    vim \
    git \
    curl \
    build-essential \
    python3-pip \
    ros-humble-cv-bridge \
    ros-humble-vision-opencv \
    && rm -rf /var/lib/apt/lists/*

# 2. Set working directory sesuai dengan volume di docker-compose
WORKDIR /root/ws

# 3. Optimasi Terminal: Alias dan Auto-source ROS
# Biar nggak perlu ketik 'source /opt/ros/humble/setup.bash' tiap masuk container
RUN echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc \
    && echo "alias ll='ls -la'" >> /root/.bashrc

# Perintah default
CMD ["bash"]

Simpan dan jalankan

docker compose up -d

Terakhir masuk ke dalam kontainer-nya dan jalankan

docker exec -it ros2_humble bash

source /opt/ros/humble/setup.bash
ros2 topic list

Kalau tidak ada error seharusnya semua akan baik baik saja. Sampai disini instalasi docker dan ROS2 Humble selesai, dipostingan berikutnya kita akan lakukan apa ya?

— Prahastha