기본 용어 정리
패키지(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에서는 패키지를 빌드한 후 설치를 하여야 패키지를 사용할 수 있다.