サイト内検索

第3話でご紹介するデモは、温度センサー、湿度センサー、気圧センサーを搭載したマイコンボードから送信されるデータをNVIDIA NemoClawで観測します。データの取得は、AIエージェントのCron機能を利用して、一定間隔で行います。

システム構成

センサーデータは、マイコンボードからBLE UARTで送信されます。NemoClawがBLE UARTのインターフェースを持たないため、REST APIエンドポイントであるセンサーデータサーバーを設け、NemoClawはそのサーバーからデータを取得します。

モジュール

役割

Raspberry Pi Pico 2 WH
 + Pimoroni Pico Enviro+ Pack

センサーデータの発信元

センサーデータサーバー

センサーデータを公開するAPIエンドポイント

vLLMサーバー

ローカルLLMの実行

NemoClaw

中心的なAIエージェント、SKILL.mdに基づく行動

Discord

ユーザーへの通知チャネル

センサーデータサーバー

BLE UARTで受信したセンサーデータを、REST APIで公開するセンサーデータサーバーを作成し、NemoClawは、このサーバーからデータを取得するようにしました。APIは本デモ固有のものですが、FastAPIを利用することにより、容易に実装できました。下図は、作成したAPIをSwagger UIを用いて表示しているものです。

ネットワークポリシー

NemoClawのAIエージェントがセンサーデータサーバーにアクセスするためのネットワークポリシーは以下のとおりです。

preset:
  name: sensor-api
  description: "Sensor API"
network_policies:
  sensor_api:
    name: sensor_api
    endpoints:
      - host: xx.xx.xx.xx  # 実際のIPアドレスを記載する
        port: 8100
        protocol: rest
        enforcement: enforce
        rules:
          - allow: { method: GET, path: "/" }
          - allow: { method: GET, path: "/status" }
          - allow: { method: GET, path: "/sensor/latest" }
          - allow: { method: GET, path: "/sensor/history" }
          - allow: { method: GET, path: "/ble/scan" }
          - allow: { method: POST, path: "/ble/connect" }
          - allow: { method: POST, path: "/ble/disconnect" }
    binaries:
      - { path: /usr/bin/curl }
      - { path: /usr/local/bin/node }

エージェントスキル

センサーデータサーバーの利用方法は、Agent Skillsに準拠した形式で記述し、nemoclaw sandbox skill installコマンドでインストールします。このエージェントスキルにより、プロンプトで指示せずとも、AIエージェントはセンサーデータの取得方法を理解します。

AIエージェントとの会話例

以下は、AIエージェントにセンサーデータを読み出すよう依頼した例です。「BME688」はセンサーデバイスの型名です。

Cronジョブの例

以下は、Cronジョブで、センサーデータを定期的に監視した場合の例です。

プロンプト:「bme688-sensor-api SKILLを参照して、BME688センサーから出力されるデータに変化がないかモニターします。」

お問い合わせ



第3話では、温度センサー、湿度センサー、気圧センサーデータを定期的に取得し、NemoClawで観測する方法について解説しました。
第4話では、加速度センサー(IMU)を利用して活動の変化を検出し、AIエージェントへリアルタイムに通知する方法を解説します。