Plan with multiple groups ========================= This example runs with the Franka Duo. On multi-arm robots the kinematics handle has no unambiguous default planning group, so call ``kinematics.group(name)`` to bind each arm. Bound handles share the same lazily cached robot model; end-effector access, ``pose()``, and ``move_*`` then target that group. Hand groups (for named ``open`` / ``close`` states) remain accessible through ``kinematics.model.group(...)`` (Python) or ``(await kinematics.getModel()).group(...)`` (TypeScript). .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. literalinclude:: scripts/kinematics-multiple-groups.py :language: python .. tab-item:: TypeScript :sync: typescript .. literalinclude:: scripts/kinematics-multiple-groups.ts :language: typescript