SHA256
wired up voice and vision, testing motion
This commit is contained in:
Executable
+108
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
PROJECT="$HOME/esarobotech/r1"
|
||||
INTERFACE="${1:-enp3s0}"
|
||||
|
||||
cd "$PROJECT"
|
||||
|
||||
PIDS=()
|
||||
|
||||
cleanup() {
|
||||
echo
|
||||
echo "[R1] Stopping all services..."
|
||||
|
||||
for pid in "${PIDS[@]}"; do
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
kill "$pid" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
|
||||
wait 2>/dev/null || true
|
||||
|
||||
echo "[R1] All services stopped."
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
echo "======================================"
|
||||
echo " R1 complete stack"
|
||||
echo "======================================"
|
||||
echo "Interface: $INTERFACE"
|
||||
echo
|
||||
|
||||
echo "[R1] Starting camera..."
|
||||
./scripts/start_camera.sh "$INTERFACE" &
|
||||
PIDS+=("$!")
|
||||
|
||||
sleep 1
|
||||
|
||||
echo "[R1] Starting YOLO..."
|
||||
./scripts/start_yolo.sh &
|
||||
PIDS+=("$!")
|
||||
|
||||
sleep 1
|
||||
|
||||
echo "[R1] Starting LLM..."
|
||||
./scripts/start_llm.sh &
|
||||
PIDS+=("$!")
|
||||
|
||||
echo "[R1] Waiting for LLM server..."
|
||||
|
||||
for i in {1..60}; do
|
||||
if curl -fsS \
|
||||
http://127.0.0.1:8080/health \
|
||||
>/dev/null 2>&1; then
|
||||
|
||||
echo "[R1] LLM ready."
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 1
|
||||
|
||||
if [[ "$i" -eq 60 ]]; then
|
||||
echo "[ERROR] LLM failed to become ready."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[R1] Waiting for camera frame..."
|
||||
|
||||
for i in {1..20}; do
|
||||
if [[ -s /dev/shm/robot_frame.jpg ]]; then
|
||||
echo "[R1] Camera ready."
|
||||
break
|
||||
fi
|
||||
|
||||
sleep 0.5
|
||||
|
||||
if [[ "$i" -eq 20 ]]; then
|
||||
echo "[WARN] Camera frame not available yet."
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[R1] Starting voice assistant..."
|
||||
./scripts/start_voice.sh "$INTERFACE" &
|
||||
PIDS+=("$!")
|
||||
|
||||
echo "[R1] Starting motion..."
|
||||
./scripts/start_motion.sh "$INTERFACE" &
|
||||
PIDS+=("$!")
|
||||
|
||||
sleep 1
|
||||
|
||||
echo
|
||||
echo "======================================"
|
||||
echo " R1 stack running"
|
||||
echo "======================================"
|
||||
echo "Camera: /dev/shm/robot_frame.jpg"
|
||||
echo "YOLO: /dev/shm/r1_detections.json"
|
||||
echo "LLM: http://127.0.0.1:8080"
|
||||
echo
|
||||
echo "Press Ctrl+C to stop everything."
|
||||
echo
|
||||
|
||||
# Wait until one service exits.
|
||||
wait -n "${PIDS[@]}"
|
||||
|
||||
echo "[R1] A service exited; shutting down the stack."
|
||||
Reference in New Issue
Block a user