부록 부록
A.4 용어집·약어
A.4.1 이 부록의 사용법
용어를 몰라서 막히는 경우가 생각보다 많다. 특히 ROS 2는 미들웨어·제어·인지·빌드 시스템의 용어가 섞여 있어, 한 영역에서 온 사람에게 다른 영역의 용어가 장벽이 된다.
이 부록은 이 책에서 쓴 용어의 짧은 정의와 해당 장을 모은다. 정의는 이 책의 맥락에서의 의미이며, 정확한 정의는 해당 장과 원문을 보라.
정직: 일부 용어는 문맥·구현에 따라 의미가 다르게 쓰인다(확인 필요). 여기 정의는 이 책이 사용한 의미다.
A.4.2 핵심 개념 — 그래프와 통신
| 용어 | 의미 | 장 |
|---|
| 노드(node) | ROS 그래프의 참여 단위 | 1.1 |
| 토픽(topic) | 이름 있는 단방향 데이터 흐름 | 1.4 |
| 서비스(service) | 요청-응답 | 1.7 |
| 액션(action) | 장시간 작업·피드백·취소 | 1.8 |
| 파라미터 | 노드가 소유하는 설정 값 | 1.9 |
| QoS | Quality of Service — 전달 정책 | 1.5·1.6 |
RELIABLE·BEST_EFFORT | 신뢰성 — 유실을 복구하나 | 1.5.3.2 |
TRANSIENT_LOCAL·VOLATILE | 내구성 — 늦게 온 구독자에게도 주나(래치) | 1.5.3.3 |
KEEP_LAST·KEEP_ALL | 히스토리 — 무엇을 얼마나 보관하나 | 1.5.3.1 |
BEST_AVAILABLE | 상대에 맞춰 자동으로 낮춤 | 1.5.3.8 |
| 디스커버리 | 참여자가 서로를 찾는 과정 | 3.3 |
| 도메인 | 통신 격리 단위(ROS_DOMAIN_ID) | 1.5.8 |
| 리매핑 | 이름을 실행 시 바꾸기 | 1.1.5 |
| 네임스페이스 | 이름의 계층 접두 | 1.1.6 |
| 그래프 | 노드·토픽 등의 전체 연결 | 1.1 |
| 생애주기 노드 | 상태 전이가 명시된 노드 | 1.12 |
| 컴포넌트 | 프로세스에 적재 가능한 노드 | 1.13 |
A.4.3 실행 모델
| 용어 | 의미 | 장 |
|---|
| 실행기(executor) | 콜백을 선택·실행하는 주체 | 2.2 |
| 대기 집합(wait set) | 준비된 엔티티를 기다리는 구조 | 2.2.3 |
| 콜백 그룹 | 콜백의 동시 실행 정책 단위 | 2.3 |
| MutuallyExclusive | 동시에 하나만 | 2.3.3 |
| Reentrant | 동시 실행 허용 | 2.3.3 |
| 스핀(spin) | 실행기를 구동하는 것 | 2.2.4 |
| 인트라프로세스 통신 | 같은 프로세스 내 복사 없는 전달 | 2.7.5 |
| 지터(jitter) | 주기의 변동 | 2.5.6 |
| WCET | 최악 실행 시간 | 12.1.3 |
| 결정성 | 같은 입력에 같은 결과·순서 | 12.5 |
A.4.4 미들웨어
| 용어 | 의미 | 장 |
|---|
| DDS | Data Distribution Service — 통신 표준 | 3.1 |
| RTPS/DDSI-RTPS | DDS의 유선 프로토콜 | 3.2 |
| rmw | ROS Middleware 추상 인터페이스 | 3.5 |
| rcl | ROS Client Library 공통 C 계층 | 2.1 |
| rclcpp·rclpy | C++·Python 클라이언트 라이브러리 | 2.1 |
| DomainParticipant | DDS의 도메인 참여 주체 | 3.1 |
| DataWriter·DataReader | DDS의 발행·구독 엔티티 | 3.1 |
| SPDP·SEDP | 참여자·엔드포인트 디스커버리 | 3.3.4 |
| Discovery Server | 중앙화된 디스커버리 | 3.4 |
| 제로 카피 | 복사 없는 전달 | 12.3.5 |
| 대여 메시지(loaned) | 미들웨어 소유 버퍼에 직접 작성 | 12.3.5 |
| type hash | 메시지 정의의 해시 | 1.3.5 |
A.4.5 좌표·모델
| 용어 | 의미 | 장 |
|---|
| tf2 | 좌표 변환 라이브러리 | 5.2 |
| 프레임(frame) | 좌표계 | 5.1 |
map·odom·base_link | REP 105의 표준 프레임 | 5.1.7 |
| optical frame | 광학 축 규약 프레임 | 7.1.4 |
| 정적 변환 | 시간에 불변인 변환 | 5.1.5 |
| URDF | 로봇 기술 형식 | 5.3 |
| xacro | URDF 매크로 전처리 | 5.4 |
| SDF | 시뮬레이션 기술 형식 | 5.6 |
| SRDF | MoveIt 의미 정보 | 9.1 |
| 링크·조인트 | 강체·관절 | 5.3 |
| 관성 텐서 | 질량 분포 | 5.3.5 |
| 오도메트리 | 자체 운동 추정 | 7.6 |
A.4.6 하드웨어·제어
| 용어 | 의미 | 장 |
|---|
ros2_control | 하드웨어·컨트롤러 프레임워크 | 6.1 |
| 하드웨어 컴포넌트 | 실제 장치와의 접점 | 6.2 |
| 상태·명령 인터페이스 | 읽기·쓰기 채널 | 6.2.4 |
| 컨트롤러 | 제어 알고리즘 플러그인 | 6.4·6.5 |
| 컨트롤러 체이닝 | 컨트롤러 연결 | 6.4 |
realtime_tools | 실시간 안전 유틸리티 | 6.5.6 |
| mock 하드웨어 | 가짜 하드웨어 백엔드 | 6.2.8 |
| micro-ROS | MCU용 ROS 2 | 6.8 |
| HIL | Hardware In the Loop | 14.6.6 |
| PREEMPT_RT | 리눅스 실시간 패치 | 12.2.2 |
SCHED_FIFO | 실시간 스케줄링 정책 | 12.2.3 |
| 우선순위 역전 | 낮은 우선순위가 높은 것을 막음 | 12.2.4 |
mlockall | 메모리 잠금 | 12.3.3 |
A.4.7 센서·인지
| 용어 | 의미 | 장 |
|---|
image_transport | 이미지 전송 추상화·압축 | 7.2.7 |
cv_bridge | ROS↔OpenCV 변환 | 7.2 |
CameraInfo | 카메라 내부 파라미터 | 7.3 |
| PointCloud2 | 점군 메시지 | 7.4 |
| 운동 왜곡 | 스캔 중 이동으로 인한 왜곡 | 7.5.6 |
message_filters | 다중 토픽 동기화 | 7.7.5 |
| 근사 동기화 | 시각이 가까운 것끼리 묶기 | 7.7.5 |
| 센서 융합 | 여러 센서 결합 | 7.6 |
| EKF·UKF | 확장·무향 칼만 필터 | 7.6 |
| PTP·NTP | 시각 동기 프로토콜 | 7.7.6 |
| 캘리브레이션 | 파라미터 실측 보정 | 7.3.6·9.6.4 |
A.4.8 항법·조작
| 용어 | 의미 | 장 |
|---|
| Nav2 | ROS 2 항법 스택 | 8.1 |
| 코스트맵 | 주행 비용 격자 | 8.4 |
| 인플레이션 | 장애물 주변 비용 확산 | 8.4.4 |
| AMCL | 적응형 몬테카를로 측위 | 8.3 |
| SLAM | 동시 측위·지도작성 | 8.2 |
| 폐루프(loop closure) | 이전 장소 재인식 | 8.2 |
| 전역·지역 계획기 | 경로·속도 생성 | 8.5 |
| 행동 트리(BT) | 항법 로직 구조 | 8.6 |
| 복구 동작 | 막혔을 때의 대응 | 8.7.2 |
collision_monitor | 근접 감시·감속 | 8.7.3 |
| MoveIt 2 | 매니퓰레이션 프레임워크 | 9.1 |
| 역기구학(IK) | 자세→관절각 | 9.2 |
| OMPL | 샘플링 기반 계획 라이브러리 | 9.2 |
| Planning Scene | 계획용 환경 표현 | 9.3 |
| MoveIt Servo | 실시간 자코비안 제어 | 9.4 |
| MTC | Task Constructor — 다단계 작업 | 9.5 |
A.4.9 시뮬·도구·품질
| 용어 | 의미 | 장 |
|---|
| Gazebo(Harmonic 등) | 시뮬레이터 | 10.2 |
ros_gz | Gazebo↔ROS 2 브리지 | 10.2.4 |
| RTF | Real Time Factor — 시뮬 시간 비율 | 10.2.8 |
| Sim2Real 간극 | 시뮬과 실기의 차이 | 10.6 |
| 도메인 랜덤화 | 파라미터를 무작위로 변화 | 10.6.4 |
| rosbag2·MCAP | 기록 도구·저장 형식 | 11.2 |
| RViz2 | 3D 시각화 | 11.4 |
| PlotJuggler | 시계열 분석 도구 | 11.5.7 |
ros2_tracing·LTTng | 실행 추적 | 11.6 |
| REP | ROS Enhancement Proposal | A.3 |
| colcon·ament | 빌드 도구·빌드 시스템 | 4.1·4.5 |
| rosdep | 시스템 의존성 해결 | 4.6 |
| bloom | 릴리스 도구 | 4.9 |
| pluginlib | 플러그인 로딩 | 15.4.3 |
launch_testing | launch 기반 통합 시험 | 14.6.2 |
A.4.10 보안·운영
| 용어 | 의미 | 장 |
|---|
| SROS 2 | ROS 2 보안 도구 | 13.2 |
| DDS-Security | DDS 보안 표준·플러그인 | 13.3 |
| enclave | 보안 신원 단위 | 13.2.4 |
| 키스토어 | 인증서·키 저장소 | 13.2.3 |
| 거버넌스 파일 | 도메인 보안 정책 | 13.3.4 |
| 권한 파일 | 참여자별 허용 목록 | 13.3.4 |
| 위협 모델 | 무엇을 지키고 무엇을 막나 | 13.1 |
| OTA | 원격 소프트웨어 갱신 | 14.8.7 |
| 카나리 배포 | 소수에 먼저 적용 | 14.8.7 |
| A/B 파티션 | 원자적 갱신·롤백 구조 | 14.8.7 |
| 프로비저닝 | 로봇 초기 설정 | 14.8.6 |
| 플릿 | 운영되는 로봇 집단 | 14.9 |
| 강등 운전 | 기능 일부 상실 시 제한 운전 | 14.2.6 |
| 워치독 | 생존·정상 감시 | 14.2.5 |
A.4.11 자주 혼동되는 용어 쌍
| 쌍 | 구분 |
|---|
| 안전(safety) vs 보안(security) | 물리적 위해 방지 vs 침해 방지 — 14.10.8 |
| 실시간 vs 빠름 | 데드라인 보장 vs 평균 속도 — 12.1.2 |
| 지연 vs 지터 | 크기 vs 변동 — 11.7.2 |
map vs odom | 점프하나 정확 vs 연속하나 드리프트 — 5.1.7 |
| 노드 vs 프로세스 | 논리 단위 vs 실행 단위 — 2.7 |
| 서비스 vs 액션 | 즉답 vs 장시간 — 1.7.8 |
| 검증(verification) vs 타당성(validation) | 맞게 만들었나 vs 맞는 것을 만들었나 — 14.10.3 |
RELIABLE vs "안전" | 재전송 정책일 뿐 — 1.6.3.1 |
| 시뮬 통과 vs 동작 증명 | 회귀 감지 vs 보장 — 14.6.4 |
| 폐기(deprecated) vs 제거(removed) | 경고 vs 컴파일 실패 — 15.1.5 |
견해: "안전"과 "보안"을 한국어에서 혼용하지 않도록 주의하라. 영어로는 safety/security로 명확히 갈리지만 한국어 대화에서는 섞이기 쉽다. 문서에서는 영어 병기를 권한다 — 14.10.6에서 "안전 기능"과 "위험 완화 조치"를 구분하라고 한 것과 같은 이유다.
A.4.12 약어 표
| 약어 | 원어 | 장 |
|---|
| AMCL | Adaptive Monte Carlo Localization | 8.3 |
| BT | Behavior Tree | 8.6 |
| CDR | Common Data Representation | 1.3.3 |
| DDS | Data Distribution Service | 3.1 |
| EKF | Extended Kalman Filter | 7.6 |
| HIL | Hardware In the Loop | 14.6.6 |
| IDL | Interface Definition Language | 1.3 |
| IK / FK | Inverse / Forward Kinematics | 9.2 |
| IMU | Inertial Measurement Unit | 7.1 |
| LTS | Long Term Support | 15.2.2 |
| MTC | MoveIt Task Constructor | 9.5 |
| OMPL | Open Motion Planning Library | 9.2 |
| OTA | Over The Air (update) | 14.8.7 |
| PTP / NTP | Precision / Network Time Protocol | 7.7.6 |
| QoS | Quality of Service | 1.6 |
| REP | ROS Enhancement Proposal | A.3 |
| RMW | ROS MiddleWare | 3.5 |
| RTF | Real Time Factor | 10.2.8 |
| RTPS | Real Time Publish Subscribe | 3.2 |
| SBOM | Software Bill of Materials | 14.7.5 |
| SLAM | Simultaneous Localization And Mapping | 8.2 |
| SDF | Simulation Description Format | 5.6 |
| SRDF | Semantic Robot Description Format | 9.1 |
| URDF | Unified Robot Description Format | 5.3 |
| WCET | Worst Case Execution Time | 12.1.3 |
A.4.13 이 책 고유의 표기
| 표기 | 의미 |
|---|
(확인 필요) | 버전·환경에 따라 달라질 수 있어 독자가 확인해야 하는 값·동작(목차 4) |
| > 견해: | 저자의 판단 — 사실이 아니며 근거를 함께 적음 |
| > 함정: | 실무에서 자주 걸리는 지점 |
| > 정직: | 이 책의 한계·미검증 사항 |
| RJ-NN-MM | 장·절 참조(CLD-03) |
| ★ | 코드·표에서 특히 중요한 항목 |