『ROS+シミュレータ(Gazebo)』によるダイナミクスや制御の再現性について

こんにちは、トロボです。

今回は ROS に関するお話です。

みなさん、ROSのことをご存知でしょうか。このサイトを閲覧されている方はご存知の方が多いと思いますが、初めて聞く方もいらっしゃると思いますので簡単に説明します。

ROSは「Robot Operating System」の略であり、ロボット開発のためのソフトウェアの集合体およびフレームワークです。現在ROSはOSRF (Open Source Robotics Foundation)によって開発されています。ユーザはROSを使用することで、ロボットへの動作指令や状態取得などの基本的な処理だけでなく、ロボットの軌道生成や外部センサとの連携といった高度な処理を簡単に実装することができます。

さらに、ROSにはGazeboというハードウェアシミュレータがついています。Gazeboを利用することで、実機を使わずにROSプログラムをPC上で試すことができます。これは、ROSを利用する大きなメリットです。下図はToroboArmのGazeboシミュレータを起動した様子です。

ここで注意をしていただきたいのが、『ROS+Gazeboでロボットアームのダイナミクスや制御を正確に再現できるかどうか』についてです。時々、「実機を使わずにアームのダイナミクスや制御を検証したい」という質問を受けますが、結論から言えばこれは簡単ではありません。

ダイナミクスに関してはGazeboがシミュレートする物理現象の正確性、制御性に関してはROS_Controlによるロボットアームの制御性がカギを握っています。それぞれ説明しましょう。

Gazeboがシミュレートする物理現象の正確性について

GazeboはURDF(Unified Robot Description Format)というロボットのモデルデータを読み込み、ODE(Open Dynamics Engine)という物理エンジンでシミュレートします。URDFでは、ロボットアームのリンクごとの質量や慣性テンソル、摩擦係数などを指定できます。

ここでやっかいなのが摩擦係数です。摩擦には様々なものがあり、クーロン摩擦(静止摩擦、動摩擦)やFDS摩擦(Slip)、粘弾性質摩擦(ERP/CFM)、転がり摩擦などがあります。これらをシンプルなロボットモデルで表現するのは難しいのです。また、ODEエンジンでは転がり摩擦に対応しておりません。以上により、今のところGazeboではダイナミクスを正確に再現するのは難しいと言えるでしょう。

ROS_Controlによるロボットアームの制御性について

ロボットアームを動かすには、実機であれシミュレータであれ制御が必要です。ROSにはROS_Controlという制御フレームワークがあり、この中にController ManagerというPID制御を行うモジュールがあります(下図の黄色いブロック)。これを用いてGazebo(シミュレータ)やハードウェア(実機)を制御することができます。

(下図参照※ブラウザにリンクを貼り付けて下さい)
https://github.com/osrf/gazebo_tutorials/blob/master/ros_control/Gazebo_ros_transmission.png

上図では実機をROS_ControlのController Managerで制御していますが、実際には実機をROS_Controlで制御することはあまりされていません。ロボットアームは10msec以上の高周期で制御する必要があり、ROSではリアルタイム性を確保できるとは限らないためです。つまり、シミュレータと実機で下記の違いがあります。この違いにより、シミュレータと実機で挙動(速度や振動など)が異なってしまいます。

 種類 制御方法
シミュレータ(Gazebo) ROS_ControlによるPID制御
ハードウェア(実機) ベンダーごとに設計された制御

それならば、シミュレータ(Gazebo)のPID制御をチューニングして実機に近づけることはできないのでしょうか?

これについて、次回お話ししようと思います。

ロボット学会に参加しました

こんにちは、トロボです。

9月12~14日に東洋大学川越キャンパスにてロボット学会の学術講演会が開催され、弊社も展示企業として参加しました。

他の展示企業にもいくつか気になる製品がありましたので、ご紹介します。

まず、お隣のブースでは、イグス株式会社さんが樹脂製の波動歯車とそれを使ったロボットキットを展示していました。

低価格で、樹脂製のため軽量、バックラッシュのない波動歯車なので、機械学習などの研究にちょっとしたロボットを組むのによいかもしれません。

