1. 기본 개념
Workspace
: ROS 개발하는 작업 root 경로
Package
: 개발하는 기능의 큰 묶음이다. 여러개의 기능을 분산하여 Node로 구성하고 이를 관리한다.
Node
: 최소 단위의 실행 기능을 구현한 어플리케이션이다. 각 Node 끼리 통신을 수행한다. Graph 로 Node 객체들이 표시된다.
Build System [참고 Build system]
: package에 대해 cmake -> make -> make install 순의 build 작업을 수행하는 시스템이다.
ROS2에서는 cmake 기반의 ament 를 사용하고 있으며, ROS1 에서는 catkin 을 사용했었다.
ament는 ament_cmake, ament_python 으로 build type이 있다.
Build Tool
: Build Tool은 build system 과 혼용될 수 있는 요지가 있지만, Build tool을 실제로 build 작업을 수행하는 시스템 코드이지만 build tool은 package의 build 작업을 하나로 합쳐서 쉽게 수행할 수 있도록 돕는 tool이다.
2. Package 생성
이전글에서 설명한 Workspace 생성 및 colon build 작업과 함께 install source작업을 먼저 수행되어야 한다.
cd ~/ros2_ws/src
ros2 pkg create --build-type ament_python --node-name my_node my_package
Python 기반의 Package 를 생성하면 아래의 파일들이 생성된다.
각 파일의 정보에 따라서 어떤 위치에 python 실행파일이 Node로 생성될 것인지 등의 정보를 갖는다.
3.Colcon build
Package 를 생성한뒤 Colcon build를 수행한다.
Colcon build 를 수행하면 package의 실행파일을 생성하게 되는데 실행 파일을 환경변수에 등록하기 위해 source ~/.bashrc 도 함께 실행한다. bashrc 에서는 이전에 등록했던 install/setup.bash 를 실행하게 된다,
cd ~/ros2_ws
colcon build --package-select [패키지] --symlink-install && source ~/.bashrc
ros2 run my_package my_node
처음 패키지를 생성하였을 때에는 install/setup.bash 실행이 필요하지만, 이전에 install 해던 package의 경우에는 이후에 colcon build 를 하고 별도로 setup을 실해하지 않아도 된다.
패키지안에 새로운 node를 만들경우에도 colcon build 만 하면된다.
setup 은 패키지에 대한 정보만을 업데이트하기 때문이다.