🧩 第06章:PoC統合制御構成と run_main.py

本章では、AITL-H PoCにおける統合制御スクリプト run_main.py の構成と制御ループ設計を説明します。
FSM・PID・UART・センサの各モジュールを接続し、PoCとしての一貫した動作を実現します。


1. ⚙️ 統合制御の目的


2. 🧾 run_main.py の基本構成

from uart_driver import UARTDriver
from fsm_engine import FSMEngine
from pid_controller import PIDController
from sensor_interface import SensorInterface

# 初期化
uart = UARTDriver()
fsm = FSMEngine(config_path="fsm_config.yaml")
pid = PIDController(kp=1.2, ki=0.5, kd=0.1)
sensor = SensorInterface()

# 制御ループ
while True:
    # 1. 外部命令を取得(UART)
    command = uart.receive()
    if command:
        fsm.handle_event(command)

    # 2. センサ更新
    sensor.update()

    # 3. FSMの出力目標値を取得
    target_speed = fsm.get_output()

    # 4. 実測値を取得して制御量生成(PID)
    measured_speed = sensor.read_distance()
    pwm = pid.compute(target_speed, measured_speed)

    # 5. PWM制御量を出力(仮想)
    print(f"PWM output: {pwm}")

3. 📡 情報の流れと各層の役割

UART(知性)
   ↓ command
FSM(本能)---→ target_speed
                      ↓
Sensor(現実)       measured_speed
                      ↓
PID(理性)---→ PWM信号出力

このように、FSMとPIDを軸にしたデータフロー制御が成立しています。


4. 🔄 テストとデバッグの観点


🔚 まとめ

PoC制御の中心は run_main.py にあり、FSM・PID・UART・センサを一体化して動作検証を可能にしています。
この構造をもとに、将来的にはFSMの再構成やPIDの自動調整などの拡張が見込まれます。


図6-1:PoC統合制御ブロック図(Mermaid)

flowchart TD
    subgraph Intelligence
        UART["UART\n(知性)"]
    end

    subgraph Instinct
        FSM["FSM\n(本能)"]
    end

    subgraph Reality
        Sensor["Sensor\n(現実)"]
    end

    subgraph Reason
        PID["PID\n(理性)"]
    end

    UART -->|command| FSM
    FSM -->|target_speed| PID
    Sensor -->|measured_speed| PID
    PID -->|PWM信号| Actuator["Actuator\n(モータ等)"]
    Sensor -.->|環境入力| Environment["Environment"]
    Environment --> Sensor

📝 ライセンス / License


🔗 ナビゲーション / Navigation

📄 READMEに戻る / Back to README
🏠 AITL-Hトップ / AITL-H Top