Windows, Mac, Ubuntu 모두 적용 가능. 단, Ubuntu의 경우 Docker Desktop 설치가 필요없음.
개인, 소규모 기업(직원 수 250명 미만이며 연 매출 1천만 달러 미만)은 무료. 이외 조건은 라이센스 정책 참고.
24년 3월 기준 LTS ROS2 humble 사용.
지원되는 LTS는 여기서 확인
humble 자리에 원하는 distro 명을 넣으면 됨.
docker pull osrf/ros:humble-desktop-full
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
아래 명령어를 통해 환경 설정.
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]
...
rqt_graph
, rviz2
같이 디스플레이 기능이 필요한 경우 설정이 필요함.
Windows
XLaunch로 실행.(옵션은 그냥 디폴트로 해도 잘됨.)
rviz2
Mac
brew install --cask xquartz
VS Code를 설치하고 아래의 extension들을 설치
Remote Explorer랑 Remote Development만 설치해도됨.
Remote Explorer(원격 탐색기)에서 Dev Container(개발 컨테이너)로 옵션을 바꾸면, 현재 컨테이너 목록들이 도시.
화살표 버튼을 누르면 접속되는 것을 확인할 수 있음.
좋은 자료 감사합니다. 그 전날 작업한 것들이 다 날아가던데 컴퓨터 끌때마다 이미지를 저장해줘야 하나요??