패키지 만들기
저작권: 쿼드(QUAD) 드론연구소 https://smartstore.naver.com/maponarooo
개요
1. ROS2 패키지란 무엇입니까?
패키지는 ROS 2 코드의 컨테이너로 간주될 수 있습니다. 코드를 설치하거나 다른 사람과 공유하려면 패키지로 구성해야 합니다. 패키지를 사용하면 ROS 2 작업을 릴리스하고 다른 사람들이 쉽게 빌드하고 사용할 수 있습니다.
ROS 2에서 패키지 생성은 빌드 시스템으로 ament를 사용하고 빌드 도구로 colcon을 사용합니다. 공식적으로 지원되는 CMake 또는 Python을 사용하여 패키지를 만들 수 있지만 다른 빌드 유형이 존재합니다.
2. 무엇이 ROS2 패키지를 구성합니까?
ROS 2 Python 및 CMake 패키지에는 각각 고유한 최소 필수 콘텐츠가 있습니다.
cmake
package.xml
패키지에 대한 메타 정보를 포함하는 파일CMakeLists.txt
패키지 내에서 코드를 빌드하는 방법을 설명하는 파일
Python
package.xml
패키지에 대한 메타 정보를 포함하는 파일setup.py
패키지 설치 방법에 대한 지침 포함setup.cfg
패키지에 실행 파일이 있는 경우ros2 run
로 찾을 수 있습니다 .<package_name>
디렉토리에는__init__.py
이 포함됩니다.
가능한 가장 간단한 패키지는 다음과 같은 파일 구조를 가질 수 있습니다.
cmake
Python
"본 교재에서는 Python을 기준으로 학습 합니다"
3. 작업공간의 패키지
단일 작업 공간에는 각각 자체 폴더에 원하는 만큼 많은 패키지가 포함될 수 있습니다. 하나의 작업 공간(CMake, Python 등)에 다양한 빌드 유형의 패키지를 포함할 수도 있습니다. 패키지를 중첩할 수 없습니다.
가장 좋은 방법은 작업 공간 src
내에 폴더를 만들고 거기에 패키지를 만드는 것입니다. 이렇게 하면 작업 공간의 최상위 수준이 "깨끗한" 상태로 유지됩니다.
간단한 작업 공간은 다음과 같습니다.
실습
1. 패키지 생성
패키지 생성 명령을 실행하기 전에 폴더 src가
있는지 확인하십시오 .
ROS 2에서 새 패키지를 생성하기 위한 명령 구문은 다음과 같습니다.
src
이제 작업 공간 디렉토리 내에 이라는 새 폴더가 생겼습니다 my_package
.
명령을 실행하면 터미널에서 다음 메시지를 반환합니다.
새 패키지에 대해 자동으로 생성된 파일을 볼 수 있습니다.
2. 패키지 빌드
작업 공간 루트에서 실행하여 한 번에 많은 패키지를 빌드할 수 있기 때문에 작업 공간에 패키지를 배치하는 것은 특히 유용합니다 . 그렇지 않으면 각 패키지를 개별적으로 빌드해야 합니다.colcon build
작업 공간의 루트로 돌아갑니다.
이제 패키지를 빌드할 수 있습니다.
실행 중 ros_tutorials
패키지도 빌드되었음을 알 수 있습니다 . 작업 공간에 몇 개의 패키지만 있으면 괜찮지만 패키지가 많으면 시간이 오래 걸릴 수 있습니다.
다음에 my_package
패키지 만 빌드하려면 다음을 실행할 수 있습니다.
3. install 파일 소싱
새 패키지와 실행 파일을 사용하려면 먼저 새 터미널을 열고 기본 ROS2 를 소싱하십시오.
그런 다음 디렉터리 내에서 ros2_ws
다음 명령을 실행하여 작업 영역을 소싱합니다.
이제 작업 영역이 경로에 추가되었으므로 새 패키지의 실행 파일을 사용할 수 있습니다.
4. 패키지 사용
패키지 생성 중 --node-name
인수를 사용하여 생성한 실행 파일을 실행하려면 다음 명령을 입력합니다.
그러면 터미널에 메시지가 반환됩니다.
5. 패키지 내용 확인
ros2_ws/src/my_package
내부에는 ros2 pkg create에 의해
자동으로 생성된 파일과 폴더가 표시됩니다.
my_package 디렉토리 안에 my_node.py 가있습니다 . 향후 모든 사용자 지정 Python 노드가 생성될위치입니다.
6. package.xml 사용자 지정
패키지를 만든 후 반환 메시지에서 필드 description
및 license TODO
가 포함되어 있음 을 알 수 있습니다. 패키지 설명과 라이센스 선언은 자동으로 설정되지 않지만 패키지를 릴리스하려는 경우 필요하기 때문입니다. maintainer
필드 를 채워야 할 수도 있습니다.
원하는 텍스트 편집기를 사용하여 ros2_ws/src/my_package/package.xml를
엽니다.
maintainer에
자동으로 입력되지 않은 경우 이름과 이메일을 라인에 입력하십시오 . 그런 다음 description
행을 편집하여 패키지를 요약합니다.
편집이 완료되면 저장하는 것을 잊지 마십시오.
라이센스 태그 아래에 _depend
로 끝나는 일부 태그 이름이 표시됩니다 . 이것은 colcon이 검색할 수 있도록 package.xml
패키지에 대한 종속성을 나열하는 곳입니다. 현재는간단하고 종속성이 없지만 다음 자습서에서 이 공my_package
간이 활용되는 것을 볼 수 있습니다.
package.xml
파일에는 와 동일한 설명, 관리자 및 라이센스 필드가 포함되어 있으므로 setup.py
도 동일하게설정해야 합니다. 두 파일에서 정확히 일치해야 합니다. 버전과 이름( package_name
)도 정확히 일치해야 합니다.
setup.py를
선호하는 텍스트 편집기로 엽니다 .
일치하도록 maintainer
, maintainer_email
항목을편집합니다 .
파일을 저장하는 것을 잊지 마십시오.
Last updated
Was this helpful?