ロボティクスPMの視点。ハコブくん × Unity × ROS 2のA/BテストでデザインをKPI・経営指標へ変換する
デザインの価値を「数字」で証明するために。
M1 Macのパフォーマンスを最大限に引き出すため、Unity(Macネイティブ)とROS 2(Docker)を連携させた「ハイブリッド・シミュレーション環境」での実証を開始します。その構築ロードマップと設計思想を公開します。
※薬剤搬送ロボットハコブくんは技術検証用の仮想設定です。 実用化目的ではなく、制御・UIデザイン・HRI(人間とロボットの相互作用)の本質を探求するコンセプトとして定義しています。
実験プロトコルの詳細解説案
「A/Bテスト」の行動ロジック比較
グラフの根拠となる「ロボットの脳(アルゴリズム)」の具体的な違いを解説します。
Plan A(従来型): 障害物検知センサーの閾値のみで停止・再開を判定。「衝突しないこと」だけを目的とした、人間への配慮(忖度)がない直線的なロジック。
Plan B(ハコブくん設計): 2.5m手前から人間の進行ベクトルを予測。すれ違いに必要な「オフセット(横方向への回避距離)」と「減速タイミング」を動的に計算するHRI特化ロジック。
解説のコツ: 「なぜPlan Bが優れているか」を、数式やロジック図(フローチャート等)を用いて「仕様」として説明します。
データ抽出のパイプライン
「どうやってグラフにしたのか」という技術的なプロセスを公開し、データの信憑性を担保します。
リアルタイム・モニタリング: Unity上の
Update関数内で、人間とロボットの座標・速度を毎フレーム監視。自動ロギング: 走行終了と同時に、待機時間や侵入距離をCSVとして自動保存する仕組みを解説。
多試行の自動化: 同一条件で100回試行を繰り返す「モンテカルロ・シミュレーション」の実行風景(ターミナルでの自動実行ログなど)を画像で添える。
「抽象化」がもたらす計測の精度
ここがあなたのこだわりの見せ所です。
視覚的ノイズの排除: 複雑なテクスチャやライティングを排したことで、LiDARやカメラのシミュレーション精度を上げ、純粋に挙動だけに焦点を絞った検証が可能になったという意図を説明します。
可視化の工夫: ワイヤーフレーム上で、「パーソナルスペース(赤い円)」や「進行予測ライン」がリアルタイムに伸縮・変化する様子を、データの裏付けとして提示します。
UXを定量化するためのプロトコル
「ハコブくん」の挙動が現場に与える影響を正しく評価するため、以下の条件でシミュレーションを実行しました。抽象化されたワイヤーフレーム環境を用いることで、物理演算の精度を高め、ノイズを排した純粋なデータの抽出を行っています。
実験用パラメーター表(Variables)
比較検証のために設定した、2つの制御アルゴリズムの変数定義です。
計測ロジックのフロー
Unity上のスクリプトが、どのように「現場の摩擦」を検出し、CSVとして記録しているかのプロセスです。
予測
毎フレーム、ロボットと看護師の「速度ベクトル」を合成。
2秒後の予測位置が重なる(衝突リスク)かどうかを判定。
意思決定
リスク有りの場合、ハコブくんは「減速・回避・一時停止」の最適解を選択。
データ記録
作業ロス検出: 看護師の速度が
1.2m/sから0.6m/s以下に低下した時間をWaitTimeとして累積。侵入検出:
Vector3.Distanceが1.2mを下回った場合、SpaceViolationフラグを立てる。
出力
ゴール到達時、全ての数値をタイムスタンプと共にCSV保存。
評価指標(KPI)
抽出された生データを、経営層が判断可能な「価値」へと翻訳するための基準です。
看護師の累積待機時間
定義: ロボットによって阻害された「歩行速度の低下」の総和。
PMの視点: これを削減することは、病棟全体の「有効看護時間」を増やすことに直結する。
心理的障壁の侵入頻度
定義: パーソナルスペース(半径1.2m)内にロボットが侵入した回数。
PMの視点: 現場の心理的ストレスを可視化し、ロボットの「受容性」を測る先行指標。
自律完遂率
定義: スタッフの介入(押し戻し、再起動)なしでゴールした確率。
PMの視点: 運用コスト(OpEx)を抑えるための、最も重要な技術指標。
シミュレーションの実行
シミュレーションの実行は、現在のロボティクス開発において標準的なSoftware-in-the-Loop (SiL)という手法を用います。
具体的には、「物理演算と視覚化を担うUnity」と、「ロボットの知能(脳)を担うROS 2」を連携させて行います。
使用するツールセット
具体的な実行ステップ(ワークフロー)
Unity上のデジタルツイン構築
病院の廊下(1.2m幅などの制約)を3Dモデルで配置し、以下の「エージェント」をセットアップします。
ロボット(ハコブくん): 仮想LiDARセンサーを取り付け、周囲の壁や人間を検知可能にする。
人間(看護師アバター): Unityの
NavMeshAgentを使い、決まったルートを歩行させる。
ROS 2での忖度ロジック実装
ROS 2側に、ハコブくん専用のナビゲーション・ノードを作成します。
A案(標準): 通常の
Nav2スタック。障害物を回避するだけの最短経路。B案(ハコブくん): カスタムノード。「人間との距離が3m以下、かつ相対速度がプラス(接近中)」の時に、目標速度を減速させ、進行方向を右側にオフセットする計算式を組む。
自動計測スクリプトの稼働
Unity側に、前述したC#スクリプトを配置します。
ロボットがゴール(病室)に到達するまで、毎フレーム「看護師の速度低下」と「距離」を記録し続けます。
バッチ処理による100回試行
PMとして最も重要なのが統計的有意性です。
人間アバターの歩行開始タイミングや速度をランダムに変えながら、100回のテストを自動実行します。手動で100回動かすのではなく、スクリプトで自動リセット&リスタートを繰り返します。
ROIの可視化
書き出された100行のCSVデータをPythonで読み込みます。
「Plan Aでの平均ロス時間」と「Plan Bでの平均ロス時間」の差分を算出し、これを看護師の平均時給に乗じて、「このデザインが生んだ年間削減コスト」をグラフ化します。
デザインをROIへ変換するシミュレーションの最短のロードマップ
Mac(M1)では、Unity(Macネイティブ)とROS 2(Docker上のLinux)を連携させる構成が最も安定し、パフォーマンスも引き出せるとのことです。以下の5つのフェーズで進めたいと思います。
フェーズ1:土台作り(Docker & ROS 2環境)
M1 Macでは、ROS 2を直接インストールするよりもDockerを使うのが一般的です。
Docker Desktopのインストール
Docker公式から「Apple Chip」用をインストールします。
ROS 2 (Humble) コンテナの起動
ターミナルで以下のコマンドを実行し、Unityとの通信窓口(Endpoint)が含まれたROS 2環境を立ち上げます。
Bash
docker run -it --net=host --name ros2_sim husarion/ros2-humble-vcsフェーズ2:Unity側のセットアップ
UnityはMac上で直接動かします。
Unity 2022.3 LTSのインストール
Unity Hubから、Apple Silicon版のLTS(長期サポート版)をインストールします。
ROS-TCP-Connectorの導入
GitHubからパッケージをインポートし、
Robotics -> ROS SettingsでIPを127.0.0.1に設定します。
フェーズ3:シミュレーション環境の構築
実験用パラメーター表に基づき、環境とロボットのスペックを定義します。
環境構築: 病院の廊下(1.2m〜1.5m幅)をCubeで配置。
ハコブくんの定義: 簡易的なURDFを作成し、Unityにインポートします。
パラメーターの実装
Plan A(効率優先): 検知距離1.2m、回避なし。
Plan B(ハコブくん): 検知距離2.5m、オフセット+300mm、減速30%〜70%。
フェーズ4:計測システムの構築(定量評価の自動化)
ロボティクスデザインで重要視されている「UXの数値化」を実装します。
自動計測スクリプト(C#)
看護師アバターの「速度低下(作業ロス時間)」を累積。
パーソナルスペース(半径1.2m)への「侵入回数」をカウント。
データ出力: 走行終了時に、結果を自動的にCSV保存する仕組みを作ります。
フェーズ5:ABテストの実行とビジネス価値の算出
同じ環境シナリオでPlan A/Bを各100回試行し、統計的な有意性を導き出します。 タスク完了時間の短縮や心理的ストレスの低減をグラフ化し、デザインがもたらした現場の生産性向上というROI(投資対効果)を証明します。
