安全を設計に組み込んだ倉庫ロボットの制御基盤を、5日で。

フォークリフト、ロボットアーム、コンベア、カメラを一つの基盤で制御。AIエージェントが開発し、シミュレーションの倉庫で検証しました。

通路A 通路B agf-03の予約区画 agf-07 コンベア plc-01 pnp-02 · 稼働中 停止 · R4 pnp-01 · セル内に人 0.15秒でアーム停止 R3:アームが動ける間は ステーションに入れない
シミュレーション倉庫のルールから描いた図です。セルに人がいる間、アームは止まります。

主な数字

  • 5 日

    最初の指示から全体の稼働まで

  • 1,700 件

    自動テスト

  • 25 種類

    故障パターンを、すべてテスト

  • 0.1 秒

    全台を止めるまで

3つの層を、1つの契約で

L1 パート1

ダッシュボードとクラウド

オペレーターが見る画面。ライブマップ、警報、指示、履歴。7つの役割。

NATSとprotobuf · 状態、警報、指示、安全記録

L2 パート2

エッジサーバー

現場のサーバー。機器を受け入れ、許可を出し、衝突なしにフォークリフトを誘導。ノードや回線が落ちても動く。

VDA 5050 · MQTT · OPC UA · RTSP · 登録済み証明書によるmTLS

L3 パート3

機器と、その世界

各機械のエージェントと物理シミュレーション。バッテリー、電波の死角、人、MuJoCoのアーム。

共通キット 契約適合テストシミュレーション中核参照サイト署名付きバンドルパーツ間の参照をビルドで検査

オペレーターが全台を止めるとき

  1. 停止を押す

    本人として送信

  2. クラウドが記録

    誰が・何を・いつ

  3. エッジがすぐ中継

    保存を待たない

  4. 許可を取り消す

    0.5秒ごとの許可

  5. 全機が停止

    実測0.1秒・上限1秒

動いているシステムの画面

シミュレーション倉庫の3D表示。通路を走るフォークリフトと2台のロボットアーム。わざと故障を起こした2台が赤く表示されている。
  1. 発生中の故障:セル内の人、非常停止
  2. arm-01(赤):保護停止
  3. agf-03(赤):非常停止
  4. 棚の陰の電波不感帯(ピンク)

わざと故障を発生させた3D表示。

警報画面。ロボットセルへの人の立ち入りと非常停止の警報が、人が確認するまで残っている。
  1. arm-01のセルに人が入った
  2. アームと一緒にステーションも停止
  3. 機器は復帰。警報は人の確認待ち

約1分後の警報画面。

許可がなければ、何も動かない

ロボットは、新しい許可がある間だけ動けます。サーバーが沈黙すれば、止まります。

0秒1秒2秒3秒 機器の時計での時間 0秒に送信、1秒まで有効 最後の許可(1.5秒) 1.5秒でエッジ停止 全機停止
  • 信頼済みの機器だけ

    証明書と相互TLSで、登録済みの機器だけが接続。

  • 署名付きの更新

    設定はすべて署名付き。不調なら自動で元に戻す。

  • 再開は二人で

    再開には再ログイン、全台の再開にはもう一人の承認。

  • すべてを記録

    どの指示も、誰が・何を・いつ。

  • 指揮は常に一つ

    止まって復帰した古いサーバーは、ロボットを動かせない。

  • 安全記録は失わない

    確定の前に保存。停電でも消えない。

25の故障を、わざと起こしてテスト

人と動き

  • F01 非常停止
  • F02 進路に人
  • F03 自己位置の喪失
  • F15 センサーの固着
  • F24 セル内に人

機械

  • F06 吸着の喪失
  • F07 二重ピック
  • F08 コンベア詰まり
  • F13 モーター過熱
  • F14 バッテリー劣化

パレットとカメラ

  • F09 カメラの遮蔽
  • F10 低い確信度
  • F11 パレットの傾き
  • F12 差し込み口の塞がり

