https://cafe.naver.com/openrt/24543
설정 스크립트는 setup.bash, local_setup.bash 등으로, workspace마다 존재하며 workspace의 환경을 설정해 주는 파일이다.
새로운 패키지를 빌드하고 나서 바로 그 패키지를 찾거나 노드를 실행시키려고 하면 오류가 날 수 있다.
새로운 패키지를 빌드하고 나서는 설정 스크립트를 터미널에서 실행시켜주자.
$ source ~/ros2_ws/install/local_setup.bash
먼저 underlay와 overlay의 개념을 이해해야 한다.
둘 다 개발 환경이다. 그리고 이름에서 볼 수 있듯이 underlay는 좀더 기저에 깔려 있는 것일 테고, overlay는 그 위에 올려져 있는 느낌일 것이다.
우리가 ROS 2를 설치했을 때 /opt/ros/foxy/에 저장이 되었다. ROS 2 패키지가 깔린 이 설치 폴더가 underlay이다.
반면, ros2_ws같은 workspace를 개발자가 따로 폴더를 만들어 사용할 때, 이 폴더를 overlay라고 한다. overlay에 있는 패키지들은 underlay에 있는 패키지들에 의존하여 만들어지기 때문에 명칭이 under, over이다.
setup.bash, local_setup.bash 같은 설정 스크립트는 underlay, overlay 구분 없이 모든 개발 환경(workspace)에 존재한다.
local_setup.bash
는 같은 폴더 내에 위치한 모든 패키지들에 대한 환경 설정을 담당한다. (말 그대로 local파일이라고 보면 되겠다.) 상위 폴더나 underlay는 포함하지 않을 것이다.
setup.bash
는 이 파일이 위치한 workspace가 빌드될 때 필요한 모든 workspace에 대한 local_setup.bash를 포함한다. 즉, underlay를 포함할 것이다.
보통 underlay의 setup.bash를 소싱(sourcing. 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 source 명령어를 의미)한 후, overlay의 local_setup.bash를 소싱하면 underlay와 overlay의 경로가 모두 환경에 설정될 것이다.
$ source /opt/ros/foxy/setup.bash
$ source ~/ros2_ws/install/local_setup.bash
$ colcon_cd 패키지명
을 실행하면 해당 패키지의 경로로 쉘의 현재 작업 디렉토리가 바뀐다.
동일 네트워크를 사용하고 있다면 팀원이 작업 중인 노드에 접근이 가능하다. 멀티 로봇으로 프로젝트를 진행 시 편하다.
그러나 독립적인 작업이 필요할 때가 있다. 독립적인 작업을 하기 위해 가능한 3가지 방안이 있다.
가장 편한 방법이다
4.2 ROS_DOMAIN_ID로 DDS domain을 변경한다.