09-17 16:42
Notice
Recent Posts
Recent Comments
반응형
관리 메뉴

BAN2ARU

[ROS2/FOXY] 튜토리얼 1. Configuring environment 본문

Study/ROS

[ROS2/FOXY] 튜토리얼 1. Configuring environment

밴나루 2023. 6. 1. 15:15

ROS-foxy 튜토리얼은 공식 홈페이지를 참조하여 작성함

 

목표 : ROS2 환경 준비하는 방법에 대해 배우기

Background

ROS2는 shell 환경을 사용해서 workspace를 결합한다(combine)는 개념이다. Workspace는 ROS 용어로 ROS2로 개발중인 시스템의 위치를 의미한다. core ROS2 workspace는 underlay로 불리고, subsequent local workspace는 overlay로 불린다. ROS2로 개발할 때에는 일반적으로 여러개의 workspace가 동시에 활성화된다.

Workspace를 결합하면 다양한 버전의 ROS2 또는 package들을 개발하기 편하다. 또한 동일한 컴퓨터에 여러개의 ROS2 배포판을 설치할 수 있으며 배포판들끼리 전환도 가능하다.

새로운 터미널(shell)을 열때마다 setup file을 source 해주거나, bashrc(shell startup script)에 source command를 한번 추가해주면 된다. setup file을 source해주지 않으면 ROS2 명령에 access하거나 찾거나 사용하는 모든 행위를 할 수 없다 → 즉 ROS2를 사용할 수 없다는 의미이다.

Prerequisites

해당 튜토리얼을 수행하기전에 ROS2 설치를 우선 수행해주어야 한다. 설치는 해당페이지에서 진행해주면 된다.

** 본인은 docker를 통해 받은 foxy image를 기반으로 진행할 예정이다. 해당부분은 이 링크를 참고하기 바람 **

Task

1. setup file을 source하기

ROS2 command에 접근하기 위해서는 shell을 열때마다 해당 command를 수행해주어야 한다.

source /opt/ros/foxy/setup.bash

2. shell startup script에 source command 추가하기

만약 매번 새로운 shell에다가 command를 작성하기 싫다면, shell startup script에 해당 command를 추가해주면 된다. 이를 수행하면 shell을 열때마다 자동으로 실행하게된다.

echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc

vi ~./bashrc를 하면 맨 마지막줄에 source /opt/ros/foxy/setup.bash 부분이 작성되어 있는 것을 확인할 수 있다. (만약 vi가 없다는 에러가 뜬다면 apt install vim을 통해 vim을 설치시켜주자)

3. 환경 변수 확인하기

환경 변수가 제대로 등록되었지 확인해주는 명령어이다.

printenv | grep -i ROS

ROS_VERSION, ROS_PYTHON_VERSION, ROS_DISTRO를 확인해주면된다.

ROS_VERSION=2
ROS_PYTHON_VERSION=3
ROS_DISTRO=foxy

만약 환경변수가 제대로 나오지 않는다면 ROS2 패키지를 다시 재설치하는 것을 권장한다.

3.1 ROS_DOMAIN_ID 변수

ROS_DOMAIN_ID는 ROS2에서 노드들이 상호작용할때 사용되는 id값으로 하나의 머신에서 여러개의 ROS2 시스템을 동시에 사용할때, ROS_DOMAIN_ID를 이용하여 각 시스템에서 노드간의 통신을 구분할 수 있다. 아래 명령어를 통해 ROS_DOMAIN_ID를 설정할 수 있다. (30말고 원하는 숫자 넣으셔도 됩니다)

export ROS_DOMAIN_ID=30

이 명령어를 shell startup script에 추가하여 기본값으로 설정할 수 있다.

echo "export ROS_DOMAIN_ID=30" >> ~/.bashrc

3.2 ROS_LOCALHOST_ONLY 변수

ROS_LOCALHOST_ONLY는 ROS2에서 노드간의 통신을 위한 네트워크 인터페이스를 설정하는 변수로, 이 변수가 설정되면 ROS2는 로컬 호스트에서만 통신을 수행한다. 이 변수는 기본적으로 비활성화되어있으며, 다음 명령어를 통해 활성화할 수 있다.

export ROS_LOCALHOST_ONLY=1

이 명령어를 shell startup script에 추가하여 기본값으로 설정할 수 있다.

echo "export ROS_LOCALHOST_ONLY=1" >> ~/.bashrc

Summary

ROS2 개발 환경은 사용하기 전에 제대로 설정해두어야한다. 설정은 다음과 같은 2가지 방법이 있다.

1. 매번 새로운 터미널(shell)에서 설정파일을 source해주기

2. bashrc(shell startup script)에 추가해주기

 

ROS2에서 패키지를 찾거나 사용하는데 문제가 발생하면 가장 먼저 환경변수를 확인해보는 것을 권장한다.

728x90
Comments