-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_all_modules.sh
More file actions
executable file
·79 lines (64 loc) · 2.07 KB
/
Copy pathtest_all_modules.sh
File metadata and controls
executable file
·79 lines (64 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
echo "🧪 Test complet de tous les modules 🐢"
echo "========================================"
cd ~/turtle_navigation_ws
source install/setup.bash
# Fonction pour tuer turtlesim proprement
kill_turtlesim() {
pkill -f "ros2 run turtlesim turtlesim_node" 2>/dev/null
sleep 1
}
# Fonction de test
test_module() {
local module_name=$1
local description=$2
local timeout_sec=$3
echo ""
echo "🔍 Test: $description"
echo " Module: $module_name"
# Tuer turtlesim s'il est déjà en cours
kill_turtlesim
# Démarrer turtlesim
echo " Démarrage de turtlesim..."
ros2 run turtlesim turtlesim_node > /dev/null 2>&1 &
TURTLE_PID=$!
sleep 3
# Réinitialiser la position (une seule fois)
echo " Réinitialisation de la position..."
timeout 2 ros2 service call /reset std_srvs/srv/Empty > /dev/null 2>&1
# Lancer le module avec timeout
echo " Exécution pendant ${timeout_sec} secondes..."
timeout $timeout_sec ros2 run turtle_navigation $module_name
local exit_code=$?
# Analyse du résultat
case $exit_code in
0)
echo " ✅ Test terminé normalement"
;;
124)
echo " ⏱️ Test interrompu par timeout (comportement normal)"
;;
*)
echo " ⚠️ Code de sortie: $exit_code"
;;
esac
# Arrêt propre
kill_turtlesim
sleep 1
}
# Nettoyer avant de commencer
kill_turtlesim
# Tests
test_module "go_to_goal" "Navigation vers un point (8,8)" 10
test_module "wall_follower" "Suivi de mur" 15
test_module "obstacle_avoidance" "Évitement d'obstacles" 15
# Nettoyage final
kill_turtlesim
echo ""
echo "✅ Tests terminés avec succès !"
echo ""
echo "📊 RÉSUMÉ DU PROJET TURTLE NAVIGATION:"
echo " ✅ go_to_goal: Navigation PID vers point cible"
echo " ✅ wall_follower: Suivi de mur avec logique à états"
echo " ✅ obstacle_avoidance: Évitement avec champs de potentiel"
echo " ✅ Package ROS 2: Correctement installé et fonctionnel"