feat: Dockerfile BlueOS, deploy_pi.sh rsync, camera_mount.scad baseline 110mm

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Floppyrj45
2026-04-19 18:07:28 +02:00
parent f9436df2a0
commit d36255cf62
4 changed files with 229 additions and 0 deletions

73
scripts/deploy_pi.sh Normal file
View File

@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# Deploy SLAM stéréo sur Raspberry Pi via SSH/rsync
# Usage: bash deploy_pi.sh <IP_PI>
set -e
# --- Variables ---
PI_USER="pi"
PI_PASS="raspberry"
PI_DEST="/home/pi/slam_stereo"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
# --- Argument ---
if [ -z "$1" ]; then
echo "[ERREUR] Usage: $0 <IP_PI>"
echo "Exemple: $0 192.168.2.2"
exit 1
fi
PI_HOST="$1"
echo "[INFO] Déploiement vers $PI_USER@$PI_HOST:$PI_DEST"
# --- Test connectivité ---
echo "[INFO] Test SSH..."
if ! sshpass -p "$PI_PASS" ssh -o StrictHostKeyChecking=no \
-o ConnectTimeout=5 "$PI_USER@$PI_HOST" "echo 'SSH OK'" 2>/dev/null; then
echo "[ERREUR] Impossible de se connecter à $PI_HOST"
echo "[INFO] Vérifier: IP correcte, Pi allumé, sshpass installé"
exit 1
fi
# --- Créer dossiers sur Pi ---
echo "[INFO] Création des dossiers..."
sshpass -p "$PI_PASS" ssh -o StrictHostKeyChecking=no "$PI_USER@$PI_HOST" \
"mkdir -p $PI_DEST/{src/calibration,src/slam,src/interface,config}"
# --- Rsync src/ ---
echo "[INFO] Transfert src/..."
sshpass -p "$PI_PASS" rsync -avz --progress \
-e "ssh -o StrictHostKeyChecking=no" \
"$PROJECT_DIR/src/" \
"$PI_USER@$PI_HOST:$PI_DEST/src/"
# --- Rsync config/ ---
echo "[INFO] Transfert config/..."
sshpass -p "$PI_PASS" rsync -avz --progress \
-e "ssh -o StrictHostKeyChecking=no" \
"$PROJECT_DIR/config/" \
"$PI_USER@$PI_HOST:$PI_DEST/config/" 2>/dev/null || echo "[WARN] config/ vide, skip"
# --- Install dépendances Python ---
echo "[INFO] Installation dépendances Python..."
sshpass -p "$PI_PASS" ssh -o StrictHostKeyChecking=no "$PI_USER@$PI_HOST" bash << 'REMOTE'
set -e
pip3 install --upgrade pip --quiet
pip3 install opencv-python flask numpy pyyaml --quiet
echo "[OK] Dépendances installées"
REMOTE
# --- Test Flask ---
echo "[INFO] Test Flask..."
sshpass -p "$PI_PASS" ssh -o StrictHostKeyChecking=no "$PI_USER@$PI_HOST" \
"cd $PI_DEST && python3 -c 'import flask, cv2, numpy, yaml; print(\"[OK] Imports OK\")'"
echo ""
echo "=== DEPLOY TERMINÉ ==="
echo "Interface web: http://$PI_HOST:5000"
echo "Démarrage manuel:"
echo " ssh $PI_USER@$PI_HOST"
echo " cd $PI_DEST && python3 src/interface/app.py"
echo ""
echo "Note BlueOS: utiliser aussi le Dockerfile pour extension native"