본문 바로가기
반응형

임베디드 관련 정리53

객체의 메모리 분포 객체 생성 시 메모리 위치아래에 MyClass 사용 예제로 메모리 분포를 설명✅ 1. MyClass::MyClass()클래스의 생성자 정의MyClass::MyClass() { // 생성자 코드} 📍메모리 분포이 함수의 기계어 코드는 **코드 영역 (.text section)**에 위치함수가 호출되면 스택 영역에서 지역 변수나 리턴 주소 등이 할당✅ 2. MyClass obj;지역 변수로 객체를 생성한 경우void func() { MyClass obj;} 📍메모리 분포obj는 스택(Stack) 영역에 생성됨obj가 사용하는 내부 멤버들(예: int, char 등 기본형)은 obj의 스택 프레임 내부에 함께 존재함수 종료 시 obj는 자동으로 소멸됨✅ 3. static MyClass obj; (전역 .. 2025. 6. 20.
c++ 개념/패턴 모음 임베디드 시스템에서의 C++ 개념, 패턴들각각에 대해 임베디드에서의 실제 사용 여부와 주의점을 정리✅ 1. RAII (Resource Acquisition Is Initialization)개념: 자원을 객체 생성 시 획득하고, 소멸 시 해제 (e.g. std::lock_guard, std::unique_ptr)임베디드 적용: 제한적 사용 가능, 대부분의 자원은 명시적 init()/deinit() 선호주의: 생성자에서 에러처리 불가 (throw 금지), 자원 초기화 타이밍 문제✅ 2. 스마트 포인터 (std::unique_ptr, std::shared_ptr)개념: 동적 자원의 자동 해제를 RAII로 보장임베디드 적용: new/delete 금지인 경우가 많아 거의 사용하지 않음주의: std::shared_.. 2025. 6. 18.
RAII -> init(), deinit() 임베디드 시스템에서 RAII와 같은 패턴 대신 init(), deinit() 사용임베디드 시스템에서 RAII 대신 init() / deinit() 패턴이 일반적으로 사용되는 이유는 아래에서 서술하는 현실적 제약이 존재하기 떄문임✅ 1. 생성자/소멸자 타이밍 제어 어려움RAII는 객체 생명주기에 맞춰 자동으로 자원을 할당/해제하지만 임베디드에서는 객체의 생성/소멸 시점이 명확하지 않거나, 컨트롤이 어려움 🔧 예시// 생성자에서 GPIO 설정GpioPin led(GPIOA, GPIO_PIN_0);// 하지만 GPIO 클럭이 아직 Enable되지 않았을 수 있음 -> 예외나 오동작 발생 가능🔧 해결책GpioPin led;led.init(GPIOA, GPIO_PIN_0); // 클럭 활성화 이후 안전하게.. 2025. 6. 17.
임베디드 시스템에서 생성자 사용 임베디드 시스템에서 생성자 사용1. 임베디드 시스템에서 생성자 사용은 일반적인 C++ 환경과는 달리 몇 가지 제약과 권장 사항이 따름2. 이유는 메모리 제어, 초기화 순서, 성능, 그리고 디버깅의 복잡성 때문임✅ 임베디드 환경에서 생성자 사용 시 정석적인 접근구분설명권장 여부기본 생성자 (Class()) 사용가장 단순한 형태. 기본 멤버 초기화✅ 예: Timer(), Sensor(), Filter() 등명시적 생성자 (explicit Class(...))암시적 변환 방지. 오작동 방지에 효과적✅ 복잡한 파라미터 생성자일 때 권장전역 객체의 생성자 사용초기화 순서 문제 발생 가능 (startup 전에 호출)❌ 되도록 사용 금지정적 객체의 생성자 사용초기화 순서 의존성 생김⚠️ 제한적 사용new/delete.. 2025. 6. 15.
로봇 개발자 역량 정리 로봇 개발자 역량1. 로봇 개발자는 하드웨어부터 소프트웨어, 시스템 통합까지 다양한 영역을 아우르는 융합형 엔지니어2. 실제 현장에서 요구되는 핵심 역량은 다음과 같이 정리할 수 있음✅ 1. 필수 기술 역량 (Core Technical Skills)분야주요 역량임베디드 시스템MCU (STM32, RP2040, ESP32 등), UART/I2C/SPI 통신, RTOS, 센서 제어, 전원 설계로봇 메카트로닉스모터, 감속기, 서보, 리니어 액추에이터, 기구 설계 (CAD), 기초 기계역학소프트웨어C/C++, Python, ROS(1/2), Visual SLAM, 실시간 제어 알고리즘전자공학아날로그 회로, PCB 설계, 전원회로, EMI/ESD 이해자율주행 알고리즘LiDAR, UWB, IMU, Odometry .. 2025. 6. 12.
센서 종류별 최적화된 필터 조합 예시 임베디드 시스템에서 센서 종류별 최적화된 필터 조합 예시실제 임베디드 시스템 (STM32, RP2040, ESP32 등)에서 센서 종류에 따라 어떤 필터를 사용하는 것이 효과적인지를 필터 목적, 노이즈 유형, 응답 속도 등을 기준으로 제시✅ 센서별 최적 필터 조합 예시센서 종류노이즈 유형필터 조합설명초음파 (HC-SR04, VL53L0X)스파이크, 거리 점프MedianFilter + EMA급격한 값 튀는 현상 제거 후, 부드럽게IMU (자이로+가속도, MPU6050 등)드리프트, 진동ComplementaryFilter 또는 KalmanFilter센서 융합, 자세 추정 (Complementary는 실시간, Kalman은 고정밀)LiDAR (RPLIDAR, YDLIDAR)간헐 노이즈, 고속 스캔LowPass.. 2025. 6. 11.
필터 그룹화 임베디드 시스템에서 사용되는 필터 그룹화1. 다음은 필터들을 유사한 성질 및 사용처에 따라 7개 그룹으로 분류함2. 각 그룹의 공통점, 차이점, 사용 시기, 필터별 설명을 정리한 자료✅ [1] 평균 기반 필터 그룹공통점: 과거 데이터를 일정 범위 저장해 평균사용처: 저노이즈 환경에서 부드러운 신호 필요할 때필터특징MovingAverageFilter가장 단순한 평균 필터, 균등 가중치WMAFilter (가중 이동 평균)최근 샘플에 더 높은 가중치EMAFilter (지수 이동 평균)가장 최근 샘플에 지수적 가중치, 메모리 적음 차이점MovingAverage: 일정 길이 버퍼 필요WMA: 가중치 수동 설정 가능EMA: 빠른 응답, 경량 (이전 출력 하나만 저장) 추천 시기고정 샘플 수 평균 필요 시 → Mov.. 2025. 6. 10.
필터 종류 및 특징 비교 임베디드 시스템에서 사용하는 필터 종류 및 특징 비교1. 임베디드 시스템에서 자주 사용되는 필터를 포함해, 요청하신 모든 필터를 다음과 같이 종류별로 정리2. 각 필터는 목적에 맞게 선택해야 하며, 계산량·응답성·이상치 처리 성능 등이 다름✅ 필터 종류 및 특징 비교표필터명주요 기능 / 특징응답 속도이상값 대응계산 복잡도비고LowPassFilter고주파 노이즈 제거 (α 계수 기반)중간약함낮음IIR 기반EMAFilter최근값 가중 강조, 지수감쇠빠름약함낮음LowPass 특수형WMAFilter최근값에 가중치, 선형 변화 대응중간보통낮음가중 이동 평균MovingAverageFilter최근 N개 평균느림약함낮음SMA (단순 평균)MedianFilter중앙값으로 이상치 제거느림강함중간~높음정렬 필요SpikeFi.. 2025. 6. 9.
필터 사용 전략 임베디드 시스템에서 필터 사용 전략1. 임베디드 시스템에서 센서 신호나 제어 신호의 노이즈를 줄이고, 안정적인 동작을 보장하기 위해 필터링은 필수적인 전략 2. 임베디드 코딩에서 필터 사용 전략에 대한 내용을 아래에 정리✅ 1. 필터 선택 기준상황추천 필터특징빠른 반응이 필요, 계산 자원 부족이동 평균 (SMA)단순 평균. 구현이 매우 간단함최근 값을 강조하고 반응 빠름지수이동 평균 (EMA / IIR / Low-pass)α 조절로 반응 속도/안정성 제어 가능외란·스파이크 제거가 중요중간값 필터 (Median Filter)이상값에 강함, 계산량은 큼고속 고정 주기, FFT 응용FIR, IIR 디지털 필터고성능 DSP용, 복잡함상태 예측 필요Kalman 필터고정확도 예측용, MCU 성능 요구✅ 2. ST.. 2025. 6. 8.
Concept과 Interface의 혼용 전략 Concept과 Interface의 혼용 전략임베디드 시스템에서 성능과 유연성을 동시에 확보하기 위한 고급 설계 기법✅ 혼용 전략의 핵심 개념개념설명내부는 Concept 기반내부에서는 정적 바인딩을 통해 인라인 최적화 및 무가상 호출을 활용외부는 Interface 기반외부에서는 포인터 기반 다형성으로 공통 관리/플러그인 구조를 구현어댑터 또는 래퍼 클래스Concept을 Interface로 감싸는 어댑터(Wrapper)를 만들어 연결✅ 구조 요약[ Concrete Sensor (Concept 기반) ] ↓[ Adapter (Concept → Interface) ] ↓[ IReceiver* 인터페이스로 사용 ]✅ 예제: Concept ↔ Interface 혼용 구조1. Int.. 2025. 6. 6.
반응형