이 포스트는 로봇 시뮬레이션을 위해서 ROD2와 Gazebo를 Docker를 이용해서 Windows에 설치하는 방법에 대한 설명입니다.
이 과정은 다음 환경에서 구성했습니다.
- windows 11
- Docker Desktop v4.19.0
이 포스트는 다음 과정을 완료한 후에 참고하시길 바랍니다.
1. VcXsrv Windows X Server 설치하기
- Docker에서 사용하는 Linux는 화면을 출력하기 위해서는 X11이라는 프로토콜을 이용합니다. X11을 Windows에서 사용할 수 있도록 하기 위한 VcXsrv라는 프로그램을 설치하는 과정입니다.
- VcXsrv Windows X Server 사이트에 접속 후 설치 프로그램을 다운로드합니다.
- 다운로드한 설치 프로그램을 더블클릭해서 ‘VcXsrv’ 프로그램을 설치합니다.
- Windows 프로그램에서 ‘XLaunch’를 실행합니다.
- ‘Display settings’ 창에서 ‘Display number’를 0으로 설정하고 ‘다음’ 버튼을 누릅니다.
- ‘Client startup’ 창에서는 기본 값 그대로 ‘다음’ 버튼을 누릅니다.
- ‘Extra settings’ 창에서 ‘Disable access control’을 선택 후 ‘다음’ 버튼을 누릅니다.
- ‘Finish configuration’ 창에서 ‘마침’ 버튼을 누르면 설정이 완료됩니다. ‘Save configuration’ 버튼을 눌러서 설정값을 저장해 놓으면 이후에는 저장된 설정값을 더블 클릭하면 현재 설정으로 ‘VcXsrv’가 실행됩니다.
- Windows의 ‘작업 표시줄’의 ‘숨겨진 아이콘 표시’를 누르면 ‘XLaunch’ 아이콘을 확인할 수 있습니다.
2. ROS2 설치
- 다음은 Docker를 이용해 ROS2를 설치하는 과정입니다.
- ROS2 Humble Distributions 사이트에 접속하면 다운로드 가능한 ROS2 버전을 확인할 수 있습니다. 현재 기준 가장 최신 버전인 Humble을 설치하겠습니다.
- 적당한 위치에 ‘ros.yml’ 파일을 만들고 내용을 아래와 같이 편집합니다.
name: ros
services:
ros2:
image: osrf/ros:humble-desktop-full
container_name: ros-ros2
environment:
DISPLAY: host.docker.internal:0.0
ports:
- “10000:10000”
stdin_open: true
tty: true
entrypoint: /bin/bash
- 아래 명령을 ‘Windows Power Shell’에서 실행해서 ROS2 docker 이미지를 설치합니다.
$ docker-compose -f .\ros.yml up
- 아래와 같이 ROS2 docker 컨테이너가 실행 중인 것을 확인할 수 있습니다.
- 다음은 아래 명령을 실행해서 ROS2 컨테이너에 접속합니다. 이후로는 편의상 Windows에서 실행하는 명령은 ‘$’으로 표현하고 컨테이너에서 실행하는 명령은 ‘#’으로 표현하겠습니다.
- 아래 명령으로 로그인 시 ROS2 환경이 자동으로 설정되도록 합니다.
# echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
- ROS2 환경을 설정하기 위해 로그아웃 후 다시 로그인합니다.
# exit
$ docker exec -it ros-ros2 /bin/bash
- ROS2에서 Windows로 화면이 정상적으로 출력되는지 확인을 위해 아래 명령을 실행해서 turtlesim을 실행합니다. Windows에 아래와 같은 화면이 실행되면 정상입니다.
# ros2 run turtlesim turtlesim_node
- 다른 ‘Windows Power Shell’을 실행하고 ROS2에 접속 후 아래 명령을 실행해서 key를 입력받을 수 있는 ‘turtle_teleop_key’ 프로그램을 실행합니다.
$ docker exec -it ros-ros2 /bin/bash
# ros2 run turtlesim turtle_teleop_key
- 키보드의 상하좌우 화살표를 움직이면 화면의 로봇이 움직이는 것을 확인할 수 있습니다. 확인이 끝나면 CTRL+C를 눌러서 프로그램 두 개를 모두 종료합니다.
3. 관련 프로그램 및 Gazebo 설치하기
- Gazebo는 로봇을 시뮬레이션할 수 있는 프로그램입니다. 실제로 로봇을 구축하고 테스트하기에는 너무 많은 노력이 필요하므로 시뮬레이션을 충분히 해본 후 실제 로봇을 구축하는 것이 더 효율적입니다.
- 비슷한 툴에는 Unity Robotics Simulation, NVIDIA Isaac Sim 등이 있습니다.
- ROS2 컨테이너에서 아래 명령을 실행해서 관련 프로그램 정보를 갱신합니다.
# apt update
- 아래 명령을 실행해서 변경된 프로그램을 업데이트합니다.
# apt upgrade
- ROS 컨테이너에 추가로 필요한 프로그램 ‘git’, ‘python3-pip’를 아래 명령으로 설치합니다.
# apt install -y git python3-pip
- Gazebo 관련 프로그램을 아래 명령을 실행해서 설치합니다.
# apt install -y python3-colcon-common-extensions \
ros-humble-joint-state-publisher-gui \
ros-humble-gazebo-plugins \
ros-humble-joint-state-publisher \
ros-humble-gazebo-ros
- 아래 명령을 실행해서 Gazebo를 실행합니다.
# gazebo
- 아래와 같은 화면이 실행되면 정상입니다.
'로봇 > ROS' 카테고리의 다른 글
ROS2 Minimal Tutorial - Topic (0) | 2023.07.14 |
---|---|
ROS2 Minimal Tutorial - Basic (0) | 2023.07.13 |
ROS1에 CygLiDAR 연동하기 (0) | 2023.01.19 |
ROS1에 YOLO v5 연동하기 (1) | 2023.01.18 |
Ubuntu에서 Docker를 이용한 ROS1, ROS2 설치 (0) | 2023.01.17 |