Chapter 661. MoveIt2 매니퓰레이션 (MoveIt2 Manipulation) Chapter 661. MoveIt2 매니퓰레이션 (MoveIt2 Manipulation) 661.1MoveIt2의 개요와 설계 목표 661.2MoveIt2의 아키텍처 전체 구조 661.3MoveIt1에서 MoveIt2로의 발전 과정과 주요 변경 사항 661.4MoveIt2의 의존성과 설치 절차 661.5MoveIt2의 핵심 구성 요소 개요 661.6로봇 모델 정의: URDF 기초 661.7URDF의 링크 (Link) 정의 661.8URDF의 관절 (Joint) 정의 661.9URDF의 관절 유형 (Revolute, Prismatic, Fixed, Continuous) 661.10URDF의 충돌 형상 (Collision Geometry) 정의 661.11URDF의 시각 형상 (Visual Geometry) 정의 661.12URDF의 관성 (Inertial) 정의 661.13로봇 모델 정의: Xacro를 이용한 모듈화 661.14Xacro 매크로 (Macro) 작성 661.15Xacro 속성 (Property)과 조건부 포함 661.16SRDF (Semantic Robot Description Format) 개요 661.17SRDF의 플래닝 그룹 (Planning Group) 정의 661.18SRDF의 엔드 이펙터 (End Effector) 정의 661.19SRDF의 비활성 충돌 쌍 (Disabled Collision Pairs) 정의 661.20SRDF의 가상 관절 (Virtual Joint) 정의 661.21SRDF의 그룹 상태 (Group State) 정의 661.22MoveIt Setup Assistant를 이용한 설정 패키지 생성 661.23MoveIt Setup Assistant의 설정 단계별 가이드 661.24MoveIt 구성 패키지의 디렉터리 구조 661.25MoveIt 구성 패키지의 주요 설정 파일 661.26관절 제한 (Joint Limits) 설정 파일 661.27기구학 (Kinematics) 설정 파일 661.28플래닝 파이프라인 설정 파일 661.29로봇 상태 (Robot State) 표현 개요 661.30RobotModel과 RobotState 클래스 661.31관절 공간 (Joint Space)에서의 상태 표현 661.32작업 공간 (Task Space)에서의 상태 표현 661.33순기구학 (Forward Kinematics) 계산 661.34순기구학의 DH 파라미터 표기법 661.35역기구학 (Inverse Kinematics) 개요 661.36역기구학의 다중 해 문제 661.37역기구학 솔버 선택 기준 661.38KDL 역기구학 솔버의 알고리즘과 특성 661.39TRAC-IK 역기구학 솔버의 알고리즘과 특성 661.40IKFast 역기구학 솔버의 알고리즘과 특성 661.41IKFast 솔버의 자동 생성 절차 661.42BioIK 역기구학 솔버의 알고리즘과 특성 661.43역기구학 솔버별 성능 비교 661.44커스텀 역기구학 솔버 플러그인 작성 방법 661.45MoveGroup 노드의 역할과 구성 661.46MoveGroup 노드의 액션 서버 인터페이스 661.47MoveGroupInterface를 이용한 C++ 프로그래밍 661.48C++에서의 목표 관절 설정과 실행 661.49C++에서의 목표 포즈 설정과 실행 661.50C++에서의 카테시안 경로 계획 661.51MoveGroupCommander를 이용한 Python 프로그래밍 661.52Python에서의 목표 관절 설정과 실행 661.53Python에서의 목표 포즈 설정과 실행 661.54Python에서의 카테시안 경로 계획 661.55모션 플래닝 (Motion Planning) 개요 661.56샘플링 기반 모션 플래닝 알고리즘 분류 661.57OMPL (Open Motion Planning Library) 개요와 통합 661.58RRT (Rapidly-exploring Random Tree) 알고리즘 661.59RRTConnect 알고리즘 661.60RRT* 알고리즘 661.61LazyRRT 알고리즘 661.62PRM (Probabilistic Roadmap) 알고리즘 661.63LazyPRM* 알고리즘 661.64BKPIECE 알고리즘 661.65EST (Expansive Space Trees) 알고리즘 661.66OMPL 플래너별 성능 비교와 선택 기준 661.67CHOMP (Covariant Hamiltonian Optimization) 알고리즘 661.68CHOMP의 파라미터와 튜닝 661.69STOMP (Stochastic Trajectory Optimization) 알고리즘 661.70STOMP의 파라미터와 튜닝 661.71Pilz Industrial Motion Planner 개요 661.72Pilz의 PTP (Point-to-Point) 명령 661.73Pilz의 LIN (Linear) 명령 661.74Pilz의 CIRC (Circular) 명령 661.75Pilz의 시퀀스 (Sequence) 명령 661.76커스텀 플래너 플러그인 작성 방법 661.77플래닝 파이프라인 (Planning Pipeline) 구조 661.78플래닝 요청 어댑터 (Planning Request Adapter) 체인 661.79경로 제약 조건 (Path Constraints) 개요 661.80관절 제약 조건 (Joint Constraints) 설정 661.81위치 제약 조건 (Position Constraints) 설정 661.82방향 제약 조건 (Orientation Constraints) 설정 661.83가시성 제약 조건 (Visibility Constraints) 설정 661.84제약 조건부 모션 플래닝의 성능 고려사항 661.85궤적 처리 (Trajectory Processing) 개요 661.86시간 파라미터화 (Time Parameterization) 알고리즘 661.87TOTG (Time-Optimal Trajectory Generation) 661.88ISP (Iterative Spline Parameterization) 661.89ISP (Iterative Time Parameterization) 661.90궤적 평활화 (Trajectory Smoothing) 기법 661.91궤적 실행 (Trajectory Execution) 인터페이스 661.92궤적 실행 모니터링과 중단 처리 661.93MoveIt Servo 개요 661.94MoveIt Servo의 실시간 제어 메커니즘 661.95MoveIt Servo의 조이스틱 입력 인터페이스 661.96MoveIt Servo의 트위스트 (Twist) 명령 인터페이스 661.97MoveIt Servo의 관절 조그 (Joint Jog) 인터페이스 661.98MoveIt Servo의 특이점 (Singularity) 회피 661.99MoveIt Servo의 충돌 회피 통합 661.100MoveIt Servo의 파라미터 설정 661.101충돌 감지 (Collision Detection) 시스템 개요 661.102FCL (Flexible Collision Library) 통합 661.103Bullet Physics 기반 충돌 감지 661.104충돌 감지 알고리즘의 성능 비교 661.105PlanningScene 인터페이스 개요 661.106PlanningScene Monitor의 역할과 동작 661.107PlanningScene의 월드 (World) 관리 661.108충돌 객체 (Collision Object) 추가와 제거 661.109기본 형상 (Box, Cylinder, Sphere, Cone)을 이용한 충돌 객체 661.110메시 (Mesh)를 이용한 충돌 객체 661.111부착 객체 (Attached Object) 관리 661.112부착 객체의 프레임과 허용 충돌 설정 661.113허용 충돌 행렬 (ACM) 동적 업데이트 661.114OctoMap을 이용한 3D 환경 표현 661.115OctoMap Server의 구성과 설정 661.116깊이 카메라를 이용한 실시간 장애물 인식 661.117포인트 클라우드를 이용한 실시간 장애물 인식 661.118파지 (Grasp) 계획 개요 661.119MoveIt Grasps 프레임워크의 구조 661.120파지 자세 (Grasp Pose) 생성 전략 661.121사전 파지 자세 (Pre-Grasp Pose) 생성 661.122파지 접근 (Grasp Approach) 경로 661.123파지 후퇴 (Grasp Retreat) 경로 661.124배치 (Place) 계획과 배치 자세 생성 661.125Pick-and-Place 전체 파이프라인 구현 661.126MoveIt Task Constructor (MTC) 개요 661.127MTC의 스테이지 (Stage) 개념과 유형 661.128MTC의 Generator 스테이지 661.129MTC의 Propagator 스테이지 661.130MTC의 Connector 스테이지 661.131MTC의 Wrapper 스테이지 661.132MTC를 이용한 복합 작업 구성 661.133MTC의 비용 함수 설정 661.134MTC의 제약 조건 설정 661.135ros2_control과의 통합 개요 661.136FollowJointTrajectory 컨트롤러 인터페이스 661.137GripperCommand 컨트롤러 인터페이스 661.138JointTrajectoryController 설정 661.139MoveIt2와 ros2_control의 전환 (Switching) 전략 661.140MoveIt2 RViz2 플러그인 활용 661.141Motion Planning 패널 사용법 661.142MotionPlanning Display 설정 661.143인터랙티브 마커 (Interactive Markers)를 이용한 목표 설정 661.144MoveIt2의 파라미터 설정과 튜닝 가이드 661.145MoveIt2의 런치 파일 구성 방법 661.146MoveIt2의 디버깅과 문제 해결 기법 661.147MoveIt2의 Gazebo 시뮬레이션 환경 구성 661.148MoveIt2의 Isaac Sim 시뮬레이션 환경 구성 661.149MoveIt2의 실제 로봇 적용 사례 661.150MoveIt2와 이동 매니퓰레이터의 통합 661.151MoveIt2와 듀얼 암 (Dual-Arm) 시스템의 통합 661.152MoveIt2와 비전 시스템의 통합 661.153MoveIt2의 향후 발전 방향