티스토리 친구하기

본문 바로가기

Robotics

(45)
ROS2 node와 executable `executable`과 `node`는 ROS 2 시스템에서 서로 다른 개념입니다. `Executable`은 컴퓨터에서 실행 가능한 프로그램이며, ROS 2에서는 특정 노드를 실행하는데 사용됩니다. ROS 2에서 노드는 실행 가능한 프로그램으로, 노드 실행 파일은 `executable`로 빌드됩니다. 이러한 노드 실행 파일을 실행하기 위해서는 `ros2 run` 명령어를 사용합니다. `Node`는 ROS 2에서 시스템에서 실행되는 프로세스입니다. 노드는 노드 실행 파일에 의해 실행되며, 다른 노드들과 메시지를 주고받아 작업을 수행합니다. 노드는 ROS 2에서 기능을 수행하는 주요 단위이며, 여러 개의 노드가 하나의 시스템을 구성할 수 있습니다. 따라서 `executable`은 ROS 2에서 노드를 실행할..
ROS2 Node [ROS2 노드] ROS2 그래프(Graph)는 로봇 시스템의 구성 요소 간 통신 및 데이터 교환을 관리하는 ROS2의 핵심 개념 중 하나입니다. ROS2 그래프는 다음과 같은 구성 요소로 이루어져 있습니다. 1. 노드(Node) 실행 가능한 프로세스(executable process)로, ROS2 그래프 상에서 통신하는 단위입니다. 노드는 토픽(topic), 서비스(service), 액션(action) 등을 이용하여 다른 노드와 데이터를 주고받습니다. 2. 토픽(Topic) 노드 간에 비동기식으로 데이터를 주고받는 메커니즘입니다. 하나의 토픽은 하나 이상의 발행자(publisher)와 하나 이상의 구독자(subscriber)로 구성됩니다. 3. 서비스(Service) 노드 간에 동기식으로 데이터를 주고받는 메커니즘입니다..
ROS2 Creating a package 2 [ROS2 패키지 만들기 2] Create a package [패키지 만들기] ROS2에서 새로운 패키지를 만들려면 다음 단계를 따르면 됩니다. 1. 새로운 터미널 창을 열고 ROS 2 워크스페이스의 디렉토리로 이동합니다. 예를 들어, 다음과 같이 작성할 수 있습니다. $ cd ~/ros2_ws/src 2. `ros2 pkg create` 명령어를 사용하여 새로운 패키지를 생성합니다. 패키지 이름은 소문자로 작성해야 하며, 여러 단어의 경우 하이픈(`-`)을 사용합니다. 예를 들어, `package_name`라는 이름의 패키지를 만들고 싶다면 다음과 같이 작성할 수 있습니다. # CMake ros2 pkg create --build-type ament_cmake # Python ros2 pkg create --build-type am..
ROS2 executable ROS 2에서 `executable`은 빌드된 바이너리 파일로, 하나 이상의 노드를 실행하는 데 사용됩니다. `executable`은 ROS 2 노드의 실행 가능한 인스턴스이며, ROS 2 시스템에서 독립적으로 실행됩니다. `executable`은 C++로 작성된 노드 또는 Python으로 작성된 노드일 수 있습니다. ROS 2에서는 `executable`을 빌드하기 위해 CMakeLists.txt 파일에 `add_executable` 명령어를 사용합니다. `add_executable` 명령어는 빌드하려는 `executable`의 이름과 해당 `executable`을 빌드하는 데 필요한 소스 파일을 지정합니다. 또한 해당 `executable`이 사용하는 모든 메시지, 서비스 및 의존성 패키지도 선언해야..
ROS2 Creating a package 1 [ROS2 패키지 만들기 1] 참고자료: https://docs.ros.org/en/foxy/Tutorials/Beginner-Client-Libraries/Creating-Your-First-ROS2-Package.html Background 1. What is a ROS2 package? [ROS2 패키지는 무엇인가?] ROS 2 패키지는 노드, 런치 파일, 설정 파일 등과 같은 소프트웨어 구성 요소의 집합을 말합니다. 패키지는 독립적으로 빌드, 설치 및 실행할 수 있는 소프트웨서 단위인데요, 일반적으로 기능적으로 연관된 구성 요소들을 함께 묶어서 배포하거나 공유하기 위해 사용됩니다. ROS 2 패키지는 CMakeLists.txt 및 package.xml과 같은 파일을 포함하며, 이들은 패키지 빌드 및 설치, 의존성 관리, 패키지..
ROS2 Creating a workspace [workspace 만들기] ROS 2에서는 패키지를 구성하는 디렉토리들을 워크스페이스(workspace)라는 개념으로 구성합니다. 워크스페이스는 ROS 2 패키지를 포함하고 있는 디렉토리입니다. ROS 2를 사용하기 전에는 먼저 해당 터미널에서 ROS 2 워크스페이스를 사용할 수 있도록 소스 파일을 설정해주어야 합니다. 또한, 추가적인 패키지를 설치하거나 수정할 필요 없이 새로운 패키지를 추가할 수 있는 오버레이(overlay) 워크스페이스를 만들 수 있습니다. 오버레이 워크스페이스는 기존 ROS 2 워크스페이스를 확장하는 데 사용되며, 새로운 패키지와 기능을 추가할 수 있습니다. 참고: overlay and underlay 오버레이 워크스페이스를 사용할 경우, 오버레이 워크스페이스의 패키지들이 기존 ROS 2 워크스페이스의 패키..
ROS2 ubuntu 20.04 ROS2 foxy Installation [ROS2 foxy 설치] Reference: https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html Set locale ROS2는 다국어 지원을 위해 UTF-8 인코딩을 사용합니다. 로케일(locale)이 UTF-8을 지원하지 않을 경우, ROS2를 사용하는 동안 문자열 처리 오류가 발생할 수 있습니다. 따라서 ROS2 설치 시, locale이 UTF-8을 지원하는지 확인해야 합니다. 만약 Docker 컨테이너와 같이 최소한의 환경에서 설치하는 경우, locale이 POSIX와 같이 최소한의 것으로 설정되어 있을 수 있습니다. 이 경우, ROS2를 설치하지 전에 locale을 변경해 주는 것이 좋습니다. locale을 변경하기 위해서 locale-gen 명령어..
ROS2 underlay overlay ROS2에서 overlay와 underlay의 개념 underlay: ROS 2 설치의 기본 패키지와 라이브러리를 포함하는 디렉토리 overlay: 개발자가 추가로 설치한 패키지와 라이브러리를 포함하는 디렉토리 ROS2 foxy를 설치했다면 기본적으로 /opt/ros/foxy 디렉토리에 underlay가 생성됩니다. 이 underlay에는 ROS2의 기본 패키지와 라이브러리가 포함됩니다. 이제 개발자는 ROS2를 이용해서 무언가를 만들고 싶습니다. 개발자는 어플리케이션을 개발하기 위해 필요한 패키지를 작성합니다. 그런데 이 패키지는 개발자가 만든 것이기 때문에, ROS2를 설치할 때 기본적으로 만들어진 underlay에 포함되지 않습니다. 따라서 이 패키지는 overlay에 추가해야 합니다. 개발자는 /..