Files
hermes-bot/ros/hermes_bringup/config/robot.yaml
T
kyleandClaude Sonnet 5.5 3b65697f1e Give Hermes recognitions, not just photos: faces(), tracking ids, discovery
Hermes asked for structured detections instead of a bare JPEG. faces() returns the
faces in view with no photo: a persistent track id, bbox, detection confidence, how
long the person has been in view, and identity {name, similarity} or null, never a
made-up name. look() returns that same JSON as text plus the photo (send_image can
skip it); list_people() gives names and counts; robot://status and two prompts make
the server discoverable, where list_resources and list_prompts were empty. The
detector now tracks faces across frames (FaceTracker) and publishes the track id and
the identity as a second hypothesis.

Deliberately not built: embeddings in responses, age/gender attributes, auto-updating
face data, and a remote enroll tool (a prompt could make the robot call anyone "Kyle").

Checked end to end: a real Hermes turn on the local ornith model called faces() (0.03 s,
no image) and answered that Kyle was there at 0.78 similarity. Also: the camera is
calibrated (18 of 24 views, 0.296 px, outlier rejection added) and the calibration is
kept in pi/calibration and restored by the installer.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AFN8nRRCiDiMN7ChBpHJhs
2026-10-05 01:21:32 -07:00

42 lines
1.6 KiB
YAML

# Parameters for the robot's nodes, keyed by node name. The MCP token and other secrets do not
# belong here: they stay in an env file readable only by the service user.
camera:
ros__parameters:
width: 1296 # the OV5647's full-field binned mode: whole field of view
height: 972
format: RGB888
FrameDurationLimits: [66666, 66666] # 15 fps: ~20% of a core, vs ~40% at 30; plenty for 4 Hz faces
jpeg_quality: 80
hermes_face:
ros__parameters:
rotation: 270 # mounted pose, microSD end up (the panel is portrait)
x_offset: 0
y_offset: 80 # the 240x240 glass sits 80 rows into the controller's RAM
fps: 30.0
phosphor: P7
style: phosphor
initial_state: sleeping # no agent connected until hermes_mcp's heartbeat says so
agent_timeout_s: 10.0
gaze_follow: true
audio_drive: true
hermes_face_detector:
ros__parameters:
rate_hz: 4.0
recognize: true # only recognises people enrolled with hermes_vision.people
publish_debug: false
hermes_audio_state:
ros__parameters:
rate_hz: 30.0
hermes_mcp:
ros__parameters:
bind: 10.55.0.2 # the USB link; the firewall accepts 8765 only from 10.55.0.1 on usb0
port: 8765
head: false # no servos fitted yet: turn_head and head_position stay unregistered
speakers: false # no speakers fitted yet: reported honestly in robot://status
connected_grace_s: 30.0 # an authenticated client heard within this long keeps the heartbeat going
look_timeout_s: 3.0