Part III: 처음 움직이고 현실로 옮긴다

Chapter 7: 첫 동작 런북 — 시뮬레이션에서 실제 로봇까지

집필일: 2026-07-14 최종수정일: 2026-07-14

개요

First motion은 software가 launch된 것을 축하하는 demo가 아니라 commissioning이다. “움직일 수 있는가?”보다 “이미 모은 evidence가 정당화하는 가장 작은 physical authority 증가는 무엇인가?”를 묻는다. Static model은 visualization, fake hardware는 interface test, physics simulation은 bounded trajectory rehearsal을 정당화한다. Read-only hardware state로 real model과 clock을 확인한 뒤에야 supervised low-energy joint increment를 고려한다.

이 장은 description/frame, mock, simulation, communication, tiny joint, Cartesian, gripper와 pick/place를 signed gate로 연결한다. Log에서 자주 합치는 command accepted, motion observed, task succeeded를 나눈다. Acceptance는 interface path, observed motion은 physical response, task success는 geometry·perception·tool·object·process KPI까지 증명한다.

Universal real-robot command는 제공하지 않는다. UR, Franka, tool, firmware, controller mode와 local assessment가 다르다. Qualified person이 stop/enable authority를 가진다. 상태는 2026-07-14 기준이며, teleoperation과 learned policy는 이 gate 뒤 (Chapter 8)에서 다룬다.

이 장을 읽고 나면... - static description에서 supervised pick/place까지 go/no-go ladder를 실행할 수 있다. - interface acceptance, physical motion, controller completion, task success를 구분할 수 있다. - E-stop, protective stop, cancel, rollback과 recovery를 fault를 숨기지 않고 시험할 수 있다. - frame, time, network, ownership, tracking, payload와 gripper failure를 분리할 수 있다. - Codex에 inspection/fake test를 요청하되 hardware/safety authority를 주지 않을 수 있다.

1. 전원 전에 authority, evidence와 rollback을 정한다

작은 lab도 run leader, physical stop observer, software operator, recorder, robot/safety owner를 이름으로 정한다. 한 사람이 여러 역할을 맡아도 stop owner는 terminal 작업을 겸하지 않는다. Enable, start, cancel, recover와 no-go 선언 권한을 쓴다. Vendor manual과 local risk assessment를 cell에 둔다 [17] [18].

Immutable manifest에는 arm/tool serial·revision, firmware, OS/kernel, ROS, SDK/driver/description/controller commit, URDF/SRDF hash, calibration, payload/CoM, network, limits와 scene hash를 넣는다. Previous known-good manifest와 exact rollback을 둔다. “Latest 재설치”는 rollback이 아니다.

First motion은 static validation에서 fake hardware, physics simulation, read-only state, reduced joint motion, Cartesian motion과 grasping 순으로 진행해야 한다 [1] [7] [2] [5]. Gate마다 prerequisite, saved evidence, stop condition과 signer가 있다. Simulation success는 evidence이지 다음 physical gate의 authorization이 아니다.

Gate 물리 권한 필수 evidence Rollback
G0 description 없음 identity, axis, limit, TCP, collision model/config hash 복원
G1 fake 없음 graph, claim, cancel/fault process stop/config 복원
G2 physics 없음 trajectory/contact/time log scene/backend tuple 복원
G3 read-only drive disabled/idle fresh state/safety mode command path disconnect
G4 tiny joint reduced envelope signed preflight/observer stop, disable, archive
G5 Cartesian/gripper reduced envelope G4 repeatability/frame/tool named joint home
G6 pick/place approved scope object/fixture/recovery defined safe state
그림 7.1. G0 description, G1 mock, G2 physics, G3 read-only, G4 tiny joint, G5 Cartesian, G5b gripper, G6 pick/place로 오르되 각 단계에서 signed evidence와 rollback을 유지한다. G0–G2는 physical authority가 없고, mock은 interface만 시험하며 dynamics·latency·payload·real safety stop을 증명하지 않는다.

그림 7.1 — 이 튜토리얼의 보수적 first-motion gate. 표준이 명령하는 보편적 절차가 아니며, local assessment와 platform manual이 우선한다. 원본 개념도.

2. G0 — description, frame, limit와 dry run

Power off에서 robot, controller, hand, adapter, finger, wrist sensor와 cable을 manifest와 맞춘다. Fastener, base mount, strain relief, work surface, drop zone, guard, E-stop와 clearance를 확인한다. Payload/CoM에는 installed tool과 object가 포함돼야 한다.

