Post

[ROS2] 환경설정

[ROS2] 환경설정

ROS2 이미지 설치

Windows WLS2 + Docker Desktop 환경으로 ROS humble 설치

1
docker pull osrf/ros:humble-desktop-full

image.png
image.png

image.png

완료되면 image에 osrf/ros 이미지가 추가된다

image.png

Docker 실행

아래의 명령어로 컨테이너를 실행한다.

1
2
3
4
5
6
7
8
9
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

# --name ros-humble : 생성할 컨테이너의 이름을 ros-humble로 지정
# -it                : 터미널 입력을 활성화하고 인터렉티브 모드로 실행
# --privileged       : 호스트의 모든 하드웨어 리소스 접근 권한 부여
# --env="DISPLAY=host.docker.internal:0" : GUI를 사용할 때, 호스트 디스플레이로 연결하기 위한 환경 변수 설정
# -v C:\Test:/root/ros_ws/ : 호스트의 C:\Test 디렉터리를 컨테이너의 /root/ros_ws/ 디렉터리로 마운트
# -w /root/ros_ws/         : 컨테이너의 작업 디렉터리를 /root/ros_ws/로 설정
# osrf/ros:humble-desktop-full : 사용할 Docker 이미지 (ROS 2 Humble 버전의 Desktop Full 설치 이미지)

image.png

ros-humble contaier가 추가되었다

image.png

환경 설정

아래 명령어를 통해 환경 설정

container의 /root/.bashrc 에 해당 항목들을 등록한다

등록 후 터미널을 재실행하면 “ROS2 humble is activated!” 가 출력된다

1
2
3
4
5
6
7
8
echo "source /opt/ros/humble/setup.bash" >> /root/.bashrc
echo 'echo "ROS2 humble is activated!"' >> /root/.bashrc
# /opt/ros/humble/setup.bash 등록
echo "export ROS_DOMAIN_ID=13" >> /root/.bashrc
echo 'echo "ROS_DOMAIN_ID=13"' >> /root/.bashrc
# ROS_DOMAIN_ID=13 등록
echo "alias sb='source ~/.bashrc && echo \"bashrc is reloaded\"'" >> /root/.bashrc
# 새로고침 alias

source /opt/ros/humble/setup.bash 는 ros pkg들이 저장된 /opt/ros/humble 경로의 setup.bash를 source로 읽어온다는 뜻이다

image.png

이제 새로운 터미널에서 container에 접속해보자

docker desktop에서 container 이름을 확인할 수 있다

image.png

container 접속 명령어

1
2
docker exec -it [container_name] /bin/bash
# docker exec -it 8e674775766f /bin/bash

터미널 1에서 talker 실행

1
ros2 run demo_nodes_cpp talker

터미널 2에서 listener 실행

1
ros2 run demo_nodes_cpp listener

다음과 같이 로그가 출력된다

image.png

윈도우 PowerShell에서 리눅스 Terminator처럼 탭을 분할해서 사용할 수 있다

GUI 설정

rqt_graphrviz2 등을 디스플레이 기능을 사용하기 위한 설정

VcXsrv를 설치하고 아래의 명령어를 입력해서 GUI가 보이는지 확인

1
ros2 run rviz2 rviz2

VcXsrv란?
Windows에서 Docker나 WSL2와 같은 환경에서 GUI 프로그램을 표시할 때 사용할 수 있는 X Server 프로그램으로, 리눅스 GUI 애플리케이션을 Windows 환경에서 실행할 수 있게 해줌

image.png

Visual Studio Code 원격 연결

vscode Extensions에서 Remote Development를 설치하고 연결했다

워크스페이스로 이동

1
cd ~/ros_ws

아래 명령어로 개발환경 확인 가능

1
printenv | grep -i ROS

image.png

패키지 파일을 저장할 src 폴더를 생성하고, ROS2 빌드가 실행되는지 확인

1
2
mkdir src
colcon build

현재 위치가 워크스페이스 디렉토리인지 확인할 것 !

ls 명령어를 통해 파일 확인

build, install, log 파일이 생성되면 성공

image.png

This post is licensed under CC BY 4.0 by the author.