こちらは、マイクロテック・ラボラトリーさんが出展されていたDDモータです。

ロボットへの適用を志向した小型のDDモータで、回転数よりトルクを重視した設計になっており、ケーブル取り回しの利便性のため中空部分の系もなるべく大きく取っているとのことです。

DDモータはフルバックドライブのため、それを用いて多軸ロボットを作ると、人間同様に力を抜いた時(電源を切った時)に落下するロボットが作れます。これは危険な感じもしますが、一方で、作業中にぶつかったときなど即座に力を逃がすことなどができるようになります。制御に関しても、リンクのダイナミクス(質量や慣性モーメント)を考慮しなければならないため、非常に難しくなりますが、研究としてはやりがいがあると思います。いずれにせよ、DDモータのロボットへの応用は可能性の大きいテーマと言えます。

センサ系では、タッチエンスさんが6軸の小型触覚センサを出していました。開発試作とのことですが、10Nのレンジで0.05Nの分解能で6軸の力覚検知が可能とのことです。ロボットハンドなどに組み込んで面白い研究ができそうです。

ハンド用の触覚センサと言えば、山口明彦先生によるフィンガービジョンプロジェクトの展示がありました。

グリッパの把持部に、黒いドットが描かれた透明なシリコンを用い、把持の際のドットのパターン変化をカメラで認識することで把持力や把持状態を計測するというものです。この方法なら微小な把持抗力も検知できますので、上の写真のような紙の箱も潰さずに持ち上げることができるわけです。下の写真は、シリコン把持部を指で押さえつけた時の様子ですが、シリコン上の黒い点の動きで把持力を計測し、赤い線が長いほど力がかかっていることを示しています。

本プロジェクトは、学術系のクラウドファンディングで出資を募っているようですので、もしよろしければ、ご協力をお願いします。

ロボット関連で言えば、おなじみ、トヨタさんのHSRや、THKさんのSEED-Noidなども出ていました。

 

リコーさんも社内向けとして多軸ロボットの取り組みを開始したようです。関節がモジュール化されており、様々なタイプのロボット(自動機)を作れることが利点とのことでした。

近藤科学さんは6足のロボットを出していました。18軸のロボットで、制御基板とモーション作成ソフトが付いて約10万円という、非常にお求めやすい価格設定になっています。

AI系としては、ベンチャー企業であるエイシングさんが、マイコン上でオンライン学習が可能な独自アルゴリズム「Deep Binary Tree」の実演(Raspberry Pi上でのピンポンゲームの強化学習)を行っていました。近年盛んな深層学習と毛色が違うAIをもって「世界を変える」という熱意を感じました。

大学の教室を利用した展示だったためか、来場者の数は多くはなかったですが、楽しい企業展示でした。来年は中部大学での開催だそうです。

協働ロボットの要件④

こんにちは、トロボです。

前回の記事では、ロボットを導入するユーザー(事業者)の立場から、産業用ロボット・協働ロボットに関する法律と、それに違反した際の罰則について検討してみました。今回はメーカーとして何が必要かを考えてみたいと思います。

これまでも述べたように、SIerやエンドユーザーに協働ロボットを使ってもらうためには、ロボットをISO 10218-1に適合させることが必要です。そうでないロボットをSIerやユーザーが協働ロボットとして使用した場合、「事業者の講ずべき措置等」を規定した安衛法第二十条に抵触する可能性があると考えます。

では、ISO以外では、メーカーとして何を気にする必要があるでしょうか?

まず気になるのは、製造物責任法(PL法)です。PL法では、製品に欠陥が認められ、それによって使用者が損害を被った場合、製造者等にその損害を賠償する責任があることを明確にしています。ここで「欠陥」とは、以下のように規定されています。

製造物責任法 第二条2項

この法律において「欠陥」とは、当該製造物の特性、その通常予見される使用形態、その製造業者等が当該製造物を引き渡した時期その他の当該製造物に係る事情を考慮して、当該製造物が通常有すべき安全性を欠いていることをいう。

