モデルベース開発手法によるリアルタイムシミュレーション

モデルベース開発手法によるリアルタイムシミュレーション
神田 吉孝

1. まえがき2. 開発概要

モデルベース開発（MBD：Model Based Development）と防衛・宇宙事業でもモデルベース開発の適用を図るべくは，コンピューター上で再現した“モデル”を用いること開発をスタートした。企画当初は，技術アピールのためので，設計時からシミュレーションによる検証を繰り返し実デモンストレーション素材の作成が目標であったが，その施する開発手法である。その結果，従来の仕様書ベースで後，自動コード生成環境及びリアルタイムシミュレーショの開発に比べ，手戻りを排除し，効率化・短時間化を図る

ン環境の構築を通して，技術要素確立，さらには，事業展ことができる。自動車業界では既に標準的な開発手法のひ開できる技術力の獲得に目標を改めた。

とつであり，航空宇宙分野でも成果を上げている。

ターゲットは，デモンストレーション素材として人々の当社の防衛・宇宙事業へのモデルベース開発の適用を図興味を引くことができ，機械的動作が分かりやすい人型遠るべく，人型遠隔操作ロボット“DiaroiD”を題材に，2019隔操作ロボット“DiaroiD”とした。

年度から開発に取り組んだ。

DiaroiD は，胴体，腕，手指，首の各部が操縦者からの開発を通じ，MILS(Model-in-the-Loop Simulation），自遠隔操作によって動作するロボットである。

動コード生成などの成果を得るとともに，モデルベース開開発ツールは，MATLAB/Simulink に加え，ロボットのプ発の長所・短所の知見を蓄積することができた。

ラントモデル製作に Simscape Multibody を採用した。

その成果を活かして，リアルタイムシミュレーションによる“DiaroiD 操縦支援システム”を製作した。
本稿では，これら開発の経緯，成果及び事業展開への展望について述べる。

1

モデルベース開発手法によるリアルタイムシミュレーション

2.1 DiaroiD

2.2.1 MATLAB

DiaroiD とは，図1 に示す人型遠隔操作ロボットである。

関数やアルゴリズム開発，行列計算など様々なことを可

1 号機を三菱電機先端技術総合研究所，2 号機を三菱電機能にしている数値解析ソフトウエアである。また，その中通信機製作所が製作した。

で使うプログラミング言語の名称でもある。

2.2.2 Simulink
ブロック線図を描いて時間軸でのシミュレーションを行う環境であり，オプションによりブロック線図を C ソースコードへ変換することができる。

2.2.3 Simscape Multibody
3D 機械システムで使用する剛体シミュレーション環境
であり，ボディ，ジョイント，拘束，力学的作用及びセンサーなどを表すブロックを用いて，3D 剛体システムをモデリングし，シミュレーション結果を 3D アニメーションにて可視化することができる。

3. モデルベース開発

図 1．人型遠隔操作ロボット“DiaroiD”2 号機

図 3 にモデルベース開発の流れを示す。
胴体 6，腕 7×2，手指 6×2，首 3，合計 35 自由度を一

特徴は，設計段階から製作対象をモデリングし，そのモ人で操縦できる。

デルを用いて MILS により検証を行うこと，及び，検証後操作者の腕に沿わせて装着する入力装置により腕部とのモデルから実装コードを作成することである。

手指部を，音声入力により胴体部と首部を操縦する。
また，以降，今回の開発内容について述べる。

あらかじめプログラミングした定型動作を実行することもできる。
脚部はクローラ型の移動台車になっており，リモコン操作により移動することが可能である。
ソフトウエアを当社が，メカ設計，製造を三菱電機エンジニアリングが，全体構想設計と電気設計を三菱電機通信機製作所が担当した。

2.2 開発ツール
モデルベース開発環境のデファクトスタンダードとなっている MATLAB シリーズの図 2 の枠線で囲った製品を※RCP：Rapid Control Prototyping

採用した。

MILS：Model-in-the-Loop Simulation
SILS：Software-in-the-Loop Simulation
S-PILS：Simulated Processor-in-the-Loop Simulation
HILS：Hardware-in-the-Loop Simulation
図 3．モデルベース開発の流れ

図 2．開発環境2

モデルベース開発手法によるリアルタイムシミュレーション

胴体部のキネマティクス

3.1 モデリング

DiaroiD 2 号機の胴体部分は，産業ロボットによく見ら

DiaroiD のモデルは，以下の 3 つに大別できた。
外部入力や駆動スケジュールにより，駆動指令入力をれる 6 軸垂直多関節ロボットの構造を採用している。図 4行う“コマンド入力モデル”に胴体部構造を示す。
6 軸垂直多関節キネマティクスは，式 1～式 4 を用いて入力された指令で機械制御を行う“制御モデル”

ロボット本体をシミュレートする“プラントモデル” 数値演算する。
各関節(アクチュエーター)の角度[𝜃𝐴𝑍1

3.1.1 コマンド入力モデル𝜃𝐸𝐿1

コマンド入力モデルは，ロボットの駆動指令を生成又は， から姿勢[𝑥 𝑦 𝑧外部から入力する。

𝜃𝑥

𝜃𝐸𝐿2
𝜃𝑦

𝜃𝐴𝑍2

𝜃𝐸𝐿3

𝜃𝐴𝑍3]

𝜃𝑧]

あらかじめ設計した時系列の駆動スケジュールによるを求めることをキネマティクス，姿勢から各関節の角度“コマンド再生”と，外部から駆動指令を逐次入力するを求めることを逆キネマティクスという。姿勢の要素のうち位置ベクトル[𝑥 𝑦 𝑧]は式 1 の Affine 行列による(注1)“UDP通信”の 2 種類のコマンド入力モデルを作成し変換結果となる。ここで，𝑇𝑟𝑎𝑛𝑠(𝑃𝑥)は関節から次の関た。

節への平行移動を指す。

“コマンド再生”は，設計した動作を何回でも再現でき姿勢の要素のうち方向ベクトル[𝜃𝑥るため，モデル更新時の比較検証に向いている。Simulink𝜃𝑦𝜃𝑧]は式 2 と標準ライブラリーの“Signal Builder”ブロックを用いて式 3 の行列が同じ方向を示すことを利用して，式 4 で求作成した。

められる。𝑄𝑙𝑚 は，3×3 行列[𝑄]の l 行 m 列目の要素を指す。

“UDP 通信”は，DiaroiD の操作入力装置からの UDP 通信コマンドの入力を可能にしたものである。操作による挙動の確認や，後述するリアルタイムシミュレーションに使用する。UDP 通信機能は Simulink 標準ライブラリーには用意されておらず“C Caller”ブロックを用いて自作した。

3.1.2 制御モデル
制御モデルは，入力したコマンドを座標変換し，位置指令を生成する。
本節では，座標変換として胴体部のキネマティクス(注2)
手首部のキネマティクス
位置指令生成としてサーボ制御の特徴を述べる。
図 4．DiaroiD の胴体部構造[𝑥𝑦1] = 𝑅𝑜𝑡(𝜃𝐴𝑍1, 𝑧) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃1) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿1, 𝑥) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃2) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿2, 𝑥) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃3) ∙𝑅𝑜𝑡(𝜃𝐴𝑍2, 𝑧) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃4) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿3, 𝑥) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃5) ∙ 𝑅𝑜𝑡(𝜃𝐴𝑍3, 𝑧) ∙ 𝑇𝑟𝑎𝑛𝑠(𝑃6) ∙ [0 0 0 1]𝑡 ･･･式 1𝑧[𝑄] = 𝑅𝑜𝑡(𝜃𝐴𝑍1, 𝑧) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿1, 𝑥) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿2, 𝑥) ∙ 𝑅𝑜𝑡(𝜃𝐴𝑍2, 𝑧) ∙ 𝑅𝑜𝑡(𝜃𝐸𝐿3, 𝑥) ∙ 𝑅𝑜𝑡(𝜃𝐴𝑍3, 𝑧)[𝑅] = 𝑅𝑜𝑡(𝜃𝑥, 𝑥) ∙ 𝑅𝑜𝑡(𝜃𝑦, 𝑦) ∙ 𝑅𝑜𝑡(𝜃𝑧, 𝑧)
𝜃𝑥 = 𝑡𝑎𝑛−1−𝑄23
𝑄33, 𝜃𝑦 = 𝑠𝑖𝑛 −1 𝑄21 , 𝜃𝑧 = 𝑡𝑎𝑛−1･･･式 2･･･式 3−𝑄12･･･式 4𝑄11(注1)

