Ink palette¶
The installed palette is calibration palette v11
(cad/calibration-palette-v11), one printed piece on a single longitudinal
2020 rail, secured by one accessible M4 screw. It carries six ink caps, a touch-trigger probe, a Raspberry Pi
camera aimed at the probe ball, the drawing e-stop and an AprilTag on the
base-mounted diamond seat. It is the only palette. It is independent of the robot URDF;
its pose in the arm base is measured after every placement.
Source |
Meaning |
|---|---|
|
The palette body and its fixed frames. Generated by the CAD build; do not edit |
|
Body mesh (visual and collision) and the viewer’s copy |
|
The six slots, named after the URDF |
|
Revision |
|
|
|
Recorded cap contents |
Frames¶
palette_root is the CAD frame. Its origin is on the probe axis at the rail
tops (z = 0 is the top of the 2020 rails). +X points from the probe toward the
Pi camera and the e-stop enclosure, +Y crosses the rail, and +Z is up.
Frame |
Position (mm) |
Meaning |
|---|---|---|
|
68, −26, 8.2 |
The installed sticker’s centre on its surface, yawed 135° (below) |
|
0, 0, 55.6 |
Centre of the probe’s 2 mm ball |
|
122, 0, 55.6 |
The Pi camera lens; its +X points at the ball |
|
74, 40, 32 |
The upward-facing E-stop; its +X points up |
Caps¶
The caps stand in an L-M-S-S-M-L crescent from +Y to −Y, on a 36.5 mm arc about the probe axis centred at 175°, on the side away from the enclosure. Adjacent holders keep a 3 mm edge gap.
Slot |
Size |
Centre X, Y (mm) |
Floor Z (mm) |
|---|---|---|---|
|
large |
−7.47, 35.73 |
18 |
|
medium |
−25.85, 25.77 |
22 |
|
small |
−34.84, 10.88 |
22 |
|
small |
−36.20, −4.66 |
22 |
|
medium |
−29.93, −20.89 |
22 |
|
large |
−13.56, −33.89 |
18 |
The inkcap_* frames are cap support floors, not rims. A rim is its floor
plus the cap’s outside height from config/palette.yaml, which puts every rim
32 mm above the rail tops, flush with the holder tops. An entry in rim_z_m
overrides the computed rim for that cap once it is measured.
config/palette.yaml states each cap by its outside: diameter_m across
the rim, height_m from rim top to cap bottom, and wall_m for the rim, wall
and base. Outside, the caps are 15 × 14, 11 × 10 and 8 × 10 mm (diameter ×
height; large, medium, small), in pockets of 15.6, 12.2 and 8.6 mm. The
outside is what rests in the pocket and sets the rim height; the bore a tool
enters is derived (ink_spec.CapSize.bore_diameter_m, .depth_m) and is a
millimetre narrower.
All six slots are assigned to the right arm; each placement still needs reach
and clearance checks.
The palette tag¶
The same AprilTag 36h11 ID 0 sticker is reused. Its inventory retains the
46 mm black edge; the 60 mm CAD seat is centred at (68, -26) mm, with its
surface at Z8. The seat is rotated 45 degrees. Sticker rotation is separate
from seat rotation: the installed palette_tag frame must describe the
printed pattern’s orientation, not assume it from the platform.
The installed pattern’s +X runs 135° from the palette’s +X
(installed_tag in cad/calibration-palette-v11/design.json, confirmed).
The overhead D555 measured it on 2026-09-30: of the seat’s four quarter turns,
only 135° puts the probe’s top, the e-stop and the camera plate where the
D555’s depth finds them. A re-applied sticker needs the same check.
The previous v10 tag transform and palette placement are retired; no old camera measurement is transplanted to the new print.
Measuring the palette pose¶
The probe calibration measures the station afresh in every run, never from a
stored pose: tatbot ros station places it in the arm’s base from the
overhead D555’s view of the palette tag, through the arm’s registration
(ros/README.md §7). The arm registration and palette placement must describe the current rig.
Measure each arm separately:
tatbot ros station --arm right
tatbot ros station --arm left
The ROS stack measures the station afresh from the D555, validates the views,
and carries the full palette_tag transform from urdf/palette.urdf into the
arm base. The subsequent calibration run enforces freshness and checks for
station movement. The earlier camera-scan placement (tatbot vision palette
and its viewer preview) is retired. A missing placement never falls back to
the synthetic simulation pose.
Simulation¶
The simulator loads the palette from urdf/palette.urdf and
config/palette.yaml, with the tag from the fiducial inventory. It places the
palette at simulation_root_xyz_m and simulation_root_quaternion_wxyz in
config/palette_geometry.json, a synthetic scene pose that is never a
hardware fallback.
Dipping¶
The 3RL needle cartridge dips; the ballpoint is a cartridge tool that never
does. A dip aims by the station touch, the probe’s ball where the arm’s own
touches found it, and the caps’ CAD offsets about it, not by the overhead
fix alone (ros/README.md section 6).
The probe and the camera¶
The touch probe and the Pi camera are for tool-tip and station calibration at
the ROS 2 stack’s palette station (ros/README.md section 7). The probe is
normally closed, wired to the palette Pi’s GPIO27. The camera is an Arducam
64 MP autofocus module (OmniVision OV64A40) on the palette Pi’s CSI
connector, aimed along −X at the probe ball 122 mm away. This mount now reaches the documented near-focus distance;
focus and image scale must be checked on the installed camera. Measurements
from the former 55 mm mount do not describe the new optical setup.
The probe relay and the driver’s probe guard read the probe, and the probe
calibration touches the tool’s tube end on its ball (ros/README.md §7); no
software reads the camera yet.
Retired¶
The eight-cap rack and the three-tip volcano fixture (cad/palette-v2) are
retired, with their meshes and their 81 mm ID 22 tag, and so is everything
built on the fixture’s three pits: the planted-tip refinement of the palette
pose, cup teaching, and the per-arm hand-guided recipe with its kinematic
refinement. None of their commands or calibration phases exists now.
cad/palette-v2 remains only because the integrated-station concept
(cad/integrated-station-v1) reads its geometry. The v11 touch probe replaces
the pits for tool-tip and station calibration.