티스토리 친구하기

본문 바로가기

Robotics/ROS2 참고자료

ROS2 underlay overlay

728x90

ROS2에서 overlay와 underlay의 개념

underlay: ROS 2 설치의 기본 패키지와 라이브러리를 포함하는 디렉토리

overlay: 개발자가 추가로 설치한 패키지와 라이브러리를 포함하는 디렉토리

 

ROS2 foxy를 설치했다면 기본적으로 /opt/ros/foxy 디렉토리에 underlay가 생성됩니다. 이 underlay에는 ROS2의 기본 패키지와 라이브러리가 포함됩니다.

 

이제 개발자는 ROS2를 이용해서 무언가를 만들고 싶습니다. 개발자는 어플리케이션을 개발하기 위해 필요한 패키지를 작성합니다. 그런데 이 패키지는 개발자가 만든 것이기 때문에, ROS2를 설치할 때 기본적으로 만들어진 underlay에 포함되지 않습니다. 따라서 이 패키지는 overlay에 추가해야 합니다.

 

개발자는 /home/user/workspace/overlay 디렉토리를 만들고, 이 안에 개발하고 싶은 패키지를 만듭니다. 패키지 이름은 underlay 디렉토리의 패키지 이름과 중복되지 않도록 생성해야 합니다.

 

이제 개발자는 여러가지 패키지를 기반으로 어플리케이션을 만들고 싶습니다. 개발자는 어플리케이션을 만들때 필요한 패키지를 overlay 디렉터리에 가져올 수 있습니다. 만약 개발자가 underlay 디렉토리에서 가져와야 하는 패키지가 있다면, ROS2는 먼저 overlay 디렉터리에서 찾아보고, 찾을 수 없으면 underlay 디렉토리에서 패키지를 찾습니다.

 

따라서 개발자는 개발하는 어플리케이션을 위한 패키지를 만들어서 overlay 디렉토리에 추가하고, ROS2에서 필요한 패키지를 underlay에서 가져오면서, 개발을 할 수 있습니다.

 

underlay가 필요한 이유

1. underlay에는 ROS2 어플리케이션을 개발하고 실행하는데 필요한 최소한의 패키지와 라이브러리를 제공하기 때문에, ROS2 어플리케이션을 보다 쉽게 작성할 수 있도록 돕습니다.

 

2. ROS2 패키지의 의존성을 해결하는데 사용합니다. ROS2 패키지는 다른 패키지에 의존할 수 있습니다. 예를 들면, 터틀봇 패키지는 ROS2의 기본 패키지인 ros2_control, ros2_controllers, ros2_control_msgs 등을 사용하는데, 이러한 패키지들은 underlay 디렉토리에 있습니다.

 

3. ROS2 어플리케이션을 빌드하고 실행하는데 필요한 환경 변수를 설정하는데 사용됩니다. ROS2 어플리케이션은 특정 ROS2 배포판과 버전에서 실행되는데 이러한 정보는 환경 변수에 저장됩니다. 예를 들어, ROS2 foxy에서 개발한 어플리케이션은 ROS_VERSION 환경 변수에 "foxy"라는 값을 가지고, ROS_DISTRO 환경 변수에 "foxy"라는 값을 가집니다. 이러한 환경 변수는 underlay 디렉토리에 포함된 script를 실행해서 설정할 수 있습니다.

 

정리하면 underlay는,

ROS2 어플리케이션을 개발하고 실행하는데 필요한 최소한의 패키지와 라이브러리를 제공

ROS2 패키지의 의존성 해결

ROS2 어플리케이션을 빌드하고 실행하는데 필요한 환경 변수를 설정하는데 사용

합니다.

 

 

 

반응형

'Robotics > ROS2 참고자료' 카테고리의 다른 글

ROS2 node와 executable  (0) 2023.05.05
ROS2 executable  (0) 2023.04.25