본문 바로가기
로봇 이야기/ros2

ROS2 Humble Docker 이미지 만들기

by 노땅엔진니어 2023. 3. 3.

이 글을 보기 전에 먼저 "ROS2 Foxy Docekr 이미지 만들기"(https://duvallee.tistory.com/25)를 보셔야 합니다.

ROS2 버전 형태에는 2가지가 있습니다.

  •  Recommended Version : 정식 버전으로 EOL(End Of Life)이 긴 LTS(Long Term Support)로써 보통 안정성에 중점을 둔 버전 입니다.
  • Development : 개발 버전으로 STS(Short Term Support)로써 안정성보다는 기능 향상에 중점을 둔 버전 입니다.

1. ROS2 Foxy Dokerfile에서 다른점

도커 이미지를 만드는데 foxy버전과 humble 버전의 크게 다른 점은 ros2의 버전과 우분투(ubuntu) 버전의 차이를 제외하고는 특별하게 다른 점이 없습니다.

도커 허브(docker-hub)로부터 이미지를 가져오기

foxy 버전은 ubuntu:20.04와 ros:foxy에서 다음과 같이 변경 됩니다.

FROM ubuntu:22.04
FROM ros:humble

ROS 데스크탑(desktop) 버전

당연한 이야기지만 foxy 버전의 데스크탑 버전은 ros-foxy-desktop이고 humble은 ros-humble-desktop 버전을 다음과 같이 설치를 합니다.

# -----------------------------------------------------------------------------
# ROS2 Desktop version
RUN apt-get update
RUN apt-get install -y ros-humble-desktop
RUN apt-get install -y ros-humble-joint-state-publisher-gui 
RUN apt-get install -y ros-humble-xacro 
RUN apt-get install -y python3-colcon-common-extensions 
RUN apt-get install -y python3-vcstool

Dockerfile

Dockerfile
0.01MB

 

 

1.1 도커 빌드(docker build)

Dockerfile이 있는 디렉토리에서 다음과 같이 이미지를 빌드 합니다.

$ docker build -t ros2-ubuntu-rtx1060:humble-jammy
  • jammy : 우분투(ubuntu) 22.04의 코드 이름 

1.2 도커 이미지 실행

도커 이미지는 1.1에서 직접 이미지를 생성하여 실행을 할 수도 있지만 도커-허브(docker-hub)에 다른 사람이 만들어 놓은 이미지를 실행 할 수 있습니다.

1.2.1 로컬 컴퓨터에 있는 이미지 실행

위에서 만든 도커 이미지는 다음과 같이 실행을 합니다.

$ docker run --rm -it --privileged  --net=host -e DISPLAY=$DISPLAY \
           -v /tmp/.X11-unix:/tmp/.X11-unix  \
           -v /tmp/runtime-user:/tmp/runtime-user \
           --name ros2-os -v $PWD:/home/user/project ros2-ubuntu-rtx1060:humble-jammy /bin/bash
  • 호스트 컴퓨터의 현재 디렉토리는 가상 환경의 사용자(user)의 project 디렉토리와 공유 합니다.

1.2.2 도커-허브 있는 이미지 실행

이 글과 전글(ROS2 Foxy Docker 이미지 만들기)에서 생성된 도커 이미지를 도커-허브에 업로드를 했습니다. 직접 빌드를 하지 않고 다음과 같이 도커-허브에 있는 이미지로 간단하게 실행 해 볼 수 있습니다.

ROS2-Foxy 버전

$ docker run --rm -it --privileged  --net=host -e DISPLAY=$DISPLAY \
           -v /tmp/.X11-unix:/tmp/.X11-unix  \
           -v /tmp/runtime-user:/tmp/runtime-user \
           --name ros2-os -v $PWD:/home/user/project duvallee/ros2-ubuntu-rtx1060:foxy-focal /bin/bash

ROS2-Humble 버전

$ docker run --rm -it --privileged  --net=host -e DISPLAY=$DISPLAY \
           -v /tmp/.X11-unix:/tmp/.X11-unix  \
           -v /tmp/runtime-user:/tmp/runtime-user \
           --name ros2-os -v $PWD:/home/user/project duvallee/ros2-ubuntu-rtx1060:humble-jammy /bin/bash

 

'로봇 이야기 > ros2' 카테고리의 다른 글

ROS2 Foxy Docker 이미지 만들기  (0) 2023.03.02
기구학 (Kinematics) 이란?  (0) 2023.01.03
매니퓰레이터(manipulator) URDF 모델링  (0) 2022.12.31
xacro (XML macro)  (0) 2022.12.30
URDF(Unified Robot Description Format)란?  (0) 2022.12.13

댓글