欠陥は、一般に以下に分類されるようです(ここを参照)。
・設計上の欠陥(そもそもの設計上の欠陥)
・製造上の欠陥(製造の際に生じた欠陥)
・指示・警告上の欠陥(表示やマークなどの注意喚起の不備)

製品の欠陥による損害賠償のリスクを抑えるためにリスクアセスメントは必要であり、経産省が作成したハンドブックでもそれを勧めています。リスクアセスメントに法的義務はありませんが、事故が起こった際は、民事上の損害賠償責任や消費生活用製品安全法に基づいた回収命令が下されることあるとのことです(P.2)。協働ロボットは、人間の身近で動作する以上、仮に80W以下のロボットでもリスクアセスメントは必須であると言えます(そうであるなら、それ自体リスクアセスメントを求めるISO 10218-1への適合を目指したほうがベターかもしれません)。

その他、電気用品安全法も気になります。電気用品安全法は、規制対象製品(その中にさらに特定電気用品と特定以外の電気用品がある)に対して適用されるとのことです。規制対象製品は以下のリストに列挙されていますが、産業用ロボットは含まれていないようです。

http://www.meti.go.jp/policy/consumer/seian/denan/subject01.html
http://www.meti.go.jp/policy/consumer/seian/denan/subject02.html

・・・

これまで4回に渡って協働ロボットの要件について考えてきました。80W規制などは日本独自の基準ですが、近いうちに撤廃される可能性が高く、今後はISOが基準になっていくと思われます。また、「協働」という考え方により、リスクアセスメントが益々重要になってきています。ロボットメーカーとして、これらは事業に直結するため、引き続き今後の動向に注意を払っていきたいと思います。

協働ロボットの要件③

こんにちは、トロボです。

前回の記事で安衛則の詳細に立ち入ってみました。今回は安衛則を守らなかったら何が起こるのかを考えてみたいと思います(素人の法解釈であることを予めご了承願います)。

まず前提として、安衛則はあくまで運用規則ですので、それ自体は罰則を規定していません。安衛則が依拠する法律は労働安全衛生法(安衛法)であり、それに違反した時、同法に規定される罰則が適用されることになります。罰則の対象者は事業者(同法で「事業を行う者で、労働者を使用するもの」と定義)となります。機器を納めるメーカー等に対しては、同法の第三条の2に労働災害防止の努力義務が明記されているのみになり、特に罰則は規定されていません。

さて、産業用ロボットに関してですが、安衛則では、第百五十条第三~五号および第百五十一条において、教示、運転中の危険防止、検査、および点検の際に講じるべき措置について細かく規定されています。さらに、教示と検査に関しては、同規則第三十六条第三十一号・三十二号にて「特別教育を必要とする業務」として指定されています。この特別教育を怠った場合、こちらのレポートにもありますが、安衛法の第五十九条の3に違反することになり、同法第百十九条第一号の「六月以下の懲役又は五十万円以下の罰金」に処されます。

では、産業用ロボットの運転中の危険防止の措置を怠った場合は、どのような罰則があるのでしょうか? これに関しては「事業者の講ずべき措置等」を規定した安衛法第二十条第一号(罰則としては第百十九条第一号)が適用されるようです。これは機械装置の危険一般を対象とする条文ですが、例えば、産業用ロボットに挟まれ作業員が死亡した事件や、その他多くの機械系の事故における処罰の根拠となっているようです。

上記の議論は、あくまで安衛則/安衛法に関するもので、実際に産業用ロボットが事故を起こした場合は、労働契約法における安全配慮義務を根拠とした民事訴訟・損害賠償にも繋がります。そのため、事業者(使用者)は、事故を起こさないよう安全に対して細心の注意を払う必要があります。ただ、初めて産業用ロボットを導入する事業者はロボットに関する知識が少ないため、SIerのほうから顧客に対し、装置の安全な使い方の指導をきっちりとすべきと考えます。あるSIerの話では、安全に関する設計や指導に関し、責任の所在を明確にするため、打ち合わせ内容を必ず議事録に残すとのことでした。

