協働ロボットの「速度及び間隔の監視」について - FA・ロボット業界の片隅から
旧記事は間違いの箇所について注記を追加した上で残しています。
誤情報を掲載していたことについて、お詫びいたします。
いまいち考え方がピンとこない「速度と間隔の監視」について説明してきます。*1*2
基本的な考え
まず大前提として、
「動いているロボット*3とヒト*4が接触しない」ことで安全を確保します。
それを実現するために、
等を実施するのが「速度と間隔の監視」です。
で、この「安全な間隔」ですが、一言で言い表すのは難しいのですが、「ロボットとヒトがゼロ距離になった時にはロボットが停止できているような」間隔です。
自動車運転中は「前を走る車で何か起こっても対処できる(停止できる)だけの距離」として車間距離をキープしつ運転をしていると思いますが、それに近い考え方だと思ってください。
ややこしいポイントとして、
- 「安全な間隔」には予測が含まれる
- 「安全な間隔」は動的に変化してもよい
- ヒトもロボットもいろいろな方向にいろいろな速度で動いている
といった点が挙げられます。
「安全な間隔」の計算方法
もう少し詳しく、「安全な間隔」の計算方法について説明します。
ISO10218-2:2025を参照すると、安全な間隔:Spは下記の計算で求められます。
Sp = Sh + Sr + Ss + C + Zd + Zr
各項で必要な距離が計算され、その合計がSpとなります。
ロボットとヒトがSpよりも接近してしまったら、ロボットは停止する必要があります。
Spは時間の関数です。
項C, Zd, Zr
まず、後半の3つの項から説明します。
- C・・人体の一部が検知される前に危険な空間に侵入しうる距離
FA機器全般に通じる話ですが、例えば、ライトカーテンの検知のスキマから腕や指が出てしまった場合、設定したラインよりも危険源に近づいてしまっていることになります。
そのような状況を考慮して、少し距離に余裕を持っておきましょうという項です*7
- Zd・・ヒトの位置の誤差を考慮する項
- Zr・・ロボットの位置の誤差を考慮する項
ヒト・ロボットそれぞれについて位置の測定誤差・計算誤差などがあるので、その分の余裕を取りましょうという項です。
以上3つはそれほどややこしくありません。
項Sh, Sr, Ss
前半の3つの項がややこしい部分です。
- Sh・・ヒトの位置変化を考慮する項
ロボットが停止し終わるまでに、どれくらいヒトが動くかを計算する項となります。*8
- Sr・・システムの反応時間を考慮する項
停止しなければならない状況になった後、ロボットが停止のために減速し始めるまでに、どれくらいロボットが動くかを計算する項となります。
つまり、計算や信号の遅延を考慮するための項です。
- Ss・・ロボットの(物理的な)停止時間を考慮する項
ロボットが停止のために減速し始めてから実際に停止するまでに、どれくらいロボットが動くかを計算する項となります。
項Sh, Sr, Ssの注意点
この3項(Sh, Sr, Ss)は、上記の説明だけではそれほど複雑に感じないかもしれませんが、ヒトやロボットの速度を元に計算する必要があり、
- ヒトやロボットの速度は時々刻々と変化している
- ヒトやロボットの速度は絶対値だけではなく方向も考慮する必要がある
という点に注意が必要です。*9
図解
図で説明すると、以下のようになります。

