본문 바로가기

분류 전체보기55

[SLAM] 칼만 필터(Kalman Filter)란? 로봇의 각종 센서 정보를 통해 로봇의 위치를 추정하고 이동 경로 계획을 위한 SLAM을 하는 과정에서 센서를 통해 들어오는 정보에 잡음(노이즈)이 섞이는 경우가 발생한다. 이로 인해 추정된 위치 좌표가 실제 로봇의 위치와 다른 경우가 발생하는데 이러한 추정치를 보정하여 추정한 위치 좌표와 로봇의 실제 좌표와 일치시키는 알고리즘 중 하나인 칼만 필터를 소개하겠다. 칼만 필터(Kalman Filter)란? 칼만 필터는 잡음이 포함된 측정치를 바탕으로 선형 역학계의 상태를 추정하는 재귀 필터로 루돌프 칼만이 개발하였다. 칼만 필터는 물체의 측정값에 확률적인 오차가 포함되고, 또한 물체의 특정 시점에서의 상태는 이전 시점의 상태와 선형적인 관계를 가지고 있는 경우 적용이 용이하다. 또한 가우시안 분포에 효과적인.. 2023. 6. 27.
로봇공학 입문 - 자유도란? 로봇이 얼마나 자유롭게 움직일 수 있는가를 나타내는 자유도라는 개념에 대해 알아보겠다. 자유도를 이해하기 전에 공간을 나타내는 좌표계를 먼저 알아야 할 필요가 있다. 좌표계는 보통 왼손 좌표계와 오른손 좌표계를 많이 사용한다. 좌표계는 로봇공학 뿐만 아닌 그래픽 업계, 게임 업계 등 공간을 적용해야 하는 곳에서는 어디든지 사용된다. 좌표계 왼손 좌표계에서 회전 방향은 각 축에 대해 시계방향으로 회전한다. 오른손 좌표계에선 각 축에 대해 반시계방향으로 회전한다. 자유도(Degree of Freedom) 로봇공학에서 자유도는 로봇 구성에 필요한 실제 좌표의 최소 수라고 할 수 있다. 쉽게 말하면 로봇이 움직일 수 있는 경우의 최소 단위라고도 볼 수 있다. 즉. 자유도는 로봇의 위치와 자세를 결정하기 위해 필.. 2023. 6. 26.
IMU센서와 센서 퓨전(Sensor Fusion) 기술 IMU 센서란? IMU(Inertial Measurement Unit) 센서란, ‘관성 측정 장치’로 신체의 힘, 각속도 또는 주변 자기장을 측정할 수 있는 전자 장치이다. IMU 센서는 보통 가속도 센서(Acceleration Sensor), 각속도 센서(Gyroscope Sensor)로 이루어진 6축 센서가 있고 지자기 센서(Magnetometer Sensor)가 추가된 9축 센서가 있다. IMU 6축 센서는 각속도 센서에 의해 3축의 움직임을 감지하고 각 축(x, y, z)의 각속도를 측정하며 가속도 센서에 의해 각 축의 가속도를 측정한다. 3축 가속도 및 각속도 자료는 장애물 및 구배, 노면상태 등 도로환경 요소별 평균 및 표준편차 등의 차이가 나타나므로 이륜차의 주행특석 분석을 위해 활용 가능한.. 2023. 6. 26.
SLAM이란? 무인 이동 차량의 지도 생성 자율 주행 로봇 등 무인 이동 차량의 궁극적인 목적은 '이동' 이다. 특정한 물건을 목표지점으로 이동 시키거나, 탑승자를 이동시키거나, 목표지점으로 이동하여 사용자가 원하는 정보를 얻어내는 등 자율 주행 로봇을 개발하는 이유는 다양하지만 목적을 달성하기 위한 필수 조건은 '이동' 이다. 무인 이동 차량이 목표지점으로 가기 위해서는 차량이 위치한 맵 상의 절대 위치를 알아야 한다. 이를 위해선 차량이 위치한 공간의 맵이 필요하며 맵 상의 차량의 현재위치, 목표의 위치를 알아야 하는데 이를 가능하게 하는 기술이 바로 SLAM이다. SLAM이란? SLAM은 Simultaneous Localization And Mapping의 약어로 우리말로 하면 동시적 위치 추정 및 지도화이다. 자율 주행 차량은 기본적으로 .. 2023. 6. 22.
최적 경로 찾기 #2 - 에이스타(A*) 알고리즘, 자바 코드 구현 포함 에이스타(A*) 알고리즘 에이스타 알고리즘은 순서대로 정점을 검사하는 수학적 접근 방식과 특정 정보를 활용하여 계산 효율성을 향상하는 휴리스틱 접근 방식을 사용하여 비용을 계산하는 알고리즘이다. 경로 탐색 중 후보 정점을 조회할 때 간선의 가중치뿐만 아니라 정점의 휴리스틱 정보를 통해 방문할 다음 정점을 결정하므로 간선의 가중치만을 고려하는 기존의 다른 알고리즘보다 적은 수의 정점을 탐색한다. 따라서 저장공간과 수행 시간이 타 알고리즘보다 적게 기대되나 휴리스틱 정보를 참고하므로 항상 최단 경로를 보장하지는 않는다. 에이스타 알고리즘은 간선의 가중치와 휴리스틱 기대값을 통해 방문할 다음 정점의 순서를 결정하기 때문에 목적지까지의 연산이 비교적 빨리 끝날 가능성이 있으나 휴리스틱 기대값에 큰 영향을 받기 .. 2023. 6. 20.
[Thread] 뮤텍스, 세마포어, 모니터의 스레드 동기화와 구현 예제 1. 스레드(Thread) 스레드는 프로그램 또는 프로세스 내에서 실제로 작업을 수행하는 주체를 말한다. 모든 프로세스에는 한 개 이상의 스레드가 존재한다. 둘 이상의 스레드를 동시에 실행시키는 방식을 멀티스레드 라고 한다. 1.1. Race Condition(경쟁 조건) 멀티 스레드 프로그래밍에서 자주 발생하는 문제로 두 개 이상의 프로세스 또는 스레드가 공유된 자원에 동시에 접근할 경우 접근 순서에 따라 실행 결과가 달라지는 상황이 자주 발생한다. 공유 자원의 데이터 변경 뿐만 아니라 변경된 공유 자원으로 인한 실행 실패까지도 발생하기도 한다. 이러한 상황을 경쟁 조건(Race Condition) 또는 동시성 문제(Concurrency Problem)라고 한다. 즉, 여러 프로세스 또는 스레드가 동시.. 2023. 6. 20.