協働ロボットは、上述した法に抵触する確率がずっと高いため、安全対策がより厳しく問われることになります。その際、メーカー・SIerが各社各様の安全対策を行っていたのでは、リスクの見積もりや責任の所在が不明確になるので、厚労省が協働ロボットに対しISO適合を義務付けたものと考えます。

次回は、メーカーとして考慮すべき各種法律について考えてみたいと思います。

協働ロボットの要件②

こんにちは、トロボです。

前回の記事で、最大モータの定格出力が80Wであることを境に「産業用ロボット」や「協働ロボット」の扱いが異なるということを書きました。今回は、いったいどこにそのようなことが書いてあるのか、エビデンスを探してみたいと思います。

まず、「産業用ロボット」とは何かということですが、公的な文書としては、労働安全衛生規則(労働安全衛生法に基づく実施規則として定められた厚生労働省令)に定義されています(同規則は略して「安衛則」とも呼ばれます)。

労働安全衛生規則 第三十六条 第三十一号

マニプレータ及び記憶装置(可変シーケンス制御装置及び固定シーケンス制御装置を含む。以下この号において同じ。)を有し、記憶装置の情報に基づきマニプレータの伸縮、屈伸、上下移動、左右移動若しくは旋回の動作又はこれらの複合動作を自動的に行うことができる機械(研究開発中のものその他厚生労働大臣が定めるものを除く。以下「産業用ロボツト」という。) 以下略

研究開発用のものは産業ロボットではないのですね。では、厚生労働大臣が定めるものとは何でしょう。

労働安全衛生規則第三十六条第三十一号の規定に基づき厚生労働大臣が定める機械を定める告示

労働安全衛生規則第三十六条第三十一号の厚生労働大臣が定める機械は、次のとおりとする。
一 定格出力(駆動用原動機を二以上有するものにあつては、それぞれの定格出力のうち最大のもの)が八〇ワツト以下の駆動用原動機を有する機械
二 固定シーケンス制御装置の情報に基づきマニプレータの伸縮、上下移動、左右移動又は旋回の動作のうちいずれか一つの動作の単調な繰り返しを行う機械
三 前二号に掲げる機械のほか、当該機械の構造、性能等からみて当該機械に接触することによる労働者の危険が生ずるおそれがないと厚生労働省労働基準局長が認めた機械

80Wの話が出てきましたね。ついでに動作の単調な繰り返しを行う機械も産業用ロボットではないようです。前回も書きましたが、産業用ロボットでなければ、安衛則の第百五十条第三号~第百五十一条に定める教示や点検に関する規則に従う義務はないため、法的な縛りが緩くなるというメリットがあります(もちろん、あくまで安衛則においては、ということですが)。

では、産業用ロボットを協働ロボットとして使用するための要件はどのように示されているのでしょうか?

少し回りくどくなりますが、安衛則の第百五十条第四号に次のような記述があります。

事業者は、産業用ロボツトを運転する場合(教示等のために産業用ロボツトを運転する場合及び産業用ロボツトの運転中に次条に規定する作業を行わなければならない場合において産業用ロボツトを運転するときを除く。)において、当該産業用ロボツトに接触することにより労働者に危険が生ずるおそれのあるときは、さく又は囲いを設ける等当該危険を防止するために必要な措置を講じなければならない

ここで柵の話が出てきましたね。ロボットに危険性がなければ「さく又は囲いを設ける等」は必要なく、危険性があるなら「さく又は囲いを設ける等」が必要ということです。実はこの「等」が重要になってくる訳でして、産業用ロボットに係る労働安全衛生規則第150条の4の施行通達の一部改正について別紙にて以下のように示されています。

(3) 「さく又は囲いを設ける等」の「」には、次の措置が含まれること。
(中略)
ホ 国際標準化機構(ISO)による産業用ロボットの規格(ISO 10218-1:2011及びISO 10218-2:2011)よりそれぞれ設計、製造及び設置された産業用ロボット(産業用ロボットの設計者、製造者及び設置者が別紙に定める技術ファイル及び適合宣言書を作成しているものに限る。)を、その使用条件に基づき適切に使用すること。(以下略)

