[Physical AI W2D2] 7/7 — MoveIt 경로계획 RViz2 시각화 실습(+ 오류 점검 7종)
·
피지컬AI
[Physical AI W2D2 · 7/7]실제 move_group을 띄우지 않고, MoveIt 경로 계획의 핵심 개념(Planning Frame·좌표계 체인·End-Effector·Target Pose·Planned Trajectory·Motion Execution)을 ROS 2 TF와 RViz2 Marker로 직접 시각화한다. 7관절 좌표계 체인을 TF로 발행하고, 전진기구학으로 tool0 위치를 계산해 화면에서 로봇 팔이 시작 자세와 목표 자세 사이를 반복 이동하는 것을 확인한다. 마지막에 실습 중 자주 겪는 오류 7종을 증상→원인→해결로 정리한다.이 글에서 직접 해보는 것본 주제 전용 작업공간 ~/moveit_planning_ws + 패키지 moveit_planning_demo 생성로봇 팔 좌표계..
[Physical AI W2D2] 4/7 — 계산 결과를 RViz2로 시각화(FK/IK → 화면)
·
피지컬AI
[Physical AI W2D2 · 4/7]3편에서 Python으로 계산한 2축 로봇 팔의 정운동학·역운동학 결과를, 이번엔 ROS2 노드로 다시 계산해 RViz2 화면에 띄운다. /tf로 world→base_link→link1→link2→tool0 좌표계를, MarkerArray로 링크·관절·목표점·작업공간을 그려, Python 숫자 결과와 화면 위치가 정확히 일치함을 눈으로 검증한다.이 글에서 직접 해보는 것1. ROS2 작업공간·패키지(two_link_kinematics_demo) 생성2. .rviz 설정 파일로 Fixed Frame world + Grid·TF·MarkerArray Display 고정3. two_link_kinematics_visualizer.py — FK/IK를 계산해 /tf +..
[Physical AI W2D1] 6/6 — 좌표 변환 실습: Python 변환 + TF Publisher + RViz
·
피지컬AI
[Physical AI W2D1 · 6/6]4·5편의 동차 변환 행렬을 손으로 굳힌다. NumPy로 2D·3D 변환과 역변환, 좌표계 체인을 직접 계산해 결과를 눈으로 확인하고, TF Publisher 노드를 만들어 base_link→laser·camera_link, odom→base_link를 발행한 뒤 tf2_echo와 RViz로 좌표축을 검증한다.이 글에서 직접 해보는 것1. NumPy로 2D 동차 변환·역변환, 3D 변환, 좌표계 체인 계산2. 계산 결과를 4·5편의 손계산과 대조(앞 1m → odom (2,2), laser 1m → base 1.25·0.15)3. TF Publisher 노드(coordinate_tf_publisher.py) — RPY→Quaternion + static/dyna..
[Physical AI W2D1] 3/6 — RViz2 실습: GCP VM 헤드리스 GUI로 센서·TF 시각화
·
피지컬AI
[Physical AI W2D1 · 3/6]RViz는 GUI라 순수 터미널론 못 띄운다. GCP VM에 Xvfb+VNC+noVNC+Cloudflared 스택을 세워 브라우저로 RViz2를 띄우고, LaserScan·Odometry·Path·TF를 발행하는 Publisher 노드를 만들어 원형으로 도는 로봇을 화면에서 직접 확인한다.이 글에서 직접 해보는 것1. GCP VM(Ubuntu 22.04)에 ROS 2 Humble + RViz2 설치2. 헤드리스 GUI 스택: Xvfb + fluxbox + x11vnc + noVNC + Cloudflared → 브라우저로 RViz23. .rviz 설정 파일로 RViz2 실행(Fixed Frame odom, Grid·TF·LaserScan·Odometry·Path)..
[Physical AI W2D1] 5/6 — 좌표계와 동차 변환 행렬 ②: 3D·TF·Quaternion·기구학
·
피지컬AI
[Physical AI W2D1 · 5/6]2D를 3D로 확장한다. 4×4 동차 변환 행렬이 곧 ROS 2 TF이고, 회전은 Quaternion으로 표현되며, 이 변환을 누적하면 순기구학(관절→끝단), 되돌리면 역기구학(목표→관절)이 된다. RViz TF 축의 정체를 마무리한다.이 글에서 잡는 개념1. 3D 회전 행렬(Roll·Pitch·Yaw)과 4×4 동차 변환 행렬2. 4×4 행렬 = ROS 2 TF (translation + rotation + 시간)3. Quaternion(x,y,z,w)과 yaw 변환, RPY와의 관계4. 부모/자식 좌표계·좌표계 체인5. 순기구학(관절→끝단)과 역기구학(목표→관절), 그리고 피지컬 AI 연결(4편의 2D를 3D로 확장하고, RViz에서 본 TF 축이 곧 동차 ..
[Physical AI W2D1] 4/6 — 좌표계와 동차 변환 행렬 ①: 좌표계·2D 변환·동차좌표
·
피지컬AI
[Physical AI W2D1 · 4/6]같은 점도 base_link 기준이냐 map 기준이냐에 따라 값이 달라진다. 좌표계가 필요한 이유부터 2D 회전·이동, 그리고 회전과 이동을 하나의 행렬로 묶는 동차 변환 행렬까지 — RViz에서 본 TF 축의 수학적 정체를 잡는다. 이 글에서 잡는 개념- 왜 좌표계가 필요한가 (frame_id의 수학적 뿌리)- 전역(map·odom) vs 지역(base_link·laser·camera_link) 좌표계- 2D 위치·자세 (x, y, θ), 회전 행렬, 이동- 동차 좌표와 2D 동차 변환 행렬 — 회전+이동을 하나의 행렬로- 표기법 T_A_B, 행렬 곱셈 순서, 역변환(3편까지 RViz로 좌표축(TF)을 눈으로 봤습니다. 이제 그 축과 변환의 수학을 잡습니다...
[Physical AI W2D1] 2/6 — RViz 개념 ②: TF·좌표계·URDF·센서 Display·디버깅
·
피지컬AI
[Physical AI W2D1 · 2/6]RViz의 진짜 핵심은 TF(좌표계 변환)다. map·odom·base_link·laser·camera_link가 어떻게 연결되는지, URDF/RobotModel과 LaserScan·Odometry·Path·PointCloud2·Image·IMU·Marker Display를 정리하고, "데이터가 안 보일 때" 원인을 분리해 잡는 법까지 다룬다.이 글에서 잡는 개념TF — 좌표계 사이의 위치·회전 관계, Static vs Dynamic주요 좌표계: map·odom·base_link·laser·camera_linkURDF / RobotModel Display센서 Display 총정리: LaserScan·Odometry·Path·PointCloud2·Image·IMU..