Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation

한 줄 요약: 두 가우시안 PDF의 곱이 또 다른 가우시안이라는 단 하나의 성질만으로 칼만 필터의 측정 업데이트 방정식 전체를 유도할 수 있다. 논문 정보 항목 내용 제목 Understanding the Basis of the Kalman Filter Via a Simple and Intuitive Derivation 저자 Ramsey Faragher 저널 / 학회 IEEE Signal Processing Magazine 연도 2012 DOI / 링크 https://doi.org/10.1109/MSP.2012.2203621 분야 Kalman Filter State Estimation Bayesian Filtering Sensor Fusion 읽게 된 이유 마이크로컴퓨터 수업에서 칼만 필터를 처음 접할 때, 교과서의 접근 방식은 대부분 벡터 대수와 최소 평균 제곱 추정(MMSE) 관점에서 시작한다. 수식은 나열되지만 “왜 이 형태인가"에 대한 물리적·직관적 답변은 부재한다. ...

2026년 5월 9일 · 7 min · 서보민

임베디드 기초 1편 - 임베디드 시스템과 펌웨어란 무엇인가

들어가며 학부 때 ESP32로 재활 자전거 IoT 모니터링 시스템을 만들고, 석사에서는 Tinker Board 2S와 STM32를 써서 HBOT 챔버 제어 시스템을 구축했다. 그 과정에서 꽤 다양한 것들을 다뤘다. 근데 기술 스택을 쌓는 데 집중하다 보면 정작 가장 기본적인 개념들이 흐릿해지기 마련이다. 그래서 지금까지 해온 것들의 기반이 되는 기초 개념들을 처음부터 다시 정리해보기로 했다. 당연하게 써왔던 것들의 의미를 되짚어보는 시리즈다. 임베디드 시스템 임베디드 시스템(Embedded System) 은 특정 목적을 위해 만들어진 컴퓨터 시스템이다. ...

2026년 5월 7일 · 3 min · 서보민

Optimum Settings for Automatic Controllers

한 줄 요약: 수학 없이도 현장에서 PID 파라미터를 빠르게 결정할 수 있는 두 가지 실험적 튜닝 절차를 제시한, 제어 공학의 출발점이 된 논문. 논문 정보 항목 내용 제목 Optimum Settings for Automatic Controllers 저자 J. G. Ziegler, N. B. Nichols 저널 / 학회 Transactions of the ASME 연도 1942 DOI / 링크 https://doi.org/10.1115/1.2899060 분야 control embedded 읽게 된 이유 고압산소챔버(HBOT) 제어 시스템을 구현하면서 압력을 목표값까지 안정적으로 올리는 것이 핵심 과제였다. 4–20mA 비례 밸브로 압력을 제어하는 구조였는데, PID를 쓰려면 $K_P$, $T_I$, $T_D$ 를 어떻게든 정해야 했다. ...

2026년 5월 6일 · 4 min · 서보민

PID Control System Analysis, Design, and Technology

한 줄 요약: 산업 현장에서 90% 이상 사용되는 PID 제어기는 단순한 구조 덕분에 살아남았지만, derivative 항 하나를 잘못 튜닝하면 오히려 시스템을 불안정하게 만들 수 있다. 논문 정보 항목 내용 제목 PID Control System Analysis, Design, and Technology 저자 Kiam Heong Ang, Gregory Chong, Yun Li 저널 / 학회 IEEE Transactions on Control Systems Technology 연도 2005 DOI / 링크 https://doi.org/10.1109/TCST.2005.847331 분야 control embedded 읽게 된 이유 석사 연구 중에 HBOT 챔버 회사에 재직 중인 선배님께 조언을 구할 기회가 있었다. 그때 선배님이 짧게 한마디 하셨다. “미분항은 실제로 잘 안 써요.” ...

2026년 5월 2일 · 6 min · 서보민

MCU 소개 및 개발환경 설정

본격적인 코드리뷰에 앞서 내가 사용한 ATmega4809 MCU와 Microchip Studio 개발환경을 간단하게 소개한다.

2026년 4월 29일 · 1 min · 서보민

시작하며

학부 시절 ATmega4809로 작성했던 펌웨어 코드를 다시 꺼내 코드리뷰 형태로 정리하는 시리즈를 시작한다. 단순히 동작하는 코드가 아닌, 잘 짜여진 코드를 찾아가는 과정이다.

2026년 4월 25일 · 1 min · 서보민

HAL GPIO 내부 뜯어보기 및 레지스터 직접 제어

HAL_GPIO_ReadPin()과 HAL_GPIO_WritePin()이 내부에서 어떻게 동작하는지 분석하고, ODR 대신 BSRR을 사용하는 이유와 레지스터 직접 제어 방법까지 정리한 글

2026년 4월 22일 · 4 min · 서보민

GPIO 기본개념 및 입출력 실습

GPIO의 기본 개념과 Push-Pull, Open-Drain, Pull-up, Pull-down, 그리고 STM32F411 Nucleo에서 버튼 입력과 LED 출력을 실습한 글

2026년 4월 18일 · 4 min · 서보민

로드셀 영점 잡기와 분동 캘리브레이션 - EEPROM으로 저장하기

ADS1232 4채널 로드셀과 AS5600 각도 센서의 영점을 버튼 하나로 잡고, 분동으로 게인을 맞추고, EEPROM에 저장해 전원을 꺼도 유지되게 한 과정을 정리했다.

2026년 4월 17일 · 7 min · 서보민

자료구조 1편 - 배열과 동적 배열: 메모리를 직접 다루다

임베디드 환경에서는 ArrayList 같은 편한 도구를 쓸 수 없다. RAM이 수백 KB밖에 안 되는 MCU에서는 데이터가 메모리 어디에, 어떻게 올라가는지 직접 따져야 한다. 힙 할당도 단편화 위험 때문에 웬만하면 쓰지 않는다. 배열은 가장 기본이면서 임베디드에서도 현역으로 쓰이는 자료구조다. C로 직접 구현하면서 메모리 레이아웃과 포인터 동작을 같이 짚어본다. 정적 배열 (Static Array) 1 int arr[5] = {10, 20, 30, 40, 50}; 이 한 줄이 선언되는 순간 스택(Stack) 에 5 × 4 = 20바이트가 연속으로 잡힌다. ...

2026년 4월 15일 · 4 min · 서보민