本文へ移動
BenriWorks LabBenriWorks トップ

安全体感シミュレーター(クレーン・バケット車)

公開中

クレーン6シナリオとバケット車7シナリオを車種別に体験する教育用3Dアプリ。操作と危険の関係を学び、実機の訓練や作業計画を代替しないことも確認できます。

公開日 ・ 最終更新日

夕暮れの建設現場で鋼材を吊り上げる移動式クレーンと、離れて見守るヘルメット姿の作業員

対象ユーザー

  • 建設現場の安全管理や安全教育に関わる人
  • 3Dシミュレーションや物理演算に関心がある開発者

安全体感シミュレーターは、移動式クレーンと高所作業車(バケット車)の操作と危険を、別の入口から体験できる教育用3D Webアプリです。インストールは不要です。2026年10月9日に確認した実装には、クレーン6シナリオとバケット車7シナリオがあります。

車種ごとの入口

5分の朝礼教材

「クレーンの転倒」朝礼教材(外部)は、クレーンの転倒デモを使い、危険の予想・観察・理由・作業前の確認を5分で話し合う教材です。印刷できる進行台本付きです。

デモで起きることを観察した後、実際の作業で何を確認するかを話し合います。教育用の簡略化を前提とし、現場の手順や作業条件は担当者が別に確認してください。

解決する課題

クレーンの安全教育には、「やってはいけない操作の結末」を見せられないという制約があります。転倒もワイヤーの破断も、実機で再現するわけにはいきません。座学で「過負荷は転倒につながる」と知ることはできても、レバーを倒してから車体が傾き始めるまでの時間や、警告が出てから手を戻せる猶予の短さは、言葉からは伝わりません。

本アプリは、この結末の部分を仮想の現場で引き受けます。正しい荷降ろし手順の練習に加えて、過負荷での転倒、老朽ワイヤーの破断、急旋回による荷暴れという事故そのものをシナリオとして用意し、何度でも安全にやり直せるようにしました。

主な機能

操作系は旋回、起伏、伸縮、巻上げの4系統のレバーです。レバー操作は油圧ポンプの流量配分としてモデル化されていて、複数のレバーを同時に倒すと流量を取り合って各動作が遅くなり、重い荷を吊るほど巻上げも遅くなります。

クレーンのシナリオは6種類あります。「荷降ろし作業」「ビル屋上への荷揚げ」「架空線のそばでの荷降ろし」で手順や周辺条件を確認し、「転倒を体験」「ワイヤー断を体験」「荷暴れを体験」で危険につながる操作を観察します。転倒シナリオではアウトリガー最小張り出しのまま過負荷防止装置(LMI)を解除して2.8tのコンクリートブロックを吊り、ワイヤー断シナリオでは強度が35%まで落ちた老朽ワイヤーの1本掛けで同じ荷を巻き上げます。

バケット車の7シナリオは、「とりあえず動かしてみる」「始業前点検」「通信柱への標準接近」「軟弱地盤とジャッキ沈下」「架空線への接近」「非常停止と緊急降下」「格納・ジャッキ収納手順」です。クレーンの巻上げ操作とは別に、設置、搭乗、作業位置への接近、緊急時の操作、格納の手順を扱います。

初めての人が迷わないための誘導も入れています。玉掛け合図者が現在のクレーン状態から移動ルートを自動計画し、標準の手合図を3Dモデルの動きと画面表示で先読みして指示します。地上の操作員の目線に切り替える一人称カメラがあり、UIは日英を切り替えられます。

開発の背景

正しい手順を教える教材はすでにあります。足りないのは、誤った操作の先を自分の目で見る機会でした。実機で見せるわけにはいかず、事故映像は他人の操作の結果でしかありません。自分のレバー操作が転倒や断線につながる過程を安全に体験できるのは物理演算を積んだシミュレーターの持ち味だと考え、事故シナリオを教材の主役に据えました。

技術と設計

Next.js 16とReact 19、TypeScriptを基盤に、UIをTailwind CSS 4で構成し、Vercelで公開しています。3D描画はThree.js、物理演算はRapier3D(WASMで動く剛体物理エンジン)です。

荷振れは、振り子の数式を直接解いてはいません。ブーム先端をキネマティックな剛体として毎フレーム動かし、そこからフックまでを「引張のみ」に働く片側性のバネダンパーで結んでいます。ロープは押す力を持たないため、たるめば力はゼロになり、張れば伸びに応じた張力が生じます。荷振れも地切りの衝撃も、この1本のケーブルから創発する挙動です。張力を自前で計算しているので、その値をワイヤー断の判定や転倒判定、画面の張力計にそのまま使えます。

転倒は、アウトリガーの支持多角形の各辺について、外側へ倒すモーメントと内側に留めるモーメントを集計し、安定余裕として評価します。余裕を失った辺からクレーンごと倒れ、張り出しを最大にすると支持多角形が広がって余裕が増えるという関係が、計算の構造からそのまま出てきます。ワイヤー断は、掛け数あたりの張力が破断荷重に状態係数(老朽化で低下)を掛けた閾値を超えると起きますが、即断ではなく1.5秒の保持時間を設けてあり、警告表示を見てレバーを戻せば断線を回避できます。

荷振れの表現は、当初はThree.js上で振り子運動と減衰係数による実装を検討していました。開発記事「Three.jsで移動式クレーンの荷振れを表現する方法」はその初期の検討記録で、現在の実装は上記のとおりRapier3Dベースに置き換えています。

物理コアはRapierにもブラウザAPIにも依存しない純粋関数として切り出してあり、ケーブル張力、転倒余裕、巻上げ、合図者のルート計画などをJestの単体テストで検証しています。

現在の状態と既知の課題

現在は正式公開(active)として運用しています。既定の機体は2tクラスの積載形クレーン(3段ブーム)で、シナリオもこの機体を前提に調整しています。

物理は教育目的の簡略化を含みます。ロープは1本のバネダンパーによる近似で、実ワイヤーの曲げやよじれは扱わず、機体の重量配分も代表値による近似です。数値の正確な再現ではなく、どの操作がどの危険につながるかの因果を体感してもらうことを目的にしています。

本アプリは安全教育のための学習ツールであり、実機の操作訓練を代替するものではありません。実際のクレーン操作には法令に基づく資格や特別教育が必要です。シミュレーター教材の利点と限界は、ガイド「クレーン安全教育に3Dシミュレーターを使う利点と限界」で整理しています。

分野・使用技術

関連記事

関連アプリ