Visualization에서 joint axis와 positive direction, named home, joint/velocity limit, self-collision, mesh, TCP, base/world, camera, fixture를 본다. Representative task pose를 execution 없이 sweep한다. Visual mesh가 맞아도 collision body가 누락되거나 너무 클 수 있다.

Human procedure도 dry-run한다. Intent announce, cell clear, mode select, enable, command, cancel, stop, recover와 log 순서를 연습한다. 누구나 no-go를 외칠 수 있다. Power loss에서 gripper가 object를 놓는지 유지하는지도 알아야 한다.

G0 no-go checklist

  • Exact model/firmware가 description/driver tuple과 다르다.
  • Joint order, zero, axis, sign 근거가 없다.
  • TCP와 payload가 catalog default다.
  • Table, fixture, cable, finger, camera 또는 object가 collision review에 없다.
  • Initial speed/force/workspace envelope가 승인되지 않았다.
  • E-stop/protective-stop/reset을 observer가 수행할 수 없다.
  • Safe pose와 manual recovery route가 없다.

3. G1–G2 — fake hardware와 physics simulation

UR mock hardware와 scaled joint controller는 drive enable 전에 launch, model, controller와 MoveIt test를 가능하게 한다 [1] [3]. Mock은 joint name, ownership, action, feedback, cancel, parameter와 planning integration을 증명한다. Dynamics, latency, scaling, payload와 protective stop은 증명하지 않는다.

Stale state, missing TF, invalid start, over-limit joint, collision, inactive controller, duplicate owner, cancel, tolerance violation과 restart를 의도적으로 시험한다. Expected result는 refusal 또는 defined safe state다. Happy path만 있는 test는 incomplete다.

Physics simulation에는 gravity, tool mass, object, table과 conservative contact를 넣고 hardware용 short trajectory를 그대로 replay한다. Clearance, derivative, tracking, object drop, collision과 timeout을 본다.

Real-time factor 0.5에서 120 Hz simulated physics는 ROS tool에 약 60 Hz로 보이므로 simulation time과 wall time을 따로 기록해야 한다 [15]. Simulation이 느리면 120 Hz 설정은 wall second당 120 update가 아니다. Timeout, topic rate와 bag analysis에 clock domain을 쓴다.

Test Mock 증명 Physics 추가 여전히 모르는 것
Joint goal interface/owner/result model direction/dynamics real sign/friction/delay
Cartesian TF/MoveIt/controller collision/tracking calibration/clearance
Gripper command/state schema contact approximation force/pinch/surface
Cancel/fault state machine simulated stop vendor protective behavior

4. G3 — communication과 read-only real state

Motion disabled 또는 vendor-approved idle에서 연결한다. Serial, firmware, mode, safety, remote/local, payload와 tool을 확인한다. 처음 network test에는 motion command가 route되지 않아야 하고 unknown publisher를 찾는다.

UR driver guidance는 external control에 direct PC-to-controller Ethernet과 low-latency 또는 PREEMPT_RT kernel을 권고한다 [4]. 이는 measured latency와 safety control을 대신하지 않는다. Route, NIC, jitter, loss, update diagnostics와 competing traffic을 기록한다. Franka에는 UR assumption이 아니라 자체 host/network/libfranka tuple을 쓴다 [6].

Successful connection은 motion disabled 상태에서 coherent joint state, TF, controller state, timestamp와 safety state를 먼저 증명해야 한다 [11] [8] [1]. Displayed joint와 physical pose를 비교하고 TF authority, tool frame, monotonic stamp, freshness, controller claim과 fault를 본다. 10분 idle log로 drift와 missed cycle을 찾는다.

Duplicate IP/TF, unknown publisher, wrong sign/order, stale/jumping time, version mismatch, unknown safety state, payload/TCP mismatch, unexpected claim, unstable link, missing observer 또는 unresolved fault가 있으면 no-go다. “작게 움직여 진단”하지 않는다.

5. G4 — enabled low-energy mode와 tiny joint move

Enable 전 사람과 loose object를 치우고 fastener/cable을 확인한다. Approved reduced mode와 더 엄격한 software workspace/speed/acceleration/force limit을 적용한다. Operator는 joint, direction, maximum delta, duration, stop condition과 recovery pose를 말한다.

