ROS 2는 셸 환경을 이용한 작업 공간의 결합에 의존한다. ROS 2에서의 작업 공간은 개발 중인 시스템의 위치를 의미한다. 핵심 ROS 2의 작업 공간을 underlay
라 하고, 후속 로컬 작업 공간을 overlay
라 한다. ROS 2로 개발하는 경우에는 다양한 작업 공간이 활성화된다. 작업 공간의 결합은 ROS 2의 다양한 환경에서나, 다양한 패키지로부터의 개발을 더 쉽게 해준다. 또한 같은 컴퓨터에 여러 배포판의 ROS 2를 설치/전환할 수 있게 한다. 이는 셸을 열 때마다 설치 파일을 소싱하거나, 시작 스크립트에 source 명령을 추가함으로써 수행된다.
Setup 파일 소싱
ROS 2에 접근하기 위해서는 다음의 명령이 먼저 필요하다.
# Replace ".bash" with your shell if you're not using bash
# Possible values are: setup.bash, setup.sh, setup.zsh
source /opt/ros/foxy/setup.bash
ROS 2의 설치 위치에 따라 명령어가 다르므로, 파일 경로를 확인하자.
셸 시작 스크립트에 소싱
셸을 열 때마다 위의 명령을 수행시키는 것을 원치 않는다면, 시작 스크립트에 다음 명령을 추가한다.
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
시작 스크립트를 찾아 추가된 명령을 제거하면 이를 취소할 수 있다.
환경 변수 확인
ROS 2의 Setup 파일을 소싱하면 ROS 2 구동을 위한 몇 가지 환경변수가 설정되는데, 다음 명령을 통해 환경 변수가 올바르게 설정되었는지 확인할 수 있다.
printenv | grep -i ROS
ROS_DISTRO
와 ROS_VERSION
을 확인해보자. Foxy
를 사용한다면, 다음과 같을 것이다.
ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=foxy
만약 다르게 나온다면, ROS 2 패키지를 재설치해보자.
ROS_DOMAIN
ROS 2 에이전트의 고유한 수를 결정했다면, 다음 명령을 통해 환경 변수를 설정할 수 있다.
export ROS_DOMAIN_ID=<your_domain_id>
시작 스크립트에도 추가할 수 있다.
echo "export ROS_DOMAIN_ID=<your_domain_id>" >> ~/.bashrc