전체 글 121

Node, Package, Launch

1. Node노드는 하나의 일을 담당하는 실행 프로그램. 로봇을 회사에 비유하면, 노드는 직원 한 명이다. 카메라 담당직원, 모터 담당직원, 경로 계산 담당직원 등이 각각 따로 있는 것처럼, ROS2에서는 카메라 노드, 모터 제어 노드, 경로 계획 노드가 각각 독립된 프로세스로 돌아간다.class TimerNode(Node): # Node 클래스를 상속 def __init__(self): super().__init__('timer_node') # ← 이게 노드 이름 self.create_timer(1.0, self.callback) 노드를 이렇게 잘게 나누는 이유는, 하나가 죽어도 나머지는 계속 돌고, 필요한 것만 교체하거나 재..

physical AI/ROS2 2026.07.19

ONNX vs TensorRT (TRT) 파일 비교 정리

## 1. ONNX (Open Neural Network Exchange)### 목적프레임워크 간 모델 교환을 위한 범용 포맷.PyTorch, TensorFlow, MXNet 등 서로 다른 프레임워크 간의 "공통 언어" 역할.### 내부 구조내부적으로 Protocol Buffers (protobuf) 형식으로 직렬화됨.```ONNX 파일 구조├── ir_version # ONNX IR 버전├── opset_import # 사용된 연산자 집합 버전├── graph│ ├── node[] # 연산 노드 (Conv, ReLU, MatMul 등)│ │ ├── op_type # 연산 종류│ │ ├── input[] # 입력 텐서 이름│ ..

IMU

출처: https://velog.io/@717lumos/Sensor-IMU%EC%9D%98-%EA%B0%9C%EB%85%90-%EB%B0%8F-%ED%99%9C%EC%9A%A9%EB%B2%95 1. IMU 개념 및 구성IMU는 관성 측정 장치(Inertial Measurement Unit)이다.가속도 센서(Acceleration Sensor), 각속도 센서(Gyroscope, 자이로스코프)로 이루어져 있으며 일부는 지자기 센서(Magnetometer)도 포함한다. 2. IMU 센서 1) 가속도 센서 물체에 작용하는 가속력과 진동력, 충격력 등 동적 힘이 발생했을 때, 움직임의 변화에 따른 가속도의 변화(단위: m/s^2)를 순간적으로 감지해낸다.센서에서 얻어지는 출력값인 가속도를 적분하여 물체의 진행 방..

카테고리 없음 2026.04.02

선형회귀

선형회귀(Linear Regression)란?선형회귀는 입력 변수(X)와 출력 변수(Y) 사이의 선형 관계를 찾는 지도학습 알고리즘입니다. 가장 기본적이고 중요한 머신러닝/통계 기법 중 하나예요.핵심 아이디어는 간단합니다. 데이터에 가장 잘 맞는 직선(또는 평면)을 찾는 것입니다.기본 수식: y = β₀ + β₁x + εβ₀ : 절편(intercept) — 직선이 y축과 만나는 점β₁ : 기울기(slope) — x가 1 증가할 때 y의 변화량ε : 오차항(error) — 실제값과 예측값의 차이 핵심 개념 정리최소제곱법(OLS, Ordinary Least Squares)선형회귀는 잔차(residual)의 제곱합을 최소화하는 방식으로 β₀, β₁을 구합니다. 잔차는 실제값 y와 예측값 ŷ의 차이입니다.SSE..

의존성 주입

1. 의존성 주입 패턴의 기본 개념정의:의존성 주입은 클래스가 스스로 필요한 의존 객체(서비스, 컴포넌트 등)를 생성하지 않고, 외부에서 주입받아 사용하는 디자인 패턴입니다. 이를 통해 객체 생성과 사용을 분리하여, 클래스 간 구체적 의존을 줄이고, 유연성과 테스트 용이성을 높일 수 있습니다.IoC(Inversion of Control):의존성 주입은 제어의 역전 원칙에 기반합니다. 즉, 객체의 생성과 의존성 관리의 책임을 애플리케이션 코드가 아니라 외부 컨테이너나 프레임워크가 맡습니다.2. 의존성 주입의 주요 방식2.1 생성자 주입설명:클래스의 생성자를 통해 필요한 의존성을 전달받습니다.장점:불변성을 보장하고, 클래스 생성 시 모든 필수 의존성이 명시됨변경 시에도 객체 생성 자체가 책임지므로, 안정성이..

디자인 패턴 2025.04.08

매트릭, 커네이선스, 트레이드 오프

1. 매트릭 (Metrics)정의 및 역할매트릭은 소프트웨어나 시스템의 여러 측면(품질, 성능, 복잡도 등)을 수치적 또는 정량적으로 평가하기 위한 지표입니다.코드 품질, 유지 보수성, 성능, 복잡도 등을 객관적으로 평가할 수 있도록 도와주며, 아키텍트는 이 데이터를 기반으로 설계 개선이나 리팩토링 결정을 내립니다.주요 종류 및 예시코드 복잡도 지표:Cyclomatic Complexity (순환 복잡도): 소스 코드 내 의사 결정 분기(조건문, 반복문 등)의 수를 측정하여, 코드의 복잡도를 평가합니다. 복잡도가 높으면 테스트와 유지 보수가 어려워질 수 있습니다.품질 및 결함 지표:버그 밀도: 릴리즈된 코드 내 버그의 수를 측정합니다.커버리지: 단위 테스트나 통합 테스트가 전체 코드의 몇 퍼센트를 검증하는..

아키텍처 2025.04.08

STL 사용의 장점

추상화와 일관성STL은 다양한 컨테이너(vector, list, set 등)와 알고리즘(sort, find, for_each 등)을 표준화된 인터페이스로 제공하여, 특정 컨테이너의 내부 구현 세부 사항에 의존하지 않고 일관되게 코드를 작성할 수 있습니다.반복자(iterator) 사용의 장점반복자는 컨테이너의 내부 구조를 감추고 공통된 방식으로 접근할 수 있게 해줍니다. 이를 통해 컨테이너 종류에 상관없이 동일한 방식으로 원소를 순회할 수 있으며, 반복자 덕분에 알고리즘이 컨테이너와 독립적으로 작동할 수 있습니다.C++11부터는 범위 기반 for문을 사용할 수 있어, 반복자 사용을 더욱 간편하게 만들고 코드 가독성을 크게 향상시킵니다.알고리즘과의 결합STL 알고리즘은 반복자와 결합되어 작성되므로, 반복문 ..

C++ 2025.03.09

SDP

개요목적: SDP는 멀티미디어 세션의 정보를 기술하는 데 사용됩니다.예를 들어, 어떤 미디어 스트림이 존재하는지, 미디어 유형, 포맷, 전송 프로토콜, 네트워크 연결 정보 등을 기술합니다.표준: RFC 4566에서 정의됩니다.특징: 텍스트 기반의 간단한 포맷으로, 사람이 읽기 쉽고 기계가 파싱하기도 용이합니다.SDP 메시지 구성SDP 메시지는 여러 개의 줄로 구성되며, 각 줄은 한 개의 문자(식별자)와 등호(=)로 시작한 뒤, 해당 값이 옵니다. 각 줄은 CRLF로 종료됩니다.주요 필드는 다음과 같습니다:v= (버전)SDP 버전을 나타내며, 현재는 v=0이 사용됩니다.o= (Origin)세션 생성자 및 세션 식별 정보를 포함합니다.형식:o= 예시: o=- 0 0 IN IP4 127.0.0.1  s..

네트워크 2025.02.04