12 KiB
Pytanie 21: Agent upostaciowiony w specyfikacji sterowników robotów
Pytanie
"Jak wykorzystuje się agenta upostaciowionego do specyfikacji sterowników robotów?"
Przedmiot: ERPM (Elementy Robotyki i Projektowania Mechatronicznego)
📚 Odpowiedź główna
1. Agent upostaciowiony (Embodied Agent)
Definicja
Agent upostaciowiony = agent posiadający fizyczne ciało, osadzony w rzeczywistym środowisku, zdolny do:
- Percepcji poprzez sensory
- Działania poprzez efektory
- Interakcji ze środowiskiem
┌─────────────────────────────────────────────────────────────────┐
│ ŚRODOWISKO FIZYCZNE │
│ │
│ ┌───────────────────────────────────────────────┐ │
│ │ ROBOT (Agent upostaciowiony) │ │
│ │ │ │
│ │ Sensory Sterownik Efektory │ │
│ │ ┌─────┐ ┌─────────┐ ┌─────┐ │ │
│ │ │Kamera│───────→│ Agent │─────→│Motor│ │ │
│ │ │LIDAR │ │ Logic │ │Grip │ │ │
│ │ │IMU │ │ (BDI) │ │Servo│ │ │
│ │ └─────┘ └─────────┘ └─────┘ │ │
│ │ ↑ ↓ │ │
│ │ └────────────────────────────────┘ │ │
│ │ Sprzężenie zwrotne │ │
│ └───────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
2. Specyfikacja sterownika robota
Architektura agentowa sterownika
┌─────────────────────────────────────────────────────────────────┐
│ WARSTWA DELIBERACYJNA (Agent BDI) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Beliefs: mapa, pozycja, stan zadania │ │
│ │ Desires: cel nawigacji, zadanie manipulacji │ │
│ │ Intentions: aktualny plan działania │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ WARSTWA WYKONAWCZA (Reactive behaviors) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Unikanie kolizji, śledzenie ścieżki, chwytanie │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓ │
│ WARSTWA SPRZĘTOWA (HAL) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Sterowniki silników, protokoły sensorów │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
3. Formalny model agenta
Cykl percepcja-akcja
Agent: Environment → Action
Agent: Percept* → Action (historia percepcji)
Formalnie:
see: E → P (funkcja percepcji)
action: P* → A (funkcja decyzyjna)
next: E × A → E (funkcja przejścia środowiska)
Specyfikacja w logice temporalnej
Przykład specyfikacji bezpieczeństwa:
□(obstacle_detected → ¬move_forward)
"Zawsze gdy wykryto przeszkodę, nie jedź do przodu"
Specyfikacja żywotności:
◇(at_goal)
"Kiedyś robot dotrze do celu"
Specyfikacja reaktywności:
□(request_pickup → ◇holding_object)
"Zawsze gdy jest żądanie podniesienia, kiedyś obiekt będzie trzymany"
4. Zastosowanie w ROS (Robot Operating System)
Agent jako węzeł ROS
┌─────────────────────────────────────────────────────────────────┐
│ ROS Architecture │
│ │
│ /sensor_node ──topic──→ /agent_node ──topic──→ /motor_node │
│ ↓ ↓ ↓ │
│ [Publikuje] [Subskrybuje & [Wykonuje] │
│ /scan Publikuje] /cmd_vel │
│ /camera /plan │
│ /odom /status │
│ │
│ Agent node implementuje: │
│ - Pętlę kontrolną (control loop) │
│ - Stan wewnętrzny (beliefs) │
│ - Planowanie (intentions) │
└─────────────────────────────────────────────────────────────────┘
Behavior Trees (BT)
Nowoczesna specyfikacja zachowań robota:
[Selector ?]
/ | \
/ | \
[Seq→] [Seq→] [Idle]
/ \ |
/ \ |
[Check] [Pick] [Navigate]
Węzły:
- Sequence (→): wykonaj wszystkie po kolei
- Selector (?): wykonaj pierwszy sukces
- Action: atomowa akcja
- Condition: sprawdzenie warunku
5. Hybrydowa architektura 3T
┌─────────────────────────────────────────────────────────────────┐
│ THREE-TIER (3T) Architecture │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ PLANNER (deliberation) │ │
│ │ - Długoterminowe planowanie │ │
│ │ - Rozumowanie symboliczne │ │
│ │ Czas: sekundy - minuty │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓↑ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ SEQUENCER (executive) │ │
│ │ - Wybór zachowań, nadzór wykonania │ │
│ │ - Finite State Machine / Behavior Tree │ │
│ │ Czas: 100ms - sekundy │ │
│ └─────────────────────────────────────────────────────────┘ │
│ ↓↑ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ CONTROLLER (reactive) │ │
│ │ - Pętle PID, unikanie kolizji │ │
│ │ - Bezpośrednia reakcja sensor → motor │ │
│ │ Czas: ms │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
6. Korzyści podejścia agentowego
| Korzyść | Opis |
|---|---|
| Modularność | Rozdzielenie percepcji, decyzji, akcji |
| Abstrakcja | Ukrycie szczegółów sprzętu |
| Autonomia | Robot sam decyduje o działaniach |
| Reużywalność | Zachowania przenośne między platformami |
| Weryfikowalność | Formalna specyfikacja → model checking |
🧠 Mnemoniki
"Agent = See-Think-Act":
Percepcja → Deliberacja → Akcja
"3T = Plan-Sequence-Control":
Trzy warstwy od abstrakcji do sprzętu
"BDI w robocie":
- Beliefs = mapa, pozycja
- Desires = cel nawigacji
- Intentions = plan ruchu
❓ Pytania dodatkowe
Q1: "Czym różni się agent reaktywny od deliberatywnego?"
Odpowiedź: Reaktywny: bezpośrednia reakcja sensor→akcja (np. unikanie kolizji), bez planowania. Deliberatywny: model świata, planowanie, cel. Hybryda łączy oba.
Q2: "Co to jest subsumption architecture?"
Odpowiedź: Architektura Brooksa - warstwy zachowań, wyższe mogą "nadpisać" niższe. Bez centralnego modelu świata. Skuteczna dla prostych robotów mobilnych.
Q3: "Jak weryfikować poprawność sterownika agentowego?"
Odpowiedź: Model checking (SPIN, NuSMV), symulacja (Gazebo), formalna specyfikacja (LTL, CTL), testy jednostkowe zachowań, testy integracyjne w symulacji przed wdrożeniem na sprzęt.
🎯 Kluczowe punkty
- Agent upostaciowiony = ciało + sensory + efektory + środowisko
- BDI dla deliberacji, reaktywność dla bezpieczeństwa
- 3T Architecture: Planner → Sequencer → Controller
- Behavior Trees nowoczesna specyfikacja zachowań➜ utils (main) ✗ git commit -m "feat: more aggressive android script" Running auto-fixers and shell_check before committing... Auto-fixing 3 shell file(s)... → Running shfmt... ✓ Auto-fixes applied and staged Running shell_check validation...
In scripts/utils/android_guardian/post-fs-data.sh line 5: MODULE_DIR="/data/adb/modules/android_guardian" ^--------^ SC2034 (warning): MODULE_DIR appears unused. Verify use (or export if used externally).
For more information: https://www.shellcheck.net/wiki/SC2034 -- MODULE_DIR appears unused. Verify...
Commit aborted: shellcheck found issues. Fix the remaining problems and retry the commit. 5. Korzyści: modularność, abstrakcja, weryfikowalność
📖 Źródła
- Wooldridge - "Introduction to MultiAgent Systems"
- Siciliano, Khatib - "Springer Handbook of Robotics"
- Gat - "Three-Layer Architectures"
- ROS Documentation - ros.org