通信・電源・ソフトウェア

  • F04 ローミングの切れ目
  • F05 電波の死角
  • F16 重複
  • F17 不正な形式
  • F18 時計のずれ
  • F19 再起動
  • F20 ログの洪水
  • F21 古いファームウェア
  • F22 証明書の期限切れ間近
  • F23 ブローカーの切替
  • F25 瞬停

公開された標準と、実績あるライブラリ

VDA 5050
フォークリフトへの指示と状態。他社製の車両も。
OPC UA
コンベアのPLCを、本物のOPC UAで。
ISA-18.2
警報の流れ:発生、人による確認、解除。
EST・mTLS
機器の登録、証明書の更新と失効。
OIDC
オペレーターのログイン。役割は10分ごとに再確認。
cosign・ECDSA P-256
すべての設定バンドルに署名。
Protobuf・NATS
エッジとクラウドの契約。通信断にも強い。
MQTT・RTSP
機器との契約と、カメラの生映像。
WebRTC(WHEP)
カメラ映像をブラウザーで。
MCAP・glTF・URDF
走行記録、現場モデル、ロボットの定義。
LIF
フォークリフトの通路レイアウトを、そのまま読み込み。
Foxglove
床の様子を10Hzで3D表示。

ライブラリとツール

言語と画面
  • Go 1.26
  • SvelteKit
  • Svelte 5
  • TypeScript
  • Vite
メッセージング
  • NATS JetStream
  • Protocol Buffers
  • gRPC
  • Eclipse Paho
  • Mochi MQTT
機械と映像
  • gopcua
  • gortsplib
  • Pion
  • MediaMTX
データ
  • PostgreSQL
  • TimescaleDB
  • ClickHouse
  • Valkey
  • SeaweedFS
  • bbolt
ログイン
  • Dex
  • go-oidc
  • go-jose
シミュレーションと3D
  • MuJoCo
  • Unity 6
  • glTFast
  • Foxglove MCAP
テスト
  • Playwright
  • Vitest
  • Storybook
  • axe-core
  • rapid
  • Go race detector

事前に決めた上限で、すべて計測

最も遅かった計測値と、その上限

短いほど良い。どのバーも上限のずっと手前で止まっています。

  • 全台の停止 上限1秒

    100ミリ秒 上限の10%

  • 1,000台への指示 上限300ミリ秒

    30ミリ秒 上限の10%

  • 1,000台の状態をクラウドへ 上限500ミリ秒

    81ミリ秒 上限の16.2%

  • 500画面への表示 上限500ミリ秒

    153ミリ秒 上限の30.6%

  • 120台の一斉再起動から復帰 上限30秒

    3秒 上限の10%

最悪値 上限までの余裕

  • 0 件

    6,826回の走行で、フォークリフトの衝突

  • 72 時間

    通信が切れても、記録を一度ずつ順番どおりに復元

  • 29 秒

    1,000台の一斉電源断から全台復帰。安全記録の欠落なし

  • 約5 秒

    サーバーを落としても別のサーバーが引き継ぐ。指揮が二重になることはない

いまの状況

実機はまだです

数字はすべて、開発マシン上のシミュレーション倉庫で測ったものです。実際の現場では各機械の安全回路が先に働き、この基盤は二重目の安全層になります。

数字の測り方
時間
AIの作業ログの最初の記録(10月13日 18:47)から、ここに載せたビルドの最後のコミット(10月18日 12:50)まで。約114時間、コミット67件。
テスト
10月18日にソースで数えたテスト関数。Go 1,472、画面の単体124、ブラウザー43、コンポーネント29、Unity 32。
速さ
各テストで最も遅かった値を、テストの前に決めた上限と比べたもの。リポジトリに記録された、開発マシンでの計測です。

ご案内

業務の流れを教えてください。AIで一番時間が浮く場所をお見せします。

無料AI業務診断(30分)