첫 command는 physical stop access를 유지하며 reduced workspace와 speed envelope 안의 작고 알려진 joint increment여야 한다 [2] [5] [18]. Supervision과 enabling은 local assessment에 따른다. Clearance가 큰 joint 하나를 고르고 positive/negative direction을 separate attempt로 시험한다.

Execution은 action acceptance를 completion으로 보지 말고 tolerance, missed cycle, speed scaling과 protective-stop state를 monitor해야 한다 [9] [10] [3]. Goal accepted, first movement, final state, result, joint error, scaling, timing과 fault를 기록한다.

결과 의미 Evidence 실패 예
Command accepted server/controller가 goal 수락 goal ID/stamp robot paused
Motion observed expected direction joint change encoder+observer wrong distance
Controller completed tolerance/result success result/error TCP calibration 오류
Task succeeded physical KPI 충족 independent measurement object slip

작은 motion을 반복해 sign, timing, tracking과 return이 일정한지 본다. Amplitude와 speed를 동시에 높이지 않는다. 한 번에 변수 하나만 promote한다.

그림 7.2. Goal accepted, first encoder와 observed motion, controller result, independent task measurement는 서로 다른 evidence다. Software action cancel과 controller abort는 vendor safety lane의 protective stop, safeguard stop, E-stop과 분리되며, 비정상 event는 evidence capture, cause clearance, human/vendor procedure, new attempt ID를 거친다.

그림 7.2 — Command·result·stop authority와 recovery evidence의 경계. Stop 명칭과 reset path는 platform마다 다르며 cancel은 safety stop이 아니다. 원본 개념도.

6. G5 — joint trajectory와 Cartesian motion

이미 방문한 영역에서 짧은 multi-point joint trajectory를 실행한다. Timestamp, delta, tolerance, scaling, cancel과 safe pose return을 본다. Cartesian goal은 validated joint region과 가까운 IK를 고르고, 직선 intuition과 planned path가 다를 수 있음을 기억한다.

Stale 또는 wrong frame으로 transform된 Cartesian goal은 geometrically valid하면서 physically wrong일 수 있다 [11] [12]. Planner는 틀린 위치로 collision-free path를 만들 수 있다. Target frame/stamp, transform chain/age, calibration, IK, scene hash, clearance와 measured TCP를 저장한다. Frame 오류를 magic offset으로 수리하지 않는다.

Free-space와 큰 margin에서 translation/orientation을 독립 측정한다. Table approach 전 cancel을 시험한다. 그 뒤 approved speed/force envelope의 guarded approach를 쓴다. Position plan은 contact regulation이 아니다.

증상 먼저 확인 원인 금지 shortcut
consistent wrong place TCP/base/target TF stale calibration magic offset
IK elbow flip seed/posture redundancy branch speed로 통과
plan success, abort state/tolerance/scaling drift/timing tolerance 확대
RViz clear, real tool close collision/tool model missing geometry 계속 실행
Cartesian stall singularity/collision scale local margin scale disable

7. G5b — gripper를 arm과 별도 commissioning한다

Arm을 넓고 안정된 pose에 두고 end-effector만 시험한다. Finger, fastener, stroke, direction, state, timeout, fault/reset과 power-loss behavior를 확인한다. Real specimen 전 soft sacrificial object를 쓴다.

Gripper commissioning은 finger, object, force, stroke, collision과 pinch zone을 arm motion과 별도로 확인해야 한다 [13] [14] [18]. Configured force는 measured fingertip force와 같지 않을 수 있고 long finger는 leverage, TCP, collision과 load를 바꾼다. Operator hand와 fixture pinch zone을 표시한다.

Empty open/close, partial stroke, soft object, representative object, hold, validated arm 뒤 lift, controlled release 순으로 간다. Commanded/observed width, current/force proxy, object/fingertip revision, detection, fault, slip, damage와 release를 기록한다. Drop zone을 정한다.

8. G6 — 첫 pick/place

크고 가볍고 깨지지 않는 object 하나와 여유 큰 두 zone을 쓴다. 처음에는 perception 대신 fixed pose를 쓴다. Home, pre-grasp, guarded approach, close, grasp confirm, vertical retreat, transfer, lower, release, retreat, home 순서다. Transition마다 timeout, observable condition, cancel과 rollback이 있다.

Gripper close가 grasp success는 아니다. Width/current/tactile과 observation으로 retention을 확인한다. Placement action success도 target 안 object를 뜻하지 않으므로 independent KPI를 쓴다. Object가 없으면 unknown location에서 close를 auto-repeat하지 않는다.

