[ROS2 GPS, IMU 항법 코드] ROS2 기반 GPS + IMU 항법 시스템 구현
·
ROS2
개요이 글에서는 ROS 2 기반 시스템에서 GPS(Global Positioning System)와 IMU(Inertial Measurement Unit) 센서 데이터를 활용하여 선박 또는 로봇의 위치 및 자세 정보를 계산하고 항법 메시지로 변환하는 과정을 다룹니다. 사용 목적GPS와 IMU 센서를 기반으로 자율운항 선박이나 로봇의 실시간 위치 및 자세 정보를 추정추정된 정보를 바탕으로 Guidance & Control 알고리즘에 필요한 데이터를 생성이론 설명1. GPS 좌표계를 UTM 좌표계로 변환하는 이유GPS 좌표계의 한계GPS는 WGS84 기반의 위도(latitude), 경도(longitude) 정보를 제공합니다.이는 구면 좌표계 기반이므로 거리 계산, 상대 위치 추정에 어려움이 있습니다.UTM ..
[ROS2 Multi Thread] Multi Thread의 필요성
·
ROS2
1. 개요ROS2에서는 하나의 노드에서 여러 개의 토픽을 구독하거나, 다양한 센서 데이터를 동시에 처리해야 하는 경우가 많다. 이때, 시스템이 어떻게 콜백을 처리하는지에 따라 전체 성능과 반응 속도에 큰 영향을 미친다. ROS2의 기본 실행 모델은 SingleThreadedExecutor이기 때문에, 아무리 많은 토픽을 구독하더라도 콜백은 하나씩 순차적으로 처리된다. 이로 인해 여러 센서 데이터가 동시에 들어와도 처리 지연(latency)이 발생할 수 있다. 이러한 문제를 해결하기 위한 방법이 바로 멀티 스레드(Multi-Threading)이다. 2. 상황 예제 코드다음은 하나의 노드에서 IMU, Odometry 또는 PoseStamped 데이터를 구독하고, 일정 주기로 통합 처리를 수행하는 예제이다.여..