[ROS2] 환경설정
ROS2 이미지 설치
Windows WLS2 + Docker Desktop 환경으로 ROS humble 설치
1
docker pull osrf/ros:humble-desktop-full
완료되면 image에 osrf/ros 이미지가 추가된다
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 설치 이미지)
ros-humble contaier가 추가되었다
환경 설정
아래 명령어를 통해 환경 설정
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로 읽어온다는 뜻이다
이제 새로운 터미널에서 container에 접속해보자
docker desktop에서 container 이름을 확인할 수 있다
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
다음과 같이 로그가 출력된다
윈도우 PowerShell에서 리눅스 Terminator처럼 탭을 분할해서 사용할 수 있다
GUI 설정
rqt_graph
, rviz2
등을 디스플레이 기능을 사용하기 위한 설정
VcXsrv를 설치하고 아래의 명령어를 입력해서 GUI가 보이는지 확인
1
ros2 run rviz2 rviz2
VcXsrv란?
Windows에서 Docker나 WSL2와 같은 환경에서 GUI 프로그램을 표시할 때 사용할 수 있는 X Server 프로그램으로, 리눅스 GUI 애플리케이션을 Windows 환경에서 실행할 수 있게 해줌
Visual Studio Code 원격 연결
vscode Extensions에서 Remote Development를 설치하고 연결했다
워크스페이스로 이동
1
cd ~/ros_ws
아래 명령어로 개발환경 확인 가능
1
printenv | grep -i ROS
패키지 파일을 저장할 src 폴더를 생성하고, ROS2 빌드가 실행되는지 확인
1
2
mkdir src
colcon build
현재 위치가 워크스페이스 디렉토리인지 확인할 것 !
ls
명령어를 통해 파일 확인
build, install, log 파일이 생성되면 성공