Phase Success Stop Recovery
Pre-grasp pose/clearance valid scene/TF change current state replan
Approach expected TCP contact/scaling approved retreat
Close object evidence pinch/fault/empty defined open condition
Lift retained slip/load/fault defined surface로 lower
Place target/released stuck/unstable hold, human decision
Retreat clear/known state object follows stop, no auto-repeat

9. Stop, recovery, logging과 go/no-go

E-stop, protective stop, action cancel, controller abort와 application pause는 다르다. Drive energy, hold, manual acknowledgment, goal preservation을 표로 만든다. Reflexively reset하지 않는다. State 보존, hazard 확인, cause 제거, tool/object/cell inspection 뒤 vendor/local procedure를 따른다.

Unexpected event마다 새 attempt ID를 만든다. Relaunch로 log를 덮지 말고 preceding command, controller/safety/fault, joint/TF/time, scaling, update, payload/tool, operator action, observation과 recovery decision을 저장한다.

결정 GO NO-GO
amplitude 증가 repeated tracking within bound unexplained error/stop
speed 증가 current range stable timing/scaling unknown
Cartesian 추가 joint/TF independently valid calibration uncertain
object 추가 empty arm/gripper pass pinch/drop unknown
unattended repeat first-motion scope 아님 observer 필요

Learned-policy rollout은 description과 driver가 맞는지 시험하는 수단이 아니라 deterministic motion/recovery gate 뒤에 위치한다 [16] [17] [1]. Joint, Cartesian, gripper, stop과 recovery를 먼저 고정한다. Policy는 observation/action distribution과 model failure를 추가하므로 sign/frame/controller defect를 숨기면 안 된다.

그림 7.3. Safe human–robot interaction 연구를 control, motion planning, prediction, psychological consideration으로 분류하고, control을 pre-collision과 post-collision 방법으로 나눈다. 이 연구 분류는 특정 로봇의 stop category나 commissioning 절차를 정의하지 않는다.

그림 7.3 — 안전한 인간-로봇 상호작용 방법의 연구 분류. 출처: Lasota, Fong, and Shah, 2017, Figure 1.1.

10. Troubleshooting

증상 Layer Evidence Safe next test
connected/no motion mode/owner safety, remote, claim read-only state diagram
accepted/paused scaling/vendor scaling/pendant approved idle test
wrong joint description order/sign/feedback drives-off correction
first jump start/time first point/state age fake replay
stop at pose payload/cable config/inspection reduced no-object path
Cartesian offset TF/calibration age/measured TCP offline recalibration
false grasp gripper/object width/current/video empty/soft tests
restart replay recovery goal/restart log fake에서 auto resume 제거

11. Gate review를 실제로 운영하는 법

Gate review는 evidence가 attempt 중 준비됐다면 15분 안에 끝나야 한다. Operator는 manifest, 현재 signed gate와 늘리려는 physical authority를 제시한다. Recorder는 required signal과 acceptance–motion–controller–task timeline을 보여 준다. Observer는 software가 잡지 못한 소리, vibration, cable movement, object movement, 사람이 stop에 접근할 수 있었는지를 보고한다. Owner는 promote, 동일 조건 repeat, rollback, block 중 하나를 고른다. “Unexplained anomaly가 있지만 promote”는 선택지에 없다.

사례 1 — 성공했지만 예상보다 두 배 느린 joint motion

Action이 accepted되고 expected direction으로 움직여 success를 반환했어도 wall time이 두 배면 task result만으로 G4를 promote하지 않는다. Speed scaling, safety mode, trajectory timestamps, update missed cycle과 network timing이 차이를 설명해야 한다. 필요한 log를 추가해 동일 command를 repeat한다. Observed time에 맞추려고 duration을 절반으로 줄이면 원인을 숨기고 acceleration 요구를 키울 수 있다.

Review artifact에는 nominal duration, first-motion latency, actual duration, scaling min/mean, maximum joint error, update period percentile, vendor state와 observer note를 함께 둔다. 원인이 approved reduced scaling이고 behavior가 반복되면 그 조건을 baseline으로 기록한다. 원인이 unknown이면 speed를 올리지 않는다.

사례 2 — 세 번 같은 곳에 갔지만 TCP가 12 mm 어긋남

Repeatability는 좋지만 accuracy가 틀린 경우다. G5를 hold하고 TCP, base, camera/fixture transform과 calibration revision을 비교한다. Joint endpoint와 FK가 일치하면 controller tracking보다 frame/tool calibration을 우선 본다. Independent measurement 없이 planner success만 보고 “원래 이런 offset”이라고 판단하지 않는다.

