ページ構成にあたって次の情報源を参考にした。
マニピューレータの位置と関節角度の関係を計算することを運動学という。関節角度から位置を計算することを順運動学 (forward kinematics)といい、逆に位置から関節角度を計算することを逆運動学(inverse kinematics)という。自由度が上がると逆運動学の計算は難しくなる。また、マニピュレータが冗長になると、逆運動学は解が一意に定まらなくなる。
WIP
WIP
運動を発生させる部品をアクチュエータ (actuator)と呼ぶ。actuateは動かすとか作動させるとかの意味。次の通り分類される。
- 運動の種類による分類
- ロータリアクチュエータ
- リニアアクチュエータ
- 駆動原理による分類
- 電磁駆動アクチュエータ
- 油圧駆動アクチュエータ
- 空気圧駆動アクチュエータ
- その他
モータは電磁駆動アクチュエータである。世界で消費される電力のうち45%をモータが占めると言われる。1
産業用ロボットのモータを考えると、決められた位置・速度・回転力(トルク)で動く必要がある。これは、電源が入っている間ずっと回転しているミニ四駆のモーターとは異なる。そこで、電流を調整する制御機構と、その入力となる位置検出機能、さらにトルク検出機能を搭載することで、指示通りに動かすことが考えられる。これをサーボモータという。サーボはServant(召使い)と由来を同じくする。サーボモータはフィードバック信号と位置・速度・トルクを比較し、その差がゼロになるように電力を調整する。この調整を担う機構がサーボアンプであり、ループをクローズドループと呼ぶ。
しかし、クローズドループは制御が複雑となる。電力が流れている間、常にモータが動くのではなく、パルスごとに予め定められた角度だけ回転するようにすることで、フィードバックを不要にできる。そこで、モータの内側の電磁石を全て同じ電流に接続するのではなく、交互に異なる電流に接続することで、一度に回転する角度を限定できる。これをステッピングモーターという。2
ロボットのアーム全体をマニピューレタという。マニピューレタの先端に取り付けられるパーツをエンドエフェクタといい、グリッパやツール、センサなどが取り付けられる。
物理量を計測する装置をセンサという。次の通り分類される。
- 検出対象による分類
- 角度センサ
- 角速度センサ
- 力センサ
- 距離センサ
- 加速度センサ
- 温度センサ
- その他
- 検出原理による分類
- 光学センサ
- 音響センサ
- 電磁気センサ
- 機会式センサ
- その他
自律走行ロボットを考えると、運動状態や姿勢を高精度で測定する必要がある。そこで、加速度センサとジャイロスコープ(角速度センサ)を組み合わせ、さらに誤差の補正機能を搭載したような装置をIMU(Inertial Measurement Unit, 慣性計測装置)という。3
距離センサの原理には、可視光、ミリ波、超音波がある。可視光、または赤外線などを発射し、、その光が物体にあたってから返ってくるまでの時間によって物体までの距離を計測するセンサをLiDAR(ライダー)という。それに対して、ミリ波など電波を用いるを用いるセンサをRADER(レーダー)という。
人間の職人が行ってきたような作業をロボットに行わせることを考えると、手先の精密な制御が必要である。そのためには、材質の硬さなど、見た目からでは判断できない特徴をフィードバックする必要がある。人間の触覚は皮膚を通して感じる感覚である。ロボットが同様に伸び縮みを感じられるようにするには、手先などの引張や圧縮、つまり距離の違いを検出することが考えられる。そこで、金属の回路を絶縁体で覆い、手先に被せることで、手先の引張や圧縮によって金属が僅かに伸び縮みし、電気抵抗が変わることを検出する手法がある。これをひずみゲージといい、デジタル式体重計でも用いられている。4
触覚センサが実際に触れることを必要とする一方で、センサと物体表面が近距離にある場合に触覚を検出できるセンサを近接覚センサという。近接覚センサは触覚センサと距離センサの中間ということができる。例えば手先を物体に近づけるとき、素早い速度でぶつかると衝撃がある。触覚センサはぶつかってからしか測定ができないので、ゆっくりと近づかざるを得ない。しかし近接覚センサがあれば、近づくまでは高速に動作することができる。超音波反射式や光反射式などの方式がある。6
- 自己受容感覚(proprioception): WIP
- interoception
- exteroception
機械式の制御の電子化が進むにつれて、センサやアクチュエータなどの複数のハードウェアの制御が厳密な応答時間が求められるタスクでも求められるようになった。例えば、エアバッグやABS (アンチロック・ブレーキ・システム)の制御が挙げられる。
特に組み込みシステムのプログラミングにおいて、OSを用いないプログラミングをベアメタルプログラミングという。処理の共通化について、おそらく当初は単純なスケジュジューリングなどがライブラリで提供されるに留まっていたと思われる。しかし厳密な応答時間や複数のタスク管理などが求められるにつれて、汎用OSが持つようなメモリ管理やデバイスドライバなどの機能が組み込まれたのだろう。現在ではリアルタイムOSと呼ばれる。リアルタイムとは実時間の意味で、処理を指示してから実際に開始するまでの最悪時間が保証されており、したがって必ず実時間内にタスクが開始する、という意味と思われる。
汎用のコンピュータとOSは、複数のユーザーと複数のアプリケーションを公平に実行することを念頭においているため、タイムシェアリング型のプロセス・スレッド管理を採用している。一方、リアルタイムOSではスレッドの管理方法をタイムシェアリング、プライオリティベース、イベントドリブンなどから選択できる。7
代表的なリアルタイムOSにFreeRTOSなどがある。
ロボット開発では、複数のセンサやアクチュエータを協調させる必要がある。複数のプロセスを協調的に動かすアーキテクチャとしては、PubSubやキューなどのメッセージング、RESTやgRPCなどのAPI、メモリ共有などが考えられる。ロボット開発においては、センサのデータを複数のプロセスが読み取るように一対多の通信が行われること、モジュール同士の疎結合性などから、PubSubがよく用いられる。ロボット開発における分散コンピューティングのための通信ミドルウェア、およびエコシステムとしてROSがある。名前にOSとあるが、LinuxやWindowsの上で動くミドルウェアである。8
ROS2に採用されているPub/Sub形式の通信プロトコル。主にUDPを用いて通信し、信頼性についてはDDSのレイヤーで担保しているが、TCPを用いる実装もある。9
生物から得た着想を新しい技術の開発に活かすことをバイオミメティクスという。
監視カメラやGPS等からロボットの位置情報を取得できない場合でも、ロボット自身のセンサーで位置を推定することを自己位置推定という。始めから室内等の地図情報を持っている場合はそれで十分だが、そうでない場合は、ロボット自身が移動中に地図を生成し、その中で自分の位置を推定する必要がある。これをSLAM (Simultaneous Localization and Mapping)と呼ぶ。
自己位置推定のアルゴリズムについて、ROSのパッケージacml
では、ベイズフィルター (bayes filter)の実装である粒子フィルター (PF, particle filter)を用いたモンテカルロ位置推定 (MCL, monte carlo localization)を採用している。このアルゴリズムでは、地図内におけるロボットの位置の確率分布を地図上の粒子として表現し、スキャン情報で位置を更新する。10
acml
には、地図形式として専有格子地図 (専有グリッドマップ, occupancy grid map)が実装されている。専有格子地図とは、環境を格子状に分割し、セル毎に障害物があるか否かの確率を求めた地図である。11
経路計画のためのアルゴリズムとしてRRTがある。アルゴリズムが単純なためカスタマイズしやすく、また高次元空間など最適化が難しい場所でも有用である。次の手順で経路を探索する。
- 地図上の点をランダムに選ぶ
- これまでの経路上の点の中で、ランダムに選ばれた点に最も近い点を選び、2点間に障害物が無ければ新たな道とする。なお、道が余りに長い場合は、道上から適度に近い1点を新たに選ぶ。
- 新たに加えられた点とゴールとの距離が一定以内の場合、2点間に障害物が無ければ新たな道とする。
また、経路計画の手法にポテンシャル法12がある。地図上で障害物が無限に凸、目標が無限に凹になるような仮想の勾配を設定し、その勾配に沿ってロボットを動かす方法である。障害物を見つけ次第地図(ポテンシャル場)を更新すればよいので、地形や障害物を事前に知る必要がなく、また3次元空間への適用も容易である。
自動運転において、カメラやLiDAR等の車載センサーを用いた自律型自動運転に対して、車車間 (V2V)通信、路車間 (V2I)通信などを組み合わせた運転を協調型自動運転と呼ぶ。通信について次の通り整理した。13
- V2X: 短距離通信を指すことが多く、技術的には主に無線LAN等を想定している。
- V2V: 車車間通信を指す。セルラー回線を用いることもある。
- V2I: 車とインフラ間の通信を指す。
- V2N: 広域通信を指すことが多い。
車載センサーの情報、地図情報、および通信で得た情報を統合してダイナミックマップと呼び、次の要素を含む。14
- 動的情報: 高精度3D地図情報
- 準動的情報: 交通規制予定情報, 道路工事予定情報等
- 準静的情報: 事故情報, 渋滞情報等
- 静的情報: 周辺車両, 歩行者情報, 信号情報等
歩行において、体の重心が常に支持多角形(片足支持期では足の裏、両足支持期では両足で形成される面積)内にある、言い換えると歩く途中でいつ止まっても転倒しない歩き方を静歩行という。その逆を動歩行という。
動歩行における重力と慣性力の合力が地面と交わる点をゼロモーメントポイント (ZMP)という。ZMPが支持多角形内に位置するような歩行制御手法もZMP法と呼ばれる。 ZMP法に基づく歩行は、人間や動物の自然な歩き方とは異なり、エネルギー効率が比較的低いため、人間が少ないカロリーで長い距離を歩ける理由を十分に説明できない。これに対して、アクチュエータやセンサおよび能動的な制御を一切用いずに、緩やかな下り坂を自然に歩くことを受動歩行という。受動歩行は、重力のみを利用して効率的な歩行を実現する。15
- morphological computation: WIP
- Affordance - アフォーダンス。環境内の物体が持つ行動可能性。例えば、椅子は「座る」というアフォーダンスを持つ。
- Semantic Mapping - 意味的マッピング。環境地図に物体の意味情報を付加する技術。
- Kinesthetic Teaching - 運動学的教示。人がロボットを直接動かして、タスクを教える方法。
- Lyapunov Stability - リアプノフ安定性。非線形システムの安定性を解析する数学的手法。ロボットの制御則設計に用いられる。
- Underactuation - 劣駆動。ロボットの自由度が駆動数よりも多い状態。
- Redundancy Resolution - 冗長性解消。ロボットの冗長な自由度を利用して、タスクを達成する方法。
- Proprioceptive Feedback - 固有感覚フィードバック。ロボットの関節角度や力覚などの内部情報を利用したフィードバック制御。
- Central Pattern Generator (CPG) - 中枢パターン発生器。リズミックな運動パターンを生成する神経回路網。ロボットの周期運動の生成に利用される。
- Dynamic Stability - 動的安定性。移動ロボットが運動中に姿勢を維持できる能力。
- ラウス・フルビッツの安定判別法: WIP
- ラグランジュの運動方程式: WIP
- ステップ応答と伝達関数: WIP
- インパルス応答とステップ応答とその関係: WIP