No. | ロボットの動き | ヒトの動き |
---|---|---|
1 | ヒトから遠ざかる | ロボットに近づく |
2 | ヒトから遠ざかる | ロボットから遠ざかる |
3 | ヒトから遠ざかる | 停止 |
4 | ヒトに近づく | ロボットに近づく |
5 | ヒトに近づく | ロボットから遠ざかる |
6 | ヒトに近づく | 停止 |
簡単のために、直線的な動きで場合分けしてみました。*10
例えば、
- 1と2を比較すると、1の方が大きな「安全な間隔」が必要
- 1と4を比較すると、4の方が大きな「安全な間隔」が必要
というように、それぞれの状況に応じて「安全な間隔」の計算結果が変わってきます。
逆の言い方をすると
- 1と2でヒトとロボットの間隔が同じだった場合、1の方がロボットの動作速度を低くする必要がある*11
- 1と4でヒトとロボットの間隔が同じだった場合、4の方がロボットの動作速度を低くする必要がある
という考え方もできます。
現実的な実現例
ここまでがISO10218-1:2025に記載されている「速度と間隔の監視」なのですが、リアルタイムで計算しようとするとかなり大変です。
ヒトの位置・速度を監視して、ロボットの位置・速度を監視して、近づいてるか遠ざかってるかを考慮して距離を計算して・・・と、そもそも計算が間に合うのか?という気になります。
実現が容易な例1
一番簡単に考えるならば、
- Sh・・ヒトの移動速度1.6[m/s]×(システム反応時間+ロボット停止時間)として計算
- Sr・・ロボットの最大動作速度*14×システム反応時間を使って計算
- Ss・・最悪条件下でのロボットの停止に必要な距離*15
と計算することができます。
これであれば、安全な間隔Spは1つの定数となり、ヒトの存在検知(位置情報のみ)だけで、運用が可能です。
人が近づいてきて・・・
人が検知ラインを超えて、ヒトとロボットの間の距離が「安全な間隔Sp」よりも小さくなると、とロボットは停止・・・
人が再び検知ラインの外に出ると、ロボットは運転再開
というような運用形態です。
実現が容易な例2
例1からもう少し柔軟な運用を考え、
- Sh・・例1と同じ
- Sr・・ロボットの制限速度を2段階設定し、2種類のSrを使用
- Ss・・Srと同様、2種類のSsを使用
とすると、下の表のように、2種類の「安全な間隔Sp」が計算できます。
ロボットの速度制限 | フルスピード | 低速 |
---|---|---|
Sh | Sh | Sh |
Sr | Sr1 | Sr2 |
Ss | Ss1 | Ss2 |
安全な間隔Sp | Sp1 | Sp2 |
※ Sr1 > Sr2、Ss1 > Ss2、Sp1 > Sp2(いずれも絶対値)
下の図のような運用形態になります。
ロボットがある作業をしていて、人が近づいてきます。
あるラインを越えたら、ロボットは減速します。これによりSp2(小さい方の安全な間隔)が適用されます。
ある距離まで人が近づいたら、ロボットは停止
その後、人が離れたら、再びロボット動作再開
このような運用形態は、展示会などで見たことある方もいると思いますが、「速度と間隔の監視」とは呼ばれず、「安全適合の監視停止」と呼ばれることが多かったように思います。
ISO10218-1,-2:2025になって、「監視停止(monitored-standstill)」が安全機能の1つという扱いになったため、今後は「速度と間隔の監視」という呼び方が浸透してくるかもしれません。
なお、このように規格の記載の計算式としては速度から距離を計算する式になっているのですが、実際の運用を見ると、距離に応じて速度を変化させているように見えることも、混乱を招いているかもしれません。
まとめ
以上、「速度と間隔の監視」についてまとめました。
今後、ロボットコントローラの計算性能向上などにより、リアルタイムで「安全な間隔Sp」を計算しながらの「速度と間隔の監視」が登場するかもしれません。
(ただ、ヒトの動きの予測は無理なので、最大速度で一直線にロボットに向かってくるという前提で計算するしかない気がします)
*1:JIS B8433-1だと"速度及び間隔"の監視、TS B 0033では"速度と間隔の監視"となっていますが、この記事では"速度と間隔の監視"とします
*2:本記事での「監視」や「停止」は安全機能(safety function)である必要がありますが、個別に記載はしません。
*3:正確にはrobot applicationのあらゆる可動部ですが、本記事ではロボットと記載します
*4:正確にはoperatorですが、本記事ではヒトで統一します
*5:ISO10218-1:2025ではseparation distance, JIS TS B0033では「保護間隔の距離」というような記載になっていますが、煩雑なので「安全な間隔」とします
*6:速度が遅い場合は間隔が近くてもよいとする、速度が速い場合は間隔を大きくとる、など
*7:詳しくはJIS B9715などを参照してください
*8:さらに言うと、停止すべき瞬間以降の移動速度が計算に含まれるため、未来の情報を取り扱っていることになります
*9:JIS TS B0033:2017には、Srの計算に用いるロボットの速度vrについて、「vrは・・(中略)・・正にも負にもなり得る」と記載があります。今回のISO10218-2:2025では「正にも負にもなりうる」という内容が明記されてはいませんが、Sh, Sr, Ssの計算に用いる速度vh,vr,vsについて各々"can vary du to the robot application speed and direction changing"という記載があるため、同様に正負の場合があり得ると考えられます。
*10:さらに言うと、ヒトが複数いる場合も考える必要があります
*11:ロボットが動作し続けるためには
*12:ISO10218-1:2025にはSh, Srの2つについて、定数扱いする記載があります。Ssはロボットの制限速度に応じた最悪条件を考えれば、定数として扱うことができます
*13:下記例1,例2については、本来は「空間」を設定した上で議論すべきですが、省略しています。
*14:速度制限をかけている場合はその制限内での最大速度
*15:停止時間や停止距離の安全機能がある場合はその時間・距離を使用、あるいはロボットメーカから提供される停止時間・距離のデータ