Docker를 이용한 ROS2 설치

Hansol Kang·2024년 3월 30일
0

ROS2

목록 보기
1/1

Windows, Mac, Ubuntu 모두 적용 가능. 단, Ubuntu의 경우 Docker Desktop 설치가 필요없음.

1. Docker Desktop 설치

개인, 소규모 기업(직원 수 250명 미만이며 연 매출 1천만 달러 미만)은 무료. 이외 조건은 라이센스 정책 참고.

2. 이미지 다운로드

24년 3월 기준 LTS ROS2 humble 사용.
지원되는 LTS는 여기서 확인
humble 자리에 원하는 distro 명을 넣으면 됨.

docker pull osrf/ros:humble-desktop-full

3. 도커 실행

  • 컨테이너_이름: 내가 원하는 컨테이너 이름 넣으면 됨
  • -it 옵션은 터미널 명령어 사용하기 위한 옵션(interaction)
  • --privileged: 주요 자원 접근 옵션
  • --env="DISPLAY=host.docker.internal:0": GUI 출력
  • -v [호스트_경로]:[컨테이너_경로] : 공유하려는 패스
  • -w [시작_경로]: 컨테이너 진입 시 시작하는 경로
docker run --name [컨테이너_이름] -it --privileged --env="DISPLAY=host.docker.internal:0" –v [호스트_경로]:[컨테이너_경로] -w [시작_경로] osrf/ros:humble-desktop-full

예를 들면 아래와 같이 작성 가능

docker run --name ros-humble -it --privileged --env="DISPLAY=host.docker.internal:0" -v C:\Test:/root/ros_ws/ -w /root/ros_ws/ osrf/ros:humble-desktop-full

4. 환경 설정 및 ROS 기능 확인

아래 명령어를 통해 환경 설정.
source /opt/ros/humble/setup.bash 라는 명령어가 터미널 실행될 때마다 자동으로 실행되게 해줌.

echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc

# 새 터미널 열고, 아래 명령어로 추가 bash창(터미널 창) 띄움
docker exec -it [컨테이너_이름] /bin/bash

# 아래 명령어 입력
ros2 run demo_nodes_cpp talker

# 새 터미널 열고, 아래 명령어로 추가 bash창(터미널 창) 띄움
docker exec -it [컨테이너_이름] /bin/bash

# 아래 명령어 입력
ros2 run demo_nodes_cpp listener

정상적으로 수행되면, 아래와 같은 메시지를 볼 수 있음
talker

[INFO] [1711821616.655960025] [talker]: Publishing: 'Hello World: 1'
[INFO] [1711821617.655979865] [talker]: Publishing: 'Hello World: 2'
[INFO] [1711821618.655987506] [talker]: Publishing: 'Hello World: 3'
[INFO] [1711821619.655994046] [talker]: Publishing: 'Hello World: 4'
...

listener

[INFO] [1711821701.656355273] [listener]: I heard: [Hello World: 86]
[INFO] [1711821702.656500972] [listener]: I heard: [Hello World: 87]
[INFO] [1711821703.656330265] [listener]: I heard: [Hello World: 88]
[INFO] [1711821704.657049576] [listener]: I heard: [Hello World: 89]
[INFO] [1711821705.656365558] [listener]: I heard: [Hello World: 90]
...

번외 1. X Server 설정

rqt_graph, rviz2 같이 디스플레이 기능이 필요한 경우 설정이 필요함.

Windows

  • Xming을 설치해도 되는데, rviz를 쓸거면 VcXsrv를 설치
    VcXsrv 설치

XLaunch로 실행.(옵션은 그냥 디폴트로 해도 잘됨.)

rviz2

Mac

  • 참고로 애플 실리콘 계열에서 xquartz를 설치해도 rviz는 실행이 안되는 것 같음.(OpenGL이슈)
brew install --cask xquartz

번외2. VS Code로 접속하기

VS Code를 설치하고 아래의 extension들을 설치
Remote Explorer랑 Remote Development만 설치해도됨.

Remote Explorer(원격 탐색기)에서 Dev Container(개발 컨테이너)로 옵션을 바꾸면, 현재 컨테이너 목록들이 도시.
화살표 버튼을 누르면 접속되는 것을 확인할 수 있음.

profile
놀면 뭐하니 정리해

0개의 댓글