つまり、ISO 10218への適合を自己宣言すれば、柵や囲いを設けたものと同等とみなされるということになります。ちなみに、同じ文書の(2)では、リスクアセスメントを行って危険性がなくなったと評価できた際は「労働者に危険が生ずるおそれのあるとき」に該当しないものとする、とあります。つまり、リスクアセスメントによっても柵などを不要にできることが示されています。

上記をまとめると、以下のように整理できます。

・リスクアセスメントで安全確認 ⇒ 柵なしOK ⇒ 協働可
・ISO 10218 ⇒ 柵なしOK ⇒ 協働可

その後、厚労省から出されたリーフレットにも同様の記述があります。ただ、厚労省の委託事業において中央労働災害防止協会によってまとめられたガイドラインには、「ISO 10218 に適合するための前提としてリスクアセスメントを実施」(P.10)というような書かれ方がされており、そもそもISO 10218に適合するためにはリスクアセスメントが必要なので、結論として、以下のようになります。

・柵なしの協働ロボットにはISO 10218への適合が必要

ここでようやく前回の記事の裏が取れました。ちなみに上のガイドラインには、「協働ロボットのうち、人との接触が発生する産業用ロボットにおいては、技術仕様書ISO/TS 15066 に適合することが必要(義務)」であることも述べられています。

では、上記議論の基礎になる安衛則を守らなかった場合にどのような罰則があるのか? これについては次回考えてみたいと思います。

協働ロボットの要件①

こんにちは、トロボです。

知人からROBOTIQ社のCollaborative Robots Buyer’s Guideを教えてもらったのですが、20社34の協働ロボットが値段入りで紹介されており、なかなか有益な情報が含まれています。いくつか知らない会社・ロボットもあり、まだまだ新たな協働ロボットが登場しそうな機運を感じた次第です。

ところで、何をもって「協働ロボット」なのでしょうか?

「人の近くで安全に作業できるロボット」と言えばその通りですが、このような漠然とした定義では事業に直結しそうもありません。ここでは、法令や規格の面から協働ロボットの要件について整理してみたいと思います。

と、素晴らしいオリジナルレポートが出てきそうな導入ですが、言いたいことが日経ロボティクス2017年6月号『“80W規制緩和”の数値は一度忘れるべき 協働ロボットの安全に関する大きな誤解』に簡潔にまとめられており、特に使用されている図が非常に分かりやすかったため引用します。


出典:日経ロボティクス2017年6月号 P.16

この図にあるように、日本と海外で、協働ロボットに求められる要件が異なります。まず、大きな違いは、日本の場合、80W規制が存在することです。これは、厚生労働省令である労働安全衛生規則において、ロボットに使用される最大出力のモータの定格出力が80W以下の場合、「産業用ロボット」としてみなされないというものです。そのため、同規則に定める「さく又は囲いを設ける等」の措置が不要になり、協働ロボット導入の制約が緩くなる訳です。例えば、カワダロボティクスのNEXTAGEなどは、このカテゴリで勝負しています。

一方、モータの定格出力が80Wを超える場合は、産業用ロボットのための安全要求事項であるISO 10218-1/2や、協働ロボットの安全性を規定した技術文書であるISO/TS 15066への適合が義務付けられています(第三者機関からの認証でなく自己宣言でよい)。

【参考】ISO 10218と対応するJIS文書
B 8433-1:2015 (ISO 10218-1:2011)
B 8433-2:2015 (ISO 10218-2:2011)

では、誰がこうした要件を定めているのかということですが、日本においては厚生労働省のようです。上述した労働安全衛生規則もそうですが、ISOへの適合の義務も厚労省からの通達ガイドラインに示されています。

次回は、産業用ロボットを取り巻く労働安全衛生規則の詳細に立ち入ってみたいと思います。

ブログを開始しました

こんにちは、トロボです。

この度、開発者ブログを開設しました。ロボットの開発を通して得られた知見や調査結果、新製品の開発状況などを共有していきます。

どうぞよろしくお願いいたします。