이 글을 보기 전에 먼저 "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
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 |
댓글