Task-specific magic offset은 한 pose에서 증상을 숨기고 다른 orientation에서 error를 키운다. Recalibration 후 같은 goal과 scene hash로 repeat해 offset이 줄었는지 확인한다. Configuration ID를 바꿔 이전 log와 섞이지 않게 한다.

사례 3 — object lift 중 protective stop

마지막 signed empty-tool joint gate로 rollback한다. Object, payload/CoM config, cable posture, scaling, tracking error와 vendor fault를 보존하고 reset 전에 tool, fixture와 drop zone을 inspect한다. Cause가 과소 설정된 payload인지, cable snag인지, collision threshold인지, 실제 충돌인지 evidence로 나눈다. Cause와 recovery가 입증되지 않으면 reset이 정상이어도 object motion을 block한다.

E-stop이나 protective stop을 “한 번 발생한 nuisance”로 분류하지 않는다. Stop function이 작동한 것은 좋은데, 왜 요구됐는지를 모르는 것은 나쁜 상태다. Recovery 후에는 새 attempt ID와 preflight가 필요하고 interrupted goal을 자동 resume하지 않는다.

Review 결정 조건 다음 attempt
Promote threshold 모두 통과, unexplained observation 없음 변수 하나만 증가
Repeat unchanged signal 부족, 새 authority 불필요 같은 command, logging 추가
Roll back model/config/tool 변경 또는 anomaly 이전 signed gate
Block safety/owner/frame/fault/recovery unknown non-motion investigation

Daily commissioning board

하루 시작에는 현재 gate, known-good manifest, unresolved blocker, approved object와 maximum envelope를 board에 쓴다. Attempt가 끝날 때 result와 next decision을 갱신한다. 교대하거나 다른 연구자가 terminal을 잡아도 memory에 의존하지 않는다. 하루 끝에는 robot을 named safe state에 두고 power/network state, object/tool 위치, open fault, next owner를 handoff한다.

이 board는 bureaucratic overhead가 아니라 accidental authority escalation을 막는다. 전날 G5까지 갔어도 tool을 교체하거나 firmware, calibration, controller config가 바뀌면 영향받는 gate로 rollback한다. Camera만 바뀌면 joint G4는 유지될 수 있지만 perception-based Cartesian/pick gate는 다시 검증한다. 무엇이 바뀌었는지와 어느 invariant를 깨는지를 기준으로 rollback depth를 정한다.

12. Bounded Codex prompt


Manifest, description, MoveIt/ros2_control config, launch와 공식 manual을 read-only로
감사하라. Hardware에 접속하거나 수정하지 말라. G0–G6 gate마다 prerequisite,
observation, pass evidence, stop, rollback, human owner를 만들고 unsupported value는
UNKNOWN으로 두라. Real motion command나 limit bypass를 쓰지 말라.

Fake/simulator에서 joint sign, state freshness, TF age, collision, ownership, action
accept/feedback/cancel/abort, stale command와 restart만 test하라. Real IP/plugin/enable,
limit change, auto retry는 금지한다. Failure가 재현되고 artifact가 reviewable하면 완료다.

Offline log failure를 description/frame, network/time, ownership, trajectory/tolerance,
vendor mode/scaling, payload/cable, gripper, safety/recovery로 분류하라. Fact, missing
evidence, non-motion falsification, go/no-go와 human approver를 반환하라. Reset/bypass 금지.

Codex는 checklist/test를 준비할 수 있지만 gate sign, physical clearance observation, protective-stop reset, motion authorization을 할 수 없다 [19].

13. 근거 등급, 논쟁점과 한계

Driver, controller, gripper와 simulator는 공식 manual/documentation을 썼다. TF, control과 risk는 primary paper/standard를 썼다. Vendor instruction은 product interface의 근거이지 assembled application safety의 independent proof가 아니다.

Simulator success와 motion authorization은 평균낼 논쟁이 아니다. Simulation은 repeatable software behavior와 collision을 보여 주지만 real mount, payload, cable, safety state와 human procedure를 검증하지 않는다. Authorization은 signed real-cell gate에 있다.

Action acceptance도 safe completion과 다르다. Acceptance는 server가 goal을 받았다는 뜻이고 controller completion은 tolerance 기준이다. Task success에는 independent physical KPI가 필요하다. 세 결과를 따로 보존한다.

