11-10 08:59
Notice
Recent Posts
Recent Comments
관리 메뉴

BAN2ARU

[Humble/Docker] ubuntu에서 ROS2 humble docker 환경 구축 본문

Study/Nav2

[Humble/Docker] ubuntu에서 ROS2 humble docker 환경 구축

밴나루 2024. 9. 18. 19:06
반응형

1. docker pull

nvidia dockerhub 중에서 cuda 및 cudnn이 설치되어있는 버전으로 docker image를 pull하자.

docker pull nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04
  • 만약 docker 설치시 nvidia-docker2를 설치하지 않은 경우는 아래 명령어를 통해 nvidia-docker2 또한 설치하여주자 (이는 이후 docker run 실행시 --runtime nvidia를 실행하기 위함임)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list \
  && \
    sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/override.conf <<EOF
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --host=fd:// --add-runtime=nvidia=/usr/bin/nvidia-container-runtime
EOF
sudo systemctl daemon-reload \
  && sudo systemctl restart docker

2. docker run

docker를 실행시켜주자. GUI실행을 위하여 x11 및 QT 관련하여 옵션을 추가하여 진행하였음. docker를 실행하는 보드 터미널에 xhost +local:docker를 통해 docker의 접근을 허용시켜 주자

docker run --name nav2 -it --runtime nvidia --privileged -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/.Xauthority:/root/.Xauthority:rw -v /etc/nv_tegra_release:/etc/nv_tegra_release -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 --net host nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04 /bin/bash

docker container에 접속한 후 package 업데이트 및 업그레이드를 수행함

apt-get update
apt install sudo
sudo apt-get upgrade

3. Humble install

Humble 공식 홈페이지를 기반으로 ros2 humble을 설치하여 주자. ros2 humble을 선택한 이유는 해당 링크를 참조하자!

3.1. locale 설정

제일 우선적으로 locale을 설정하여주자

sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8

locale 설정이 UTF-8로 잘되어있는지 확인하여주자

locale

3.2. Source 설치

우선 Ubuntu Universe repository를 활성화하자

sudo apt install software-properties-common
sudo add-apt-repository universe

ROS2 GPG 키를 추가해주자

sudo apt update && 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

repository를 추가해주자

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

3.3. ROS2 package 설치

패키지 update 및 upgrade를 수행해준다

sudo apt update && sudo apt upgrade

Desktop 버전을 설치하여주자

sudo apt install ros-humble-desktop

Development tool을 설치하여 주자

sudo apt install ros-dev-tools

3.4. 환경설정

최종적으로 setup script를 sourcing하면 된다

source /opt/ros/humble/setup.bash

매 터미널에 실행하기가 번거롭다면 bashrc에 추가하여주자

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
728x90
Comments