Merge feature/topic-normalize into develop#18
Conversation
…ace and topic management; remove visualization sidecar from startup command.
… stack; integrate haru-viz service and adjust image tags for consistency.
…d clarify Azure Kinect depth mode settings
There was a problem hiding this comment.
Pull request overview
Updates the runtime configuration for the Perception stack to use normalized topic namespaces (via HARU_TOPIC_PREFIX) and introduces new Perception services (skeletons, haru-belief, haru-viz), plus adds a new recorder compose stack.
Changes:
- Refactors Perception compose/services and env vars to use normalized topic namespaces and updated service set (adds
skeletons, replacespeople/visualizationwithharu-belief/haru-viz). - Adds a new
recorderstack (apps/docker-compose-recorder.yaml+envs/recorder.env) and exposes it viascripts/compose.sh. - Updates documentation and startup commands to reflect the new Perception service lineup and web-based viz.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| start.sh | Updates Perception start command (but currently out of sync with new compose services). |
| scripts/compose.sh | Adds recorder stack support and adjusts formatting. |
| envs/recorder.env | New environment file for recorder stack configuration. |
| envs/perception.env | Updates ROS/FastDDS settings and introduces normalized topic/env conventions. |
| apps/docker-compose-recorder.yaml | New compose stack for haru-recorder. |
| apps/docker-compose-perception.yaml | Major Perception stack update: new services, normalized namespaces, new viz approach. |
| apps/docker-compose-all.yaml | Updates all-in-one stack to include new Perception services. |
| README.md | Updates pull/start instructions and expected Perception behavior. |
| .gitignore | Adds Python cache artifacts to ignore list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| # Perception services | ||
| bash scripts/compose.sh perception up azure-kinect faces hands people visualization --force-recreate -d | ||
| bash scripts/compose.sh perception up azure-kinect faces hands people --force-recreate -d |
There was a problem hiding this comment.
start.sh still tries to start the people service, but apps/docker-compose-perception.yaml no longer defines a people service (it has haru-belief/haru-viz/skeletons instead). This will make ./start.sh fail with "no such service". Update the perception up ... list to match the current perception stack services.
| bash scripts/compose.sh perception up azure-kinect faces hands people --force-recreate -d | |
| bash scripts/compose.sh perception up azure-kinect faces hands haru-belief haru-viz skeletons --force-recreate -d |
| echo "Stacks: perception | speech | llm | reasoner | tts | simulator | all" >&2 | ||
| exit 1 | ||
| echo "Usage: $(basename "$0") <stack> <docker compose args...>" >&2 | ||
| echo "Stacks: perception | speech | llm | reasoner | tts | simulator | all" >&2 |
There was a problem hiding this comment.
The usage help text doesn’t include the newly added recorder stack, even though it’s supported in the case statement. Update the "Stacks:" list so it matches the actual accepted values.
| echo "Stacks: perception | speech | llm | reasoner | tts | simulator | all" >&2 | |
| echo "Stacks: perception | speech | llm | reasoner | tts | simulator | recorder | all" >&2 |
| - ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority:ro | ||
| - type: bind | ||
| source: ../../haru-viz | ||
| target: /workspace/haru-viz |
There was a problem hiding this comment.
haru-viz bind-mounts ../../haru-viz unconditionally. If that host path doesn’t exist (or is empty), Docker will create/mount an empty directory and mask whatever the image provides at /workspace/haru-viz, which can break startup. Consider making this mount opt-in (e.g., via a profile or an env-var controlled host path) or remove it for non-dev usage.
| target: /workspace/haru-viz | |
| target: /workspace/haru-viz | |
| bind: | |
| create_host_path: false |
| image: ${HARU_RECORDER_IMAGE:-ghcr.io/haru-project/haru-recorder:latest} | ||
| network_mode: *network-mode | ||
| env_file: | ||
| - ../envs/recorder.env | ||
| ports: | ||
| - "${HARU_RECORDER_WEB_UI_PORT:-8088}:${HARU_RECORDER_WEB_UI_PORT:-8088}" | ||
| volumes: |
There was a problem hiding this comment.
docker-compose-recorder.yaml sets network_mode to host by default, but also publishes ports. With network_mode: host, Docker Compose ignores ports: (and emits a warning), which can confuse users about how to reach the web UI. Either default COMPOSE_NETWORK_MODE to bridge for this stack, or document/remove the ports: mapping when running in host mode.
| docker pull ghcr.io/haru-project/strawberry-ros-hands:latest | ||
| docker pull ghcr.io/haru-project/haru-belief:feature-topic-normalize | ||
| docker pull ghcr.io/haru-project/haru-viz:develop | ||
| docker pull ghcr.io/haru-project/strawberry-ros-people:latest |
There was a problem hiding this comment.
The install instructions still include pulling strawberry-ros-people:latest, but this PR removes the people service from the default perception compose stack (replaced by haru-belief). This makes the image pull list misleading; drop strawberry-ros-people here or explain when it’s still needed.
| docker pull ghcr.io/haru-project/strawberry-ros-people:latest |
| - The `haru-viz` web UI is reachable at `http://127.0.0.1:5173` | ||
| - rosbridge stays co-located with `haru-viz` and continues using ports `9090`, `9091`, and `9092` | ||
|
|
||
| **Related repositories for debug**: [strawberry-ros-people](https://github.com/haru-project/strawberry-ros-people/tree/ros2) |
There was a problem hiding this comment.
This section still points readers to strawberry-ros-people for perception-layer debugging, but the PR’s perception stack no longer runs the people service by default. Update the “Related repositories for debug” link to match the services users are actually running (e.g., haru-belief, haru-viz, strawberry-ros-skeletons, etc.).
| **Related repositories for debug**: [strawberry-ros-people](https://github.com/haru-project/strawberry-ros-people/tree/ros2) | |
| **Related repositories for debug**: [haru-belief](https://github.com/haru-project/haru-belief/tree/ros2), [haru-viz](https://github.com/haru-project/haru-viz), [strawberry-ros-skeletons](https://github.com/haru-project/strawberry-ros-skeletons/tree/ros2) |
…ose and perception.env
…oner postprocessor)
Summary
Create the PR for the existing
feature/topic-normalizebranch againstdevelop.Validation
Branch diff inspected locally.