PinkLAB - 민형기 ROS2 응용 실습 1일차 - 패키지 만들기

안상훈·2024년 6월 2일
0

ROS2 실습

목록 보기
5/13
post-thumbnail

본 블로그 포스팅은 https://www.youtube.com/@pinklab_studio/playlists
에서 현재 강의 중에 있는

ROS2 무작정 따라하기강의의 내용을 필자가 다시 복기하여 기록하는 내용에 관한 것이다.


1. 워크스페이스 만들기

앞서 *.ipynb형식의 파일 작성을 통해 ROS2의 개념, 토픽, 서비스에 대한 실습을 진행하였다.
이제 ROS2가 지향하는 모바일 로봇에 탑재가 가능한 실행 프로그램 개념의 코드 작성 실습을 진행하며
쉽게 말해 작업 공간을 만들고, 여기에 *.cpp, *.py기반의 코드 작성을 실행한다 보면 된다.

먼저 언급할 내용이 있다.

앞으로 '터미널'에 기입하는 명령어 코드의 경우 모두 $ 문자를 접두에 붙여서 작성하겠다.

ROS2의 실습에는 터미널 \leftrightarrow IDE(코드) 환경을 빈번하게 넘나들기에 이에 따른 혼동을 막기 위한 절차라 보면 된다.

먼저 아래의 명령어를 통해 home폴더 위에 ROS2작업 폴더를 생성한다.

$ mkdir -p ~/ros2_workspace/src

여기서 mkdir -p옵션은 폴더를 생성하되, 상위 경로도 함께 생성하라는 뜻이다.
이 말은 $ mkdir src이렇게 src 폴더를 만드는 것이 최종 목적이고,
src 폴더 사이에 ros2_workspace 부모 폴더가 경로에 있으니 이것까지 겸사겸사 같이 만들라는 뜻이다.


2. 워크스페이스 사전 설정

워크스페이스를 만들었으니 이제 패키지를 만들기 전 사전설정을 해야한다

첫번째로는
https://docs.ros.org/en/humble/Installation/Alternatives/Ubuntu-Development-Setup.html
Install development tools and ROS tools의 챕터에 나와 있는 아래의 코드(패키지 설치)를 실행시킨다.

$ sudo apt update && sudo apt install -y \
  python3-flake8-docstrings \
  python3-pip \
  python3-pytest-cov \
  ros-dev-tools

다음으로 현재의 Ubuntu Version에 맞춰서 아래의 패키를 추가로 설치한다.

$ sudo apt install -y \ 
  python3-flake8-blind-except \ 
  python3-flake8-builtins \ 
  python3-flake8-class-newline \ 
  python3-flake8-comprehensions \ 
  python3-flake8-deprecated \ 
  python3-flake8-import-order \ 
  python3-flake8-quotes \ 
  python3-pytest-repeat \ 
  python3-pytest-rerunfailures

위 과정을 통해 개발도구 및 ROS 도구를 추가로 설치해 준다.

여기서 Version에 따라 패키지 설치 명령어가 살짝 달라지는데, 현재 작업중인 Ubuntu의 버전이 기억이 나지 않는다면 아래의 명령어를 통해 상기하자

$ lsb_release -a

다음으로 ROS2의 빌드 도구인 'colcon'패키지를 설치한다. 이는 이전 버전인 ROS와 차이가 있는 빌드 방식인데

기존 ROS 빌드 시스템은 catkin(CMake)빌드 시스템만을 지원하여 ROS-python 기반으로 패키지를 빌드 하더라도 기반은 CMake(C++) 패키지 빌드 시스템이라서 관리의 한계가 있었지만

ROS2로 넘어오면서 Python패키지도 관리&빌드가 가능해졌고, 이를 지원하는 새로운 빌드 시스템이 'colcon'이라 보면 된다.

따라서 'colcon'패키지를 설치해야 하며 아래의 명령어를 수행한다.

sudo apt install python3-colcon-common-extensions

이렇게 ROS2의 패키지 관리&빌드를 위한 사전에 진행해야 할 패키지 설치를 완료했다면

아래의 코드 수행을 통해 ~/ros2_workspace/src 작업공간을 ROS2 작업공간으로 빌드를 진행해주자

$ cd ~/ros2_workspace   -> 폴더이동
$ colcon build 		    -> colcon빌드
$ ls                    -> 빌드 결과 확인


3. 패키지 생성

$ ros2 pkg create --build-type ament_python --node-name my_first_node my_first_package

이제 첫 패키지를 만들어보자
명령어에 대한 설명은 아래와 같다.

ros2 pkg create는 크게 빌드타입, 노드명, 패키지명 이 3가지 옵션값을 선택하여 패키지 생성을 진행할 수 있고, 이중 노드명은 나중에 따로 생성해도 된다.

여기서 아래의 사진처럼 [WARNING]구문이 발생하면서 해당 패키지는 라이센스 설정이 안 되어 있다고 하는 경고 구문이 발생한다

이 구문을 지우고 싶다면 --license [라이센스 옵션] 을 추가로 넣어주면 된다.
공식 문서에서는 --license Apache-2.0을 추천하는 듯 하다.

여기까지 수행 후 생성된 패키지의 폴더 및 파일에 대한 구성을 살펴보자
-> 이에 대한 시각화 기능을 제공하는 패키지인 tree를 설치하자

$ sudo apt install tree

생성된 패키지를 본다면 가장 상위에 my_first_package폴더가 생성 후 아래 3개의 하위 폴더 my_first_package, resource, test이 생성되며, 각 폴더별로 파일이 배정되어 생성되는데
이 중, 중요한 파일은
my_first_node.py, package.xml, setup.py정도가 될 듯 하다.

다음 챕터에서는 생성된 패키지의 실행, 추가 노드 생성 및 빌드&실행에 대해 다루겠다.

profile
자율차 공부중

0개의 댓글

관련 채용 정보