『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適合を義務付けたものと考えます。

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