.. _vision-tag-detection-example: Fiducial tag detection ====================== Detect ArUco, AprilTag or QR markers with the appliance-side detector. The detector subscribes to the camera inside ROS and streams back compact tag frames, so image bytes never leave the appliance. Supplying the camera's ``CameraInfo`` topic and the printed tag size adds a pose per tag, expressed in the camera optical frame and ready to re-express in any TF frame. Corners are reported top-left, top-right, bottom-right, bottom-left in the tag's own orientation. The tag frame has its origin at the tag centre with ``+x`` right, ``+y`` up and ``+z`` pointing out of the tag toward the camera. The example tracks the ArUco cube on the office world's table, just in front of the pick blocks in front of the first fixed-base spawn point. The cube is 50 mm across with one 36 mm ``DICT_4X4_50`` marker per face: IDs 0 to 5 are the front, right, back, left, top and bottom faces. Because every marker sits flush on its face, the cube centre is 25 mm behind each visible tag along its ``-z`` axis. .. tab-set:: :sync-group: sdk-language .. tab-item:: Python :sync: python .. literalinclude:: scripts/vision-tag-detection.py :language: python .. tab-item:: TypeScript :sync: typescript .. literalinclude:: scripts/vision-tag-detection.ts :language: typescript