Chapter 666. ROS2 로봇 비전 파이프라인 (ROS2 Robot Vision Pipeline) Chapter 666. ROS2 로봇 비전 파이프라인 (ROS2 Robot Vision Pipeline) 666.1로봇 비전 파이프라인의 정의와 필요성 666.2ROS2 비전 시스템의 전체 아키텍처 666.3비전 파이프라인의 데이터 흐름 구조 666.4비전 관련 ROS2 메시지 타입 개요 666.5sensor_msgs/Image 메시지 구조 666.6sensor_msgs/CompressedImage 메시지 구조 666.7sensor_msgs/CameraInfo 메시지 구조 666.8sensor_msgs/PointCloud2 메시지 구조 666.9stereo_msgs/DisparityImage 메시지 구조 666.10vision_msgs 패키지의 검출 및 분류 메시지 666.11image_transport 패키지의 구조와 역할 666.12image_transport의 퍼블리셔와 서브스크라이버 666.13원시 이미지 전송 (Raw Transport) 666.14압축 이미지 전송 (Compressed Transport) 666.15압축 깊이 이미지 전송 (CompressedDepth Transport) 666.16Theora 비디오 스트리밍 전송 666.17FFMPEG 기반 비디오 전송 플러그인 666.18커스텀 이미지 전송 플러그인 작성 666.19image_transport의 QoS 정책 설정 666.20image_transport의 대역폭 최적화 전략 666.21cv_bridge 패키지의 구조와 역할 666.22cv_bridge를 이용한 OpenCV-ROS2 이미지 변환 666.23CvImage 클래스의 내부 구조 666.24sensor_msgs::Image와 cv::Mat 상호 변환 666.25이미지 인코딩 형식 (BGR8, RGB8, MONO8, MONO16) 666.2616비트 깊이 인코딩 (16UC1, 32FC1) 666.27Bayer 패턴 인코딩 처리 666.28이미지 인코딩 간 변환 규칙 666.29cv_bridge의 제로 카피(Zero-Copy) 전송 666.30cv_bridge Python 바인딩 활용 666.31image_geometry 패키지의 구조와 역할 666.32PinholeCameraModel 클래스의 내부 구조 666.33핀홀 카메라 모델의 수학적 기초 666.34카메라 내부 파라미터 (Intrinsic Parameters) 666.35카메라 외부 파라미터 (Extrinsic Parameters) 666.36렌즈 왜곡 모델 (Radial, Tangential) 666.37어안 렌즈(Fisheye) 왜곡 모델 666.38이미지 좌표-3D 좌표 투영 변환 666.393D 좌표-이미지 좌표 역투영 변환 666.40이미지 왜곡 보정 좌표 변환 666.41스테레오 카메라 기하학 모델 666.42CameraInfo 메시지와 카메라 행렬 매핑 666.43카메라 보정(Calibration)의 원리 666.44체스보드 기반 보정 패턴 666.45원형 그리드 기반 보정 패턴 666.46ChArUco 보드 기반 보정 패턴 666.47camera_calibration 패키지의 구조와 사용법 666.48cameracalibrator 노드 실행과 파라미터 666.49단안 카메라 보정 절차 666.50스테레오 카메라 보정 절차 666.51보정 결과 파일 (YAML) 형식과 저장 666.52보정 정확도 평가 (재투영 오차) 666.53온라인 재보정과 자동 보정 기법 666.54image_proc 패키지의 구조와 역할 666.55이미지 왜곡 보정 노드 (Rectification) 666.56이미지 디모자이킹 (Debayer) 처리 666.57색상 공간 변환 노드 666.58이미지 리사이징 노드 666.59이미지 크롭 (Crop) 처리 666.60이미지 회전과 플립 처리 666.61image_proc 노드의 컴포저블 구성 666.62image_proc의 Launch 파일 구성 666.63stereo_image_proc 패키지의 구조와 역할 666.64스테레오 이미지 왜곡 보정 666.65시차 맵(Disparity Map) 생성 원리 666.66블록 매칭(Block Matching) 알고리즘 666.67세미 글로벌 블록 매칭(SGBM) 알고리즘 666.68시차 맵 파라미터 튜닝 666.69시차 맵에서 깊이 정보 추출 666.70스테레오 포인트 클라우드 생성 666.71스테레오 처리 파이프라인 Launch 구성 666.72depth_image_proc 패키지의 구조와 역할 666.73깊이 이미지에서 포인트 클라우드 변환 666.74깊이 이미지 정합(Registration) 666.75깊이 이미지 좌표계 변환 666.76깊이 이미지 필터링과 노이즈 제거 666.77깊이-컬러 정합(Depth-Color Registration) 666.78깊이 이미지 메트릭 변환 (밀리미터-미터) 666.79vision_opencv 패키지 모음의 구성과 개요 666.80image_pipeline 패키지 모음의 구성과 개요 666.81apriltag_ros 패키지를 이용한 AprilTag 검출 666.82AprilTag 패밀리와 태그 크기 설정 666.83AprilTag 검출 파라미터 최적화 666.84AprilTag 기반 자세(Pose) 추정 666.85aruco_ros 패키지를 이용한 ArUco 마커 검출 666.86ArUco 사전(Dictionary) 선택과 마커 생성 666.87ArUco 마커 기반 위치 추정 666.88ArUco 보드를 이용한 정밀 자세 추정 666.89마커 검출의 조명 조건 대응 기법 666.90마커 기반 로봇 위치 보정 파이프라인 666.91객체 검출(Object Detection) ROS2 통합 아키텍처 666.92YOLO 기반 객체 검출 ROS2 노드 구현 666.93YOLOv5 ROS2 래퍼 패키지 666.94YOLOv8 ROS2 래퍼 패키지 666.95SSD 기반 객체 검출 ROS2 노드 구현 666.96Faster R-CNN 기반 객체 검출 ROS2 노드 666.97객체 검출 결과의 시각화와 퍼블리싱 666.98객체 검출 모델의 ONNX 변환과 배포 666.99의미론적 분할(Semantic Segmentation) ROS2 통합 666.100DeepLab 기반 의미론적 분할 노드 666.101SegFormer 기반 의미론적 분할 노드 666.102인스턴스 분할(Instance Segmentation) ROS2 통합 666.103Mask R-CNN 기반 인스턴스 분할 노드 666.104파놉틱 분할(Panoptic Segmentation) ROS2 통합 666.105분할 결과의 포인트 클라우드 매핑 666.106단안 깊이 추정(Monocular Depth Estimation) ROS2 통합 666.107MiDaS 기반 깊이 추정 노드 666.108깊이 추정 결과의 스케일 보정 666.109광학 흐름(Optical Flow) ROS2 통합 666.110밀집 광학 흐름 (Dense Optical Flow) 노드 666.111희소 광학 흐름 (Sparse Optical Flow) 노드 666.112광학 흐름 기반 동적 객체 검출 666.113특징점 검출(Feature Detection) ROS2 통합 666.114ORB 특징점 검출과 매칭 노드 666.115SuperPoint 기반 특징점 검출 노드 666.116SuperGlue 기반 특징점 매칭 노드 666.117특징점 기반 비주얼 오도메트리 연동 666.118이벤트 카메라(Event Camera) ROS2 통합 666.119이벤트 카메라 메시지 타입과 드라이버 666.120이벤트 기반 비전 처리 파이프라인 666.1213D 객체 검출 ROS2 통합 아키텍처 666.122PointPillars 기반 3D 객체 검출 노드 666.123CenterPoint 기반 3D 객체 검출 노드 666.124카메라-라이다 융합 3D 객체 검출 666.1253D 바운딩 박스 메시지와 시각화 666.126포인트 클라우드 처리(PCL) ROS2 통합 666.127pcl_ros 패키지의 구조와 역할 666.128pcl_conversions를 이용한 메시지 변환 666.129포인트 클라우드 패스스루 필터링 666.130포인트 클라우드 복셀 그리드 다운샘플링 666.131포인트 클라우드 통계적 이상치 제거 666.132포인트 클라우드 반경 기반 이상치 제거 666.133포인트 클라우드 평면 분할(RANSAC) 666.134포인트 클라우드 유클리드 클러스터링 666.135포인트 클라우드 정합(Registration) ICP 666.136포인트 클라우드 정합 NDT 666.137포인트 클라우드 노멀 추정 666.138포인트 클라우드 표면 재구성 666.139포인트 클라우드 조건부 필터링 666.140포인트 클라우드 변환(좌표계 변환) 666.141NvBlox를 이용한 실시간 3D 재구성 666.142NvBlox의 TSDF 기반 맵 생성 666.143NvBlox의 ESDF 기반 장애물 거리장 666.144NvBlox의 메시 생성과 시각화 666.145NvBlox의 GPU 가속 처리 구조 666.146NvBlox와 Nav2 경로 계획 연동 666.147Isaac ROS 비전 패키지 모음 개요 666.148Isaac ROS Image Pipeline 666.149Isaac ROS DNN Inference 666.150Isaac ROS Object Detection 666.151Isaac ROS Visual SLAM (cuVSLAM) 666.152Isaac ROS Depth Segmentation 666.153Isaac ROS Freespace Segmentation 666.154Isaac ROS Apriltag 666.155Isaac ROS 패키지의 Nitros 가속 프레임워크 666.156GPU 가속 비전 파이프라인 설계 666.157CUDA 기반 이미지 전처리 커널 666.158CUDA 스트림을 이용한 비동기 처리 666.159GPU 메모리 관리와 제로 카피 전송 666.160cuDNN 기반 딥러닝 추론 666.161TensorRT 기반 추론 노드 구현 666.162TensorRT 엔진 빌드와 최적화 666.163TensorRT INT8 양자화와 캘리브레이션 666.164TensorRT 동적 배치 처리 666.165TensorRT와 ONNX 모델 변환 666.166Triton Inference Server ROS2 연동 666.167OpenVINO 기반 추론 노드 구현 666.168비전 파이프라인의 노드 구성 전략 666.169컴포넌트 노드를 이용한 제로 카피 통신 666.170멀티스레드 실행기(Executor)를 이용한 병렬 처리 666.171비전 파이프라인의 실시간 성능 분석 666.172비전 노드의 프레임 레이트 모니터링 666.173비전 파이프라인의 지연 시간(Latency) 측정 666.174GPU-CPU 메모리 병목 분석 666.175비전 파이프라인의 QoS 정책 설정 전략 666.176센서 데이터 QoS 프로파일 구성 666.177비전 데이터의 Reliability와 Durability 설정 666.178이미지 토픽의 History Depth 설정 666.179비전 데이터의 rosbag2 기록 666.180비전 데이터의 rosbag2 재생과 시간 동기화 666.181rosbag2 스토리지 플러그인과 압축 설정 666.182비전 데이터의 MCAP 포맷 저장 666.183RViz2를 이용한 이미지 토픽 시각화 666.184RViz2를 이용한 포인트 클라우드 시각화 666.185RViz2를 이용한 마커와 바운딩 박스 시각화 666.186RViz2 커스텀 비전 플러그인 작성 666.187Foxglove Studio를 이용한 비전 데이터 시각화 666.188rqt_image_view를 이용한 실시간 이미지 모니터링 666.189비전 파이프라인 설계 패턴 666.190비전 파이프라인의 모듈화 전략 666.191비전 파이프라인의 컴포저블 구성 666.192비전 파이프라인의 Launch 파일 설계 666.193비전 파이프라인의 파라미터 관리 666.194다중 카메라 비전 파이프라인 설계 666.195비전 파이프라인의 에러 처리와 폴백 전략 666.196비전 파이프라인의 로깅과 진단(Diagnostics) 666.197비전 파이프라인의 단위 테스트 작성 666.198비전 파이프라인의 통합 테스트 작성 666.199비전 파이프라인의 벤치마크 테스트 666.200비전 파이프라인의 CI/CD 구성