한계: version은 2026-07-14 이후 바뀐다. Manual은 custom tool 전체를 다루지 않는다. Local law/review는 다르다. 모든 cell에 안전한 generic speed/force는 없다. 이 tutorial은 standard, vendor training과 qualified assessment를 대체하지 않는다.

제조 셀 적용 체크포인트

UR5e+2F tray transfer에서는 object 전 empty-tool path로 G0–G5를 sign한다. Tool load, TCP, controller, scaling과 fixture scene을 pin하고 first pick은 fixed object pose를 쓴다. attempt_id, manifest_hash, gate, goal_id, accept, motion_start, controller_result, task_result, joint/TF age, error/tolerance, scaling, safety/fault, gripper, object, observer, recovery를 기록한다.

Owner Sign-off
Robot identity, firmware, mode, recovery
Mechanical mount, load, cable, finger, fixture
Software tuple, graph, owner, log, rollback
Controls limit, trajectory, tolerance, timing
Safety assessment, stop, observer, recovery
Task independent pick/place KPI

다음에 배울 것

Deterministic first-motion ladder가 완성됐다. Chapter 8에서는 leader–follower teleoperation과 첫 learned policy를 추가한다. Operator tracking, retargeting, stale-input watchdog, dataset quality와 policy uncertainty가 새로 생기며 이 장의 frame, controller, stop과 logging gate를 그대로 상속한다.

Joint move, Cartesian move, gripper cycle, cancel, protective recovery와 simple pick/place가 accept/motion/controller/task 결과로 나뉘어 반복되기 전에는 넘어가지 않는다.

주석이 있는 연구 경로

아래 자료는 재현 가능한 첫 learning pipeline를 더 깊이 확인하기 위한 경로다. 성공률을 빌려오는 목록이 아니라, 어떤 가정·interface·실험을 원문에서 비교해야 하는지에 따라 묶었다. 각 결과는 해당 platform과 protocol에 한정해 읽는다.

경로 연결된 primary source 읽을 때의 질문
기초와 정의 RT-1: Robotics Transformer for Real-World Control at Scale; DROID: A Large-Scale In-The-Wild Robot Manipulation Dataset; pi0: A Vision-Language-Action Flow Model for General Robot Control; TRANSIC: Sim-to-Real Policy Transfer by Learning from Online Correction 용어와 system boundary를 원 논문의 model·assumption으로 확인한다.
구현과 측정 OpenVLA: An Open-Source Vision-Language-Action Model; EgoMimic: Scaling Imitation Learning via Egocentric Video; Open X-Embodiment: Robotic Learning Datasets and RT-X Models hardware, dataset, controller와 metric이 이 장의 workflow에 실제로 대응하는지 확인한다.
반례와 확장 Octo: An Open-Source Generalist Robot Policy; SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics; Predictive Sampling: Real-time Behaviour Synthesis with MuJoCo 다른 embodiment와 task에서 무엇이 깨지는지 비교하고 universal threshold로 일반화하지 않는다.

참고문헌

  1. Universal Robots (2026a). UR Driver Startup and Mock Hardware. Official documentation.
  2. Universal Robots (2026b). UR5e User Manual. Official manual.
  3. Universal Robots (2026c). Controllers and Speed Scaling. Official documentation.
  4. Universal Robots (2026d). Driver Installation Guidance. Official documentation.
  5. Franka Robotics (2025a). Franka Research 3 Product Manual. Official manual.
  6. Franka Robotics (2026b). libfranka Changelog. Official history.
  7. ros-controls (2026a). gz_ros2_control. Official docs.
  8. ros-controls (2026b). ros2_control Architecture. Official docs.
  9. ros-controls (2026c). Joint Trajectory Controller. Official docs.
  10. ros-controls (2026d). Controller Manager. Official docs.
  11. Foote, T. (2013). tf. DOI: 10.1109/TePRA.2013.6556373.
  12. MoveIt (2025). move_group Architecture. Official docs.
  13. Robotiq (2026). 2F Instruction Manual. Official manual.
  14. Franka Robotics (2026). Franka Hand Manual. Official manual.
  15. NVIDIA (2026). Isaac Sim ROS 2 FAQ. Official docs.
  16. Hugging Face (2026). LeRobot Policy Inference. Official docs.
  17. ISO (2010). ISO 12100 Risk Assessment. International Standard.
  18. ISO (2025). ISO 10218-2:2025. International Standard.
  19. OpenAI (2026). Codex Best Practices. Official guidance.