User Datagram Protocol：インターネットなどのネットワークで，IP(Internet Protocol)の一段階上位層のプロトコル(通信規約)として標準的に使われるもののひとつ。
(注2)
Kinematics：運動学。運動の原因，つまり力を考慮せずに，幾何学的な運動のみに注目した力学の一体系。本稿では，各関節の変位量から先端の位置姿勢を求める問題として使用している。
3モデルベース開発手法によるリアルタイムシミュレーション

𝑆𝑎𝑥
𝑆[𝑆] = ( 𝑎𝑦𝑆𝑎𝑧

𝑆𝑏𝑥
𝑆𝑏𝑦
𝑆𝑏𝑧

0𝑇𝑎𝑥0), [𝑇] = (𝑇𝑎𝑦0𝑇𝑎𝑧

𝑇𝑏𝑥
𝑇𝑏𝑦
𝑇𝑏𝑧

000
̂𝑎 = (0), 𝑇̂𝑏 = (0)0), 𝑇0
1
1[𝑆 ′ ] = 𝑅𝑜𝑡(𝜃𝑣, 𝑦) ∙ 𝑅𝑜𝑡(𝜃𝑢, 𝑥) ∙ [𝑆]･･･式 6′′⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗̂⃗⃗⃗⃗⃗⃗⃗b + 𝑙𝑏 T̂b )| = |S⃗⃗⃗⃗b − ⃗⃗⃗⃗|S a − (Ta + 𝑙𝑎 Ta )| = |Sa − Ta |, |S b − (TTb |式 1，式 4 は角度
[𝜃𝐴𝑍1

𝜃𝐸𝐿1

𝜃𝐸𝐿2･･･式 5･･･式 7

リンクの長さは変わらないことから，式 6 と式 7 にて
𝜃𝐴𝑍2

𝜃𝐸𝐿3

逆キネマティクスを演算できる。

𝜃𝐴𝑍3]について直接的に解くことができないため，逆キネマパラレルリンクも垂直多関節と同様にキネマティクス

ティクスを求める場合は，ニュートン＝ラフソン法によは収束演算により回転角を求める。

る収束演算を行う必要がある。
サーボ制御
手首部のキネマティクス

DiaroiD のサーボ制御は，ソフトウエア内でフィードDiaroiD 2 号機の腕部のうち，手首部分の 2 自由度は， フォワード制御を行い，ポジションボード内でフィードパラレルリンク構造を採用しており，2 本の直動リンクにバック制御を行っている。これに合わせて，制御モデルもより手首の𝜃𝑢と𝜃𝑣の回転を実現している。図 5 に手首のフィードフォワード制御とした。
コマンドに対し速度制限

パラレルリンク構造の概念図を示す。シリンダー駆動の位と駆動範囲制限を処置し，位置指令を生成するモデルを作

置[𝑙𝑎成した。サーボ制御モデルを図 6 に示す。

𝑙𝑏 ]から姿勢[𝜃𝑢𝜃𝑣 ]を求めることをキネマティクス，
姿勢から各シリンダー駆動位置を求めることを逆キネマティクスという。

3.1.3 プラントモデル

パラレルリンクキネマティクスは式5～式7 を用いて数プラントモデルは，制御対象の振る舞いを再現する。

値演算する。

最も困難であり，最も力を入れた部分である。本開発では，メカ設計図である CAD(注3)モデルを基に，モデリングし式 5 の[𝑆]は𝜃𝑢 = 𝜃𝑣 = 0時の回転側の 2 つのユニバーサルジョイントの座標，[𝑇]はシリンダー側のユニバーサ
̂𝑎 ,𝑇̂𝑏 はシリンダー駆動方向の単位ルジョイントの座標，𝑇た。モデリング手順は，CAD モデルのリダクション⃗⃗⃗⃗b |は 2 本のリンクの長さであベクトル，|S⃗⃗⃗a − ⃗⃗⃗Ta |,|S⃗⃗⃗⃗b − T

CAD モデルを Simscape で読込みる。

部品の整列と相対位置の算出
部品の接続接続点に回転機構を挿入
回転機構へ位置指令を接続となる。加えて，実空間での現象を再現するため衝突の実現を行った。
図 5．手首パラレルリンク構造

図 6．サーボ制御モデル(注3)

Computer-Aided Design：コンピューターを用いて設計，作図をすること，あるいはその設計支援ツールのこと。
4

モデルベース開発手法によるリアルタイムシミュレーション

図 7 に作成したプラントモデルを示す。

部品の接続“Rigid Transform”という座標変換ブロックに算出した相対位置を設定し，これを介して部品を接続した。
これにより，一例として，ロボットの前腕の位置は上腕からの相対位置で決定されるようになった。
接続点に回転機構を挿入“Rigid Transform”で接続しただけでは，部品と部品が固定された状態である。
ここに“Joint”という回転機構ブロックを挿入した。
“Joint”の回転座標系と部品の座標系は異なるため，“Joint”の回転軸と動かしたい回転軸が一致するよう座標変換する必要があった。部品 A－座標回転－Joint－座標逆回転－部品 B といったように，座標回転と座標逆回転を挟みながら“Joint”を挿入した。
これにより，ロボットの関節を動かせるようになった。
回転機構へ位置指令を接続

図 7．プラントモデル

回転機構の指令入力に制御モデルからの位置指令を接続した。

CAD モデルのリダクション

これにより，制御モデルからの指令で，プラントモデルメカ設計の CAD モデルはボルト 1 点まで詳細に部品分を駆動できるようになった。

割されているが，Simscape でこれらを 1 点 1 点変位シミュレーションすると膨大な演算量になり現実的ではない。

衝突の実現

そこで，CAD モデルの各部品を一体と見なせる単位まで結合し部品点数を減らす処置が必要であった。
これをリダ

部品は初期状態では，互いをすり抜けることができてしクションという。当社にはこの技術がなかったため，リダまう。図 8 の左側は，下した右腕が左腕をすり抜けて重クションは三菱電機通信機製作所に協力いただいた。

なってしまった場面である。

CAD モデルを Simscape で読込みCAD ソフト“Creo Parametric”のモデルを Simscape が読み込める STL 形式(注4)のデータに変換し，Simscape へ読み込んだ。形式変換にはプラグイン“Simscape MultibodyLink”を使用した。
部品の整列と相対位置の算出
読み込んだモデルは，全ての部品がグローバル座標上の絶対位置に浮いている状態であった。
これら部品同士を接続するために，部品同士の相対的な図 8．衝突の有無位置関係を求める必要があった。
そこで，Simulink 上で機構順に部品を並べ，部品間の図 8 の右側のように，下した右腕は左腕に衝突し，停止相対位置を算出した。

又は，跳ね返るようにする必要がある。

相対位置の算出には Simscape の“Transform Sensor”

Simscape では，部品間に垂直抗力という力学的作用をというブロックを利用した。

定義することで，衝突という現象を実現する。

(注4)

三次元形状を表現するデータを保存するファイルフォーマットのひとつ。名称の由来は光造形法を意味する
Stereolithography である。
5

モデルベース開発手法によるリアルタイムシミュレーション

垂直抗力の定義により，部品同士が衝突し，互いにすり抜けられないようにした。
Simscape では，垂直抗力や摩擦力といった力学的作用は，部品そのものに定義するのではなく，部品間の関係性として定義する。

3.2 MILS（Model-in-the-Loop Simulation）
でき上がったモデルを利用して次のような検証を行った。
キネマティクス演算の設計検証
駆動順序による衝突の回避検証
詳細は割愛するが，この他にも，アクチュエーターの駆動範囲アクチュエーターの駆動速度をシミュレーションで検証した。

3.2.1 キネマティクス演算の設計検証

図 9．キネマティクス不定解

不定解の回避操縦者の感覚に合わせる回転軸が一致し不定解となる（解の個数が無限にな理論的なキネマティクスが操縦者の期待とは異なる結る）問題があった。

果を生じることが MILS で判明した。

不定解となるケースは以下の 3 とおりであった。

正面を向いた状態から“12 度左に向く”と指令した場合，操縦者は図 10 の左側のように胴体全体を向ける動き

ケース 1： AZ2 と AZ3 が不定(図 9 左)を期待している。しかし，キネマティクスの演算結果は図𝜃𝐸𝐿3 = 0 のとき

10 の右側のように胸の位置座標を固定し胴体を捻じった

ケース 2： AZ1 と AZ2 が不定(図 9 左)𝜃𝐸𝐿1 = − 𝑠𝑖𝑛−1𝑏𝑎動作となる。加えて，この捻り動作では部品の干渉によりかつ 𝜃𝐸𝐿2 = −𝜃𝐸𝐿1 のとき15 度程度までしか回転できないことが分かった。
このように，設計が人の感覚に合致しているかどうかな

ケース 3： AZ1 と AZ3 が不定(図 9 右)𝜃𝐸𝐿2 = − {𝑠𝑖𝑛−1 (𝑎 𝑠𝑖𝑛 𝜃𝐸𝐿1
√𝑏 2 +(𝑐+𝑑)2) + 𝑡𝑎𝑛−1𝑏𝑐+𝑑

ど曖昧な妥当性も，実機なしで検証できることを確認した。

+ 𝜃𝐸𝐿1}かつ 𝜃𝐸𝐿3 = 𝜃𝐸𝐿1 + 𝜃𝐸𝐿2
かつ 𝜃𝐴𝑍2 = 0 のとき不定解発生時に操作者にとって扱いやすい挙動を MILSで検証した。その結果，𝜃𝐴𝑍3と𝜃𝐴𝑍2は不定解発生直前の角度で固定し，𝜃𝐴𝑍1のみを駆動する方法を採用した。
このように，設計上の問題点とその対策結果を，実機なしで検証できることを確認した。

図 10．胴体部回転動作の様子

3.2.2 駆動順序による衝突回避の検証
一例ではあるが，示指を何度以上曲げていると，拇指と衝突するかなど，機械的な衝突を MILS で検証した。衝突回避のためプログラムで制限を加えた場合も，所望動作の確認だけでなく，望まない副作用がないかどうかも，目視で検証できることを確認した。

6

モデルベース開発手法によるリアルタイムシミュレーション

ここで特筆するべきは，動作確認開始時から問題なく動3.3 自動コード生成作したことである。MILS で検証したモデルは，コードレ

MATLAB の自動コード生成機能を用いて，検証された制御モデルから実行コードを作成した。実行コード作成には， ビューを必要とせず，コーディングミスを混入する余地もコード生成を支援する“コード生成アドバイザー”を利用なく，実機で動作した。自動コード生成の優位性を証明すした。

る事象であった。

“コード生成アドバイザー”により，コード化のための手順が提示されるため，容易にコードを生成することがで3.3.4 処理時間評価

きた。

制御部の処理時間には動作の遷移により 4～8ms のばら

本項では，自動コード生成手順としてつきがある。

離散化

同一の動作をさせたときの手書きコードの平均処理時

手書きコードとの結合間は 5.80ms，自動生成コードの平均処理時間は 5.93ms で実施動作検証あった。

を，自動生成したコードの評価として

図 12 は手書きコードと自動生成コードの処理時間のば処理時間評価

らつきを，横軸：処理時間，縦軸：出現割合で示したグラを述べる。

フである。
処理時間のばらつきも含めて自動生成コードの処理効率は，手書きコードと遜色のないレベルにあることが分か

3.3.1 離散化る。

Simulink で書かれたモデルの時間系は連続系と離散系の 2 種類がある。
シミュレーションモデルはトリガーを必要としない連続系の方が作りやすいが，コード化するモデルは離散系に変更（離散化）しておく必要がある。
注意点として，ライブラリーブロックによっては，“Continuous”グループや“Simscape”グループなど連続系でしか動作しないものもあり，再設計が必要になる場合がある。

3.3.2 手書きコードとの結合

図 12．処理時間のばらつきの比較

図 11 は DiaroiD 制御プログラムのブロック構成図であ4. リアルタイムシミュレーション

る。作成済みの手書きコードを元に，制御部の手書きコードと制御モデルの自動コードを入れ替えてビルドした。
そリアルタイムシミュレーション技術を用いて，DiaroiDの他の部位は手書きコードを使用した。

操縦者を支援するシステムを構築した。
本章では，“DiaroiD 操縦支援システム”について述べる。

3.3.3 実機動作検証
ビルドしたプログラムを DiaroiD に搭載し動作を確認した。

図 11．実機構成とシミュレーション構成

7

モデルベース開発手法によるリアルタイムシミュレーション

4.1 DiaroiD 操縦支援システム
4.1.1 実時間への対応
MILS による検証が目的のシミュレーションでは，コンピューターのパフォーマンス不足によって，1 秒間の事象の演算に 2 秒かかっていても，問題にはならない。しかし，操縦支援が目的ならば，実時間内でシミュレーションを実施できなければ意味がない。
シミュレーション時間を計測したところ，実時間を超えていたため，操縦支援にはあまり影響しない手首のパラレ

図 13．実周辺環境

ルリンク機構を削除し，実時間内に納めるようにした。
具体的には，①制御モデルで逆キネマティクス演算前の角度指令を，プラントモデルの手首の“Joint”ブロックへの角度指令として接続した。さらに，②上腕と手首を接続しているリンクをプラントモデルから削除した。
これによりプラントモデル演算は軽減され，シミュレーション時間を実時間内に抑えることができた。

4.1.2 実周辺環境を仮想空間へ反映
Lidar(注5)を用いて DiaroiD を取り巻く実周辺環境を仮図 14．Lidar による点群データ想空間へ投影する手法への取組みについて述べる。
仮想空間に DiaroiD 本体しか存在せず，作業対象物との距離の把握には，役に立っていなかった。そこで，DiaroiDに取り付けた Lidar により作業対象物を認識し，仮想空間に出現させることができないか検討を進めることにした。
検討当初は，Lidar による点群データを小さな球体として仮想空間に浮遊させる方法を考えたが，Lidar の解像度2 百万点に対し，Simscape に実時間内で処理させられる球体は 100 個程度であり，実現は不可能であった。
次善策として，点群データから STL データを作り，剛体として仮想環境に投影する方法を試行した。
当社は Lidar を保有していないため，Lidar による撮影

図 15．仮想空間に取り込んだ実周辺環境は，三菱電機情報技術総合研究所に実施いただいた。
図 13 の実周辺環境を Lidar で撮影すると，図 14 のとおり視線距離によって色分けされた点群データとなった。
この点群データを STL データに変換し，仮想空間に読み込んだ結果が図 15 である。1 部品となるため色分けはできず，単色（緑色）で表示した。

図 16．仮想空間に取り込んだ実周辺環境（横から）(注5)Light Detection and Ranging（光検出と測距）とは，光を用いたリモートセンシング技術のひとつ。パルス状に発光するレーザー照射に対する散乱光を測定し，遠距離にある対象までの距離や方向を計測するものである。
8

モデルベース開発手法によるリアルタイムシミュレーション

この方法において大きな問題点が 2 点あった。

双腕の接近を警告するようにした。

1 点目は，対象の更新には STL データを入れ替えて再ビ

5. 事業展開への展望ルドする手続きが必要であり，最速でも 1 分かかることである。
リアルタイムシミュレーションにおいて実周辺環境

本開発の最大の目標である事業，製品開発への展開につの動的変化に追従することができない。

いて，これまでの成果を踏まえて考察する。

2 点目は，単一方向からの Lidar 計測では，1 面しか捉えることができず，視点を移動すると図 16 のようになり， 5.1 長所と短所物体に見えないことである。
モデルベース開発の長所については，様々な文献がその今後，“①仮想空間を UNITY などの 3D プラットフォー 有用性を示しているが，今一度整理する。
ムに移行し，点群データ再現を高速化する。
”,“②Lidarを DiaroiD の腕に装着し，多視点からの点群データを取得5.1.1 長所可能にする。
”などの機能向上を検討する。

明確な仕様伝達が可能である。
モデルが動く仕様書であり，従来のソフトウエア設計に4.1.3 仮想視点あったような日本語の曖昧な表現が入り込む余地がなく，リアルタイムシミュレーションにおける仮想空間の長シミュレート可能であるため誤解を生じる可能性も少な所のひとつは視点を自由に追加できる点である。DiaroiDい。また，シミュレートによるレビューでは，レビューアの操縦システムでは，ロボット取り付けられたステレオカの技量に設計品質が左右される傾向も減じることができメラ 2 視点（頭部と胸部のステレオカメラ）のみである

る。

が，仮想空間では俯瞰視点はもちろん，可動部に仮想的なカメラを取り付けたかのような視点を作ることができる。
そこで，操縦者に任意の視覚情報を与えるため，手のひら

MILS による早期の検証ができる。
コーディングすることなく，シミュレーションによる設に仮想視点を設けた。

計検証が可能であり，ハードウエアの完成を待たずに妥当

図 17 は，左手に固定した視点でのモニター例である。

性検証が行える。
自動コード生成ができる。
コード作成工数を大幅に削減することができ，コーディングに起因するヒューマンエラーも無くすことができる。
モデルが資産になる。
従来，ソフトウエア資産といえば，ソースコードとその仕様書であったが，モデルは仕様書と動作検証が一体化しており，資産の利用者にとって再利用にかかる手間を大きく削減できる。

図 17．シミュレーションによる仮想視点技術継承に有利である。

4.1.4 双腕衝突警告
操縦支援システム導入前は，右手の操作に気を取られて取り上げている文献は少ないが，技術継承のツールとしいる操縦者が，左腕への注意を配ることができず，双腕をてもモデルは優れている。
シミュレーションによる直感的衝突させてしまう事故があった。そこで，双腕の衝突を警理解から理論的理解へ進むことができる。

告する機能をプラントモデルに組み込んだ。
定義された 2 つの部品間の距離が近づくと間欠音を発5.1.2 短所し，さらに，部品間の距離が近くなるほど間欠音の周期を技術の習得に手間と時間がかかる。

短くして，操縦者に接近の度合いを伝えるようにした。

MATLAB，Simulink，Simscape を習得しなければ，効率的衝突警告を，衝突する可能性のある全ての部品間に適用な開発が望めない。特に Simscape の習得には時間がかかすると，リアルタイム性が確保できなかったため，右手部る。と左手部の衝突に限定した。さらに，衝突判定件数を下げるため指の駆動範囲の形をした透明な仮想部品を作成し，9プラントモデル作成に手間と時間がかかる。

モデルベース開発手法によるリアルタイムシミュレーション

プラントモデルには製作対象である制御モデルより多離散化ブロックの自動生成コードを手書きのスレッドプ

くの工数を必要とする。

ログラミングとマージする処置が必要である。

従来の開発では，制御対象の模擬には通信用シミュレーターを作成していたが，通信用シミュレーター作成工数と5.3 開発工数視点

プラントモデル作成工数の差は大きい。

図 18 は，制御部について，従来開発手法の開発工数をただし，可視化したプラントモデルは，モデルベース開“1”としてモデルベース開発手法の開発工数を比較した

発の最大のメリットである MILS による早期検証に大きなものである。

役割を持つため，安易な工数削減は推奨できない。
従来のメトリクス指標が使えない。
従来開発と比べて V 字モデルにおける設計フェーズと試験フェーズの配分が変わり，設計フェーズの比重が大きくなる。そのため，従来のメトリクス指標を適用することができず，モデルベース開発用のメトリクス指標が必要になる。

5.2 ソフトウエア部位視点

図 18．開発工数

MATLAB/Simulink は，行列演算ツールを元に発展したツールであるため，得意分野と不得意分野がある。

制御対象となるプラントモデルの構築に多くの工数が必要になるため，モデルベース開発は従来手法の約４割（38.5%）の工数増となる結果が得られた。

5.2.1 得意とする分野
演算処理

なお，プラントモデルを流用する場合は従来手法の約４高度な演算ライブラリーが充実しており，非常に有用で割（37.5%）減の工数で開発できることが分かった。

ある。

5.4 考察
手続き処理

これらの成果を踏まえ，プラントモデルを含むモデル

分岐，繰り返し，状態遷移はブロック化できるので，複ベース開発の事業化について考察する。

雑な状態分岐の検証には有用である。
適用部位を広げすぎないこと
ユーザーインターフェース，外部インターフェースとス

5.2.2 不得意とする分野
ユーザーインターフェース

レッディングなど不得意な分野は従来手法で，演算機能，MATLAB/Simulink はユーザーインターフェースを構築

手続き処理など得意とする分野はモデルベース開発手法する能力は脆弱である。
ユーザーインターフェースが主機で製作し，マージする処置が必要である。

能となる製品には向かない。
制御対象を理解していること
外部インターフェース

プラントモデルを作成するには，制御対象の構造を理解Socket 通信のライブラリーがなく，自作するより他なし振る舞いを定義する見識が必要である。

かった。コンピューターリソースを使用するインターフェース部分はモデルを自作する必要がある。
データを型プラントモデルを流用できること

変換して引き渡すようなインターフェースが主機能となプラントモデルを一度しか使わなければ，損失になる。

る製品には向かない。

パラメーターを変えながら何度も検証を行うような開発や，よく似たハードウエアを繰り返し使用するプロダクトスレッディングラインに適用するのが良い。

スレッド生成や割込みハンドラー登録などを書き表す

自動化試験の導入検討とよく似ているが，自動化試験でことができない。

はコードの流用率が高いこと。モデルベース開発ではプラ異なるタイミングで動作する離散化ブロックを定義し， ントモデルの流用率が高いことが選定の基準になる。
10

モデルベース開発手法によるリアルタイムシミュレーション

謝 辞

初期費用が確保できること
導入時は技術習得コスト及びプラントモデル作成コスモデルベース開発にあたり，DiaroiD の使用を許可いたトのため費用が増大する。
初期費用が確保できない状況でだいた三菱電機通信機製作所インフラ情報システム部を実施すると，有意義なプラントモデルを製作できなくなり， はじめ，同製作所技術部，三菱電機先端技術総合研究所，後の改善効果も見込めない事態が予想される。

三菱電機情報技術総合研究所，三菱電機エンジニアリング

予算の範囲で，少しずつ適用部位を広げていく方法が適に，深く感謝の意を表する。

切と考える。

商 標
上述の条件がクリアできる事業であれば，モデルベース

DiaroiD は，三菱電機（株）の登録商標である。

開発の適用を検討する価値があると考える。

MATLAB，Simulink，Simscape は，米国 The MathWorks,Inc.の登録商標である。
Creo Parametric は，米国 PTC Inc.の登録商標である。
UNITY は，米国 Unity Technologies 又はその関連会社の登録商標である。

参考文献
春名正樹，川口昇，猿田祐輔，星野隼人, 岡本俊樹，
道田塁，上田賢，神田吉孝，佐藤亨，小池俊昭，荻野正樹：人×機械の遠隔融合システムの開発 - 視覚的力触覚を利用した操作提案と基礎検証 -，情報処理学会インタラクション 2020 論文集，448～453 （2020）
Shota Narasaki，Noboru Kawaguchi，Masaki Hirano，Toshitaka Nakaoji，Yutaka Ezaki，Yusuke Saruta，Hayato Hoshino，Masaki Haruna，
Rui Michida，
YosukeTomida，Yoshitaka Koda，Toru Sato：Developmentof labor-saving system for the maintenance ofthe telescopes under the extreme environment
usingaAstronomical

remote-controlled

robot ， SPIE

Telescopes

Instrumentation+Conference (2020)

執筆 者紹 介神田 吉孝（こうだ よしたか）1991 年入社。
衛星通信・宇宙開発に関するソフトウエア開発に従事。
現在，第１事業部に所属。
11