ロボットとは何か:センス・プラン・アクト
すべてのロボットが回しているループ、自由度の数え方、コンフィギュレーション空間と作業空間の違い、仕事で出会う主なロボットの種類を解説します。
このレッスンで学ぶこと
- あるロボットについてセンス・プラン・アクトのループを描き、各ブロックのハードウェアとソフトウェアを挙げる
- 剛体、シリアルアーム、車輪付きベース、クアッドロータの自由度を数える
- 2リンクアームを例に、コンフィギュレーション空間と作業空間の違いを説明する
- 見慣れないロボットを5つの分類のいずれかに位置づけ、どの制御問題が支配的かを述べる
このレッスンでは、入門トラックの残りで使う用語を整理します。対象は、プログラミングはできるもののロボットに取り組んだことのないエンジニアと、数学に入る前に共通の用語をそろえておきたいロボティクス関係者です。このレッスンにコードはありません。レッスン02以降は、すべてのレッスンに実行可能なPythonコードがあります。
実用的な定義
ロボットとは、物理世界を計測し、その計測結果から何をするかを決め、その世界の中で自分自身または他の物体を動かす機械です。3つの要素はどれも欠かせません。CNCフライス盤はコンピュータ制御で動きますが、決まったプログラムに従うだけで、素材が誤った位置にあっても計画を変えません。スマートスピーカーはセンシングと判断を行いますが、何も動かしません。ロボットは物理世界を通じてループを閉じます。自らの動きが、次に計測するものを変えるのです。
このループこそがロボティクスを難しくしています。車輪は滑り、部品は回転した状態で届き、リンクは負荷でたわみ、センサはドリフトし、人が進路に入ってきます。ロボットのエンジニアリングの大半は、コンピュータ内のモデルと外の世界とのずれに対処するために存在します。
センス・プラン・アクト
ロボットのソフトウェアを構成する方法として、最も古く、今も最も役に立つのがセンス・プラン・アクト(sense-plan-act)ループです。センサは生の計測値を出力します。推定の段階で、それをロボットとその周囲の状態についての推定(信念)に変換します。プランナは次に何をするかを選びます。コントローラは計画をモータへの指令に変換し、モータが世界に力を加えます。そして、ループが再び回ります。
各ブロックは実際のハードウェアとソフトウェア、そしてこのトラックの後続のレッスンに対応しています。
- 知覚。 関節のエンコーダは角度を出力します。慣性計測装置(IMU)は角速度と加速度を出力します。カメラ、LiDAR、力覚センサは、周囲の様子と接触の情報を出力します。どのセンサにもノイズがあり、遅れるものもあります。これはレッスン06の主題です。
- 推定。 生の読み取り値を状態に変換します。アームなら関節角と関節速度、移動ロボットなら地図上の位置姿勢です。カルマンフィルタなどのフィルタは、不完全な複数のセンサを組み合わせて、より良い1つの推定値を作ります。詳しくは状態推定ハブで扱います。
- 計画。 状態と目標が与えられると、プランナは障害物を避ける経路や、関節位置の列を選びます。レッスン08では、A*を使ってグリッド上で経路計画を行います。
- 制御。 コントローラは、ロボットがあるべき位置と実際の位置を比べ、その差を小さくするモータ指令を計算します。レッスン05では、1つの関節に対するPIDコントローラを作ります。
- 行動。 モータドライブは指令を電流に変え、モータは電流をトルクに変え、減速機は速度と引き換えにトルクを得ます。アクチュエータとドライブのハブでは、BLDCモータなどのモータや、波動歯車装置などの減速機の種類を扱います。
各ループの実行周期は異なります。ドライブ内の関節サーボは、プランナよりはるかに高速に動きます。新しい経路を計算する価値が出るよりずっと前に、関節の補正が必要になるからです。図に別の内側ループを描いているのはこのためです。実際のロボットは入れ子になったループの積み重ねで、下層ほど高速で単純、上層ほど低速で熟慮的です。
センス・プラン・アクトの限界
厳密なセンス・プラン・アクトのパイプラインは、計画ができるまで動きません。計画が遅く、その間に世界が変われば、ロボットは古い情報に基づいて行動することになります。Rodney Brooksは1985年に、移動ロボットはタスクを達成する振る舞いの層を重ねて作るべきだと主張しました。障害物回避のような単純な層は動き続け、その上に上位の層を追加し、上位の層は下位の層を上書きできます。現代のシステムは両方の考え方を取り入れています。ナビゲーションスタックは、大域経路を低い周期で計画し、大域計画では見えなかった障害物を避ける局所コントローラを高い周期で実行します。このループは、厳密な順序で実行する規則ではなく、こなすべき仕事の地図として捉えてください。
自由度
システムの自由度(DoF)とは、そのすべての部分の位置を表すのに必要な独立した数値の個数です。この数はロボットのコンフィギュレーションの次元であり、ロボットにできることの範囲を決めます。
平面内を動く剛体は 3 自由度を持ちます。2つの位置(x, y)と1つの向きの角度です。空間内を動く剛体は 6 自由度を持ちます。3つの位置(x, y, z)と3つの角度です。この2つの数は頻繁に登場します。部品を任意の位置に任意の姿勢で置くグリッパは、6つすべてを制御する必要があります。
各リンクが前のリンクにぶら下がるシリアルアームでは、1軸の関節ごとに自由度が1つ増えます。回転関節は角度を1つ、直動(スライド)関節は長さを1つ加えます。したがって、回転関節を2つ持つ平面アームは 2 自由度です。このアームはレッスン03で扱います。一般的な産業用アームは回転関節を6つ持ちます。これは、空間内の一般的な位置と姿勢に到達するための最小数です。7関節のアームは冗長で、グリッパを静止させたまま肘を動かせます。これは障害物を回り込んだり、関節の可動限界から離れたりするのに役立ちます。
リンクがループを形成する閉リンク機構では、より注意が必要です。パラレルロボット、複数の脚で立つ脚式ロボット、物体を把持したハンドはいずれもループを持ち、ループ内の関節はすべてが独立しているわけではありません。この場合の自由度はGrüblerの式で数えます。LynchとParkが「Modern Robotics」の第2章で解説しています(「さらに読む」を参照)。
- 駆動と非駆動。 クアッドロータは 6 自由度を持ちますが、モータは4基しかないため、6つすべてを独立に指令できません。横に移動するには、まず機体を傾ける必要があります。このようなシステムを劣駆動といいます。空中相にある脚式ロボットや、バランスを取るロボットも劣駆動の例です。
- 速度に関する拘束。 差動二輪駆動のベースは平面内で 3 自由度(x、y、向き)を持ちますが、車輪モータは2基だけで、横にはスライドできません。それでも、車の縦列駐車のように切り返しを重ねれば、任意の位置姿勢に到達できます。レッスン07でこれを詳しく扱います。
コンフィギュレーション空間と作業空間
ロボットを記述する空間は2つあり、両者の混同は初心者に最も多い間違いの1つです。
コンフィギュレーション空間(C空間)は、取りうるすべてのコンフィギュレーションの集合です。アームの場合は、すべての関節角ベクトルの集合です。関節が一回転できる平面2リンクアームのC空間は2つの角度からなり、それぞれ360度で一周して元に戻ります。位相的には、これはトーラスの表面です。関節の可動範囲はその一部を切り取り、障害物はアームが衝突する領域をくり抜きます。
作業空間は、エンドエフェクタが到達できる位置の集合です。同じ2リンクアームでリンク長が 0.4 m と 0.3 m の場合、作業空間はベースを囲む平らなリングで、外半径は 0.7 m(アームを伸ばした状態)、内半径は 0.1 m(アームを折り返した状態)です。レッスン03では、関節を掃引してこのリングを計算します。
C空間から作業空間への写像が順運動学です。これは常に定義され、常に一意です。関節角が与えられれば、先端位置は1つに決まります。逆向きの写像である逆運動学はより難しくなります。2リンクアームでは、作業空間内の点は通常2つのコンフィギュレーション(エルボーアップとエルボーダウン)に対応し、境界上の点は1つに対応し、外側の点はどれにも対応しません。レッスン04でこれを解きます。
アームのプランナは通常C空間で動作します。C空間では関節の可動範囲や衝突を表しやすいからです。一方、タスクは作業空間で記述されます(「ボルトをここに置く」)。両者の間の行き来は、運動学ハブと動作計画ハブで扱います。
ロボットの主な種類
産業や研究で使われるロボットは、いくつかの分類に分かれます。境界はあいまいですが(モバイルマニピュレータは車輪付きベースに載ったアームです)、各分類にはソフトウェアのあり方を決める主要な問題があります。
| 分類 | 典型的な自由度 | 主なセンサ | 最も難しい問題 | 詳しくは |
|---|---|---|---|---|
| 産業用アーム | 通常 6、SCARA型は 4 | 関節エンコーダ、場合によりカメラや力覚センサ | 安全柵の内側での高精度・高速な軌道 | 運動学、マニピュレーション |
| 協働ロボット | 6 または 7 | エンコーダ、関節トルクまたは電流の検出 | 人と安全に空間を共有すること | 安全と規格 |
| 移動ロボット(AMR、AGV) | 3(平面ベース) | 車輪オドメトリ、LiDAR、IMU、カメラ | 自己位置の把握と経路の探索 | 移動ロボット、SLAM |
| 脚式ロボット・ヒューマノイド | 胴体の 6 に、脚・腕の関節ごとに 1 を加えた数 | IMU、関節エンコーダ、足裏の接触、カメラ | 不整地でのバランスと接触 | 脚式ロボットとヒューマノイド |
| ドローン・フィールドロボット | 6(機体)、駆動されるのはそれより少ない | IMU、GNSS、カメラ、LiDAR | 劣駆動、天候、地形、長時間のミッション | 空中・フィールドロボット |
産業用アームは、溶接、塗装、パレタイジング、マシンテンディングを担います。安全柵で囲まれたセル内で動くため、ソフトウェアはアームの動作中にセル内に人がいないと仮定でき、速度と繰り返し精度に力を注ぎます。ABB、FANUC、KUKAの各プラットフォームページで、主なコントローラのエコシステムを紹介しています。
協働ロボットは、アプリケーション全体のリスクアセスメントを前提に、完全な安全柵なしで人の近くで作業するよう設計されたアームです。力と速度を制限し、予期しない接触を検出します。Universal RobotsとFranka Roboticsのページで、代表的なメーカー2社を紹介しています。
移動ロボットは、倉庫や病院での物品搬送、床の清掃、現場の点検を行います。車輪付きベースはモデル化が容易な一方、自己位置推定は困難です。ロボットはノイズの多いセンサから、地図上の自分の位置を割り出す必要があります。これが同時自己位置推定と地図作成(SLAM)の問題です。
脚式ロボット・ヒューマノイドは、単純な車輪を手放す代わりに、段差、隙間、不整地を越える能力を得ます。一歩ごとに制御された落下と接触イベントが起こるため、制御と状態推定が中心的な課題になります。Boston DynamicsとUnitreeのページで、脚式ロボットを販売するメーカー2社を紹介しています。
ドローンなどのフィールドロボットは屋外で働きます。空中、農業、水中、鉱山、建設現場などです。天候、GNSSの受信不良や欠如、長時間の無人ミッションに直面します。ドローンのプラットフォームページで、オープンなフライトスタックを紹介しています。
ロボットカタログには、各分類の具体的な機種を、メーカーの公表仕様とともに掲載しています。
このトラックの残りで作るもの
入門トラックでは、小さな実行可能なプログラムでループを1周します。
- レッスン02: numpyによる座標系、回転、同次変換。
- レッスン03とレッスン04: 平面2リンクアームの順運動学と逆運動学。
- レッスン05: シミュレーション上の1関節のPID制御(飽和とワインドアップを含む)。
- レッスン06とレッスン07: センサノイズとフィルタリング、続いて車輪オドメトリ。
- レッスン08: 占有格子地図上での経路計画。
- レッスン09とレッスン10: MuJoCoによるアームの物理シミュレーション、続いて最初のROS 2ノード。
トラックの修了後は、2リンクアームのプロジェクトでレッスン03と04を組み合わせ、図形を描くアームを作ります。
演習
ロボット掃除機を1つ選び、次の問いに紙の上で答えてください。
- そのセンス・プラン・アクトのループを描いてください。各ブロックに、そのロボットが備えていると思われる具体的な構成要素(センサ、アルゴリズム、モータ)を少なくとも1つ書き込んでください。
- 床の上での機体の自由度と、駆動モータの数を数えてください。上で述べた意味で劣駆動ですか。開けた床の上で、あらゆる位置と向きに到達できますか。
- このロボットのコンフィギュレーション空間と作業空間を説明してください。このロボットでは両者は同じ集合ですか。アームと異なるのはなぜですか。
- クアッドロータと7関節アームについて問2を繰り返し、3つのうちどれが速度拘束を理解するプランナを必要とするか答えてください。
まとめ
- ロボットは物理世界をセンシングし、判断し、世界に働きかけます。自らの動きが、次にセンシングするものを変えます。
- センス・プラン・アクトのループは、ロボットのソフトウェアが担う仕事の地図です。実際のシステムでは、低速な推定・計画のループの内側に、高速なサーボループが入れ子になっています。
- 自由度は、ロボットのコンフィギュレーションを決める独立な数値の個数です。平面内の剛体は 3、空間内の剛体は 6、シリアルアームは関節ごとに1つです。
- コンフィギュレーション空間は関節値の集合です。作業空間は、エンドエフェクタが到達できる位置の集合です。順運動学は前者を後者に写像し、逆運動学はその逆を行います。
- 産業用アーム、協働ロボット、移動ロボット、脚式ロボット・ヒューマノイド、ドローン・フィールドロボットには、それぞれソフトウェアのあり方を決める主要な問題があります。
さらに読む
- Lynch and Park, 「Modern Robotics: Mechanics, Planning, and Control」, Cambridge University Press, 2017: 第2章でコンフィギュレーション空間、自由度、Grüblerの式を定義し、2.5節でタスク空間と作業空間を区別しています。無料の講義動画がNorthwestern大学の関連サイトで公開されています。
- Siciliano, Sciavicco, Villani and Oriolo, 「Robotics: Modelling, Planning and Control」, Springer, 2009: このトラックの話題をさらに掘り下げる大学院レベルの教科書です。第1章は分野の概説です。
- Corke, 「Robotics, Vision and Control: Fundamental Algorithms in Python」, 3rd edition, Springer, 2023: 移動ロボット、アーム、ビジョンをコード中心にたどる本です。このトラックはその考え方に倣っています。
- Brooks, “A robust layered control system for a mobile robot”, 「IEEE Journal on Robotics and Automation」, 2(1), 1986: 厳密なセンス・プラン・アクトのパイプラインに代わる、階層型のアプローチです。それ以前のMIT AI Memo 864(1985年9月)も同じタイトルです。