ROS2 이론 정리 18

ROS2 스레드

스레드(Thread) : 하나의 프로그램(프로세스) 내에서 실행되는 작업의 흐름(실행 단위)하나의 노드는 서비스, 액션, 토픽의 발행과 구독 등의 여러 개의 통신을 노드 내부의 객체들을 통해서 수행할 수 있다.즉, 하나의 노드에서 액션 통신, 서비스 통신 두개만 하더라도 노드 내에는 콜백함수가 여러개로 구성된다. SingleThreadExecutor(단일 스레드) 모드로 액션 서버와 서비스 클라이언트 역할을 수행하는 노드를 실행 시켰을때 액션 서버로 Goal이 들어온다면 해당 노드는 액션 클라이언트의 Goal을 완전히 처리할 때까지 작업 스케쥴러를 독점하기에 다른 서비스 관련 콜백함수 등의 이벤트 스케쥴을 처리할 수 없게 되고, 이는 주기적으로 실행되어야하는 콜백함수(timer_callback)들이 ..

Action Client 구현(2)

https://dawon-project.tistory.com/118 Action Server 구현(1)액션이란? 서비스와 마찬가지로 Request-Response 모델을 기반으로 한다.Goal과 Result 둘다 Request-Response 모델을 사용한다.Goal이라는 Request를 client가 보내지만 이것에 대한 직접적인 response를 우리가 지dawon-project.tistory.com 액션 클라이언트 구현 전 참고사항액션 클라이언트는 send_goal_async를 통해 Goal을 액션 서버에게 비동기적으로 보낸다.서버는 Goal을 수락하고 처리하기 시작, 이때 수락 여부는 GoalHandle 객체를 통해 관리된다.클라이언트는 add_done_callback 함수를 사용하여 액션 서버로..

ROS2 이론 정리 2025.04.24

Action Server 구현(1)

액션이란? 서비스와 마찬가지로 Request-Response 모델을 기반으로 한다.Goal과 Result 둘다 Request-Response 모델을 사용한다.Goal이라는 Request를 client가 보내지만 이것에 대한 직접적인 response를 우리가 지정해서 보내지는 않지만 GoalHandle을 통해 서버가 goal에 대해서 Accept했다는 것을 client에서 add_done_callback 함수의 future을 통해 client가 간접적으로 알 수 있다.-> goal_callback을 ActionServer 클래스에 정의를 해서 들어오는 요청에 대해 Reject를 한다면 Accept 상태가 안되지만goal_callback을 default 값으로 쓴다면 액션 클라이언트가 goal 요청을 보..

ROS2 이론 정리 2025.04.24

서비스 클라이언트 만들기(2)

https://dawon-project.tistory.com/115 동기식 양방향 메세지 송수신 방식토픽과 마찬가지로 서비스도 ROS2의 노드 간 통신 방식토픽 vs 서비스토픽은 Publisher-Subscriber 모델을 사용노드는 토픽을 Subscribe하여 지속적인 업데" data-og-host="dawon-project.tistory.com" data-og-source-url="https://dawon-project.tistory.com/115" data-og-url="https://dawon-project.tistory.com/115" data-og-image="https://scrap.kakaocdn.net/dn/cNqw3W/hyYFz3HrT2/bUCK2agAcgX3ySl6zCuyIK/img...

ROS2 이론 정리 2025.04.23

서비스 서버 만들기(1)

서비스란? -> 동기식 양방향 메세지 송수신 방식토픽과 마찬가지로 서비스도 ROS2의 노드 간 통신 방식토픽 vs 서비스토픽은 Publisher-Subscriber 모델을 사용노드는 토픽을 Subscribe하여 지속적인 업데이트와 함께 특정 정보를 받을 수 있다.반면에 서비스는 Request-Response 모델을 사용토픽과 다르게 서비스는 클라이언트가 호출할 때만 데이터를 제공서비스는 클라이언트(Client)와 서버(Server) 구성된다.동일한 서비스 서버에 대해 여러 클라이언트를 가질 수 있지만 하나의 서비스에 대해 하나의 서버만 가질 수 있다.ROS2에서 서비스의 서버는 여러 클라이언트의 요청을 받을 수는 있지만 동시에 여러 요청을 처리하지는 못한다.-> 서비스 서버(Service Node)는 일..

ROS2 이론 정리 2025.04.22

사용자 정의 Interface 생성 및 활용

인터페이스(Interface) : ROS2에서 노드 사이에 데이터를 전송시 사용되는 토픽(Topic), 서비스(Service), 액션(Action)에서 사용되는 데이터 타입인터페이스 내부 그룹Messages : .msg 파일에서 정의되며 ROS 메세지에 대해 기술 -> Topic에서 사용Services : .srv 파일에서 정의되며, request, response 두 부분으로 구성 -> Service에서 사용Actions : .action 파일에서 정의되며, goal, result, feedback 세 부분으로 구성 -> Action에서 사용ros2 interface list # interface 들을 전부 보여주는 명령어#결과 Messages: action_msgs/msg/GoalInfo..

ROS2 이론 정리 2025.04.18

노드 생성과 Topic 만들기

노드란? 최소 단위의 실행 가능한 프로세서-> 각 노드는 메시지 통신으로 데이터를 주고 받음Topic : ROS2에서 노드 간 데이터를 단방향 비동기 방식으로 주고 받기 위한 통신 방법즉, 노드가 "특정 토픽 이름"으로 "데이터"를 "주기적(특정 시간마다)"으로 "Publish" 하고, 다른 노드가 "동일한 토픽 이름"으로 "해당 데이터"를 "Subscribe" 하여 받는 통신 방식-> Topic은 노드들끼리 통신을 하기 위한 통신 방식 중 하나로 노드 위에서 동작하는 통신 방식 Topic을 생성할때 필요한 요소Publisher(데이터를 뿌려주는(publish) 노드)데이터 = 해당 데이터( ROS2에서는 메세지(데이터를 담는 형식)라 부른다)-> 데이터는 인터페이스와 데이터 값으로 구성됨-> ROS2..

ROS2 이론 정리 2025.04.17

Ros2 파일 분석 및 실행 과정

ROS2를 사용하기 위한 전제 조건Underlay vs Overlayunderlay : 기본이 되는 워크스페이스로 ROS의 기존 설치 패키지들을 의미 -> 기본 제공 패키지(ex. turtlesim 등)ex) /opt/ros/humbleoverlay : 그 위에 덧씌우는 내가 만든 패키지들이 있는 워크스페이스ex) ~/ros2_ws/install/setup.bash-> 목적 : 기존 ROS2에 내가 만든 패키지들을 "덧붙이기" 하는 것 -> 결과적으로 내가 만든 ROS2 패키지를 실행시키거나 빌드할 떄는 underlay + overlay가 합쳐져서 작동해야한다.* 순서 중요 : 항상 underlay -> overlay 순으로 source 해야함Source 명령어 : 리눅스 쉘(Bash 등)에서 제공하는 ..

ROS2 이론 정리 2025.04.16

turtlesim을 통한 ros2 명령어

https://dawon-project.tistory.com/6 각 노드는 메시지 통신으로 데이터를 주고 받음Message: 노드간의 데이터를 주고 받게 해주는 것 → 메시지는 integer, floating, point, boolean과 같은 변수 " data-og-host="dawon-project.tistory.com" data-og-source-url="https://dawon-project.tistory.com/6" data-og-url="https://dawon-project.tistory.com/6" data-og-image="https://scrap.kakaocdn.net/dn/cPjHci/hyYHdrGTri/zSAk3cI63akGCiKncLGaj0/img.png?width=800&heig..

ROS2 이론 정리 2025.04.14

ROS2 설치 및 사전 지식(3)

로봇과 센서엑츄에이터 : 움직임(Output)을 위해서 사람의 근육과 같은 역할을 하는 것으로, 전기 신호를 받아 물리적인 움직임이나 변화를 만들어내는 장치, 정보를 실행하는 역할을 한다.센서(Sensor) : 측정(Input)을 위해 사람의 감각과 같은 역할을 하는 것 Middleware와 Firmware 미들웨어(Middleware) : 응용 소프트웨어(Application software)가 운영 체제(Operation System, OS)로부터 제공 받는 서비스 이외에, 추가적인 서비스를 제공하는 컴퓨터 소프트웨어-> 양쪽을 연결하여 데이터를 주고 받을 수 있도록 중간에서 매개 역할을 하는 소프트웨어-> ex) ROS SRC(Sigle Board Computer) : 싱글 보드 컴퓨터로, 하나의 ..

ROS2 이론 정리 2025.04.10