Linear Algebra
🌗

020 ROS 2의 파일 시스템

기본 용어 정리

패키지(package)란?

ros2 환경에서 소프트웨어 구성을 위한 기본 단위이다. ros2의 모든 응용프로그램들은 패키지 단위로 개발 되고 관리된다.
패키지는 ros의 최소 실행단위인 node를 하나 이상 포함하거나 다른 노드를 실행하기 위한 launch와 같은 실행 및 설정 파일을 포함한다.

메타패키지(metapackage)란?

공통된 목적을 지닌 패키지를 모아둔 패키지들의 집합이다. (ex. Navigation2 ⇒ nav2_amcl, nav2_bt_navigator, nav2_costmap_2d, nav2_core, nav2_dwb_controller)

ROS2 의 폴더 형태

1. 기본 설치 폴더

/opt/ros/foxy
이 폴더에서 ros2를 설치할 때 선택했던 패키지와 구동 프로그램, 핵심 유틸리티( rqt, RViz, robotics library, simulation, navigation package 등등)이 설치되고, 일반적으로 건드릴 일이 없다!

2. 사용자 작업 폴더

/home/username/robot_ws/
colcon build를 끝내면 build, install, log, src 폴더로 구성된다. 이 폴더는 사용자가 작성한 패키지, 다른 개발자들의 패키지를 저장하고 빌드하는 공간이다. 대부분의 작업을 여기서 수행한다!

ROS1과 ROS2 파일 시스템의 차이점

1. Multiple Workspace

ros1에서는 ‘catkin_ws’와 같이 특정 워크스페이스를 확보 한 뒤, 하나의 워크스페이스에서 모든 작업을 다 했지만, ros2에서는 여러 개의 독립된 워크스페이스를 사용할 수 있다. 이를 통해 작업 목적에 맞게 패키지를 종류별로 관리 할 수 있게 되었다.

2. No devel space

ros1에서의 catkin은 패키지 빌드 후 devel 폴더에 코드를 저장하면 패키지 설치 없이 사용할 수 있었다. 하지만 ros2에서는 패키지를 빌드한 후 설치를 하여야 패키지를 사용할 수 있다.

Reference