til

ロボット工学 (robotics)

ページ構成にあたって次の情報源を参考にした。

基礎知識

ロボット機構

運動学 (kinematics)

マニピューレータの位置と関節角度の関係を計算することを運動学という。関節角度から位置を計算することを順運動学 (forward kinematics)といい、逆に位置から関節角度を計算することを逆運動学(inverse kinematics)という。自由度が上がると逆運動学の計算は難しくなる。また、マニピュレータが冗長になると、逆運動学は解が一意に定まらなくなる。

静力学

動力学

制御理論 (control theory)

PID制御

WIP

H∞制御

WIP

ハードウェア

アクチュエータ

運動を発生させる部品をアクチュエータ (actuator)と呼ぶ。actuateは動かすとか作動させるとかの意味。次の通り分類される。

モータは電磁駆動アクチュエータである。世界で消費される電力のうち45%をモータが占めると言われる。[^fujielectric_servo_01] [^fujielectric_servo_01]: 基礎から学ぶサーボモータの仕組み

産業用ロボットのモータを考えると、決められた位置・速度・回転力(トルク)で動く必要がある。これは、電源が入っている間ずっと回転しているミニ四駆のモーターとは異なる。そこで、電流を調整する制御機構と、その入力となる位置検出機能、さらにトルク検出機能を搭載することで、指示通りに動かすことが考えられる。これをサーボモータという。サーボはServant(召使い)と由来を同じくする。サーボモータはフィードバック信号と位置・速度・トルクを比較し、その差がゼロになるように電力を調整する。この調整を担う機構がサーボアンプであり、ループをクローズドループと呼ぶ。

しかし、クローズドループは制御が複雑となる。電力が流れている間、常にモータが動くのではなく、パルスごとに予め定められた角度だけ回転するようにすることで、フィードバックを不要にできる。そこで、モータの内側の電磁石を全て同じ電流に接続するのではなく、交互に異なる電流に接続することで、一度に回転する角度を限定できる。これをステッピングモーターという。[^ichiken_2022] [^ichiken_2022]: ステッピングモーターの動作原理, 構造について解説 【イチケン電子基礎シリーズ】

マニピューレータ

ロボットのアーム全体をマニピューレタという。マニピューレタの先端に取り付けられるパーツをエンドエフェクタといい、グリッパやツール、センサなどが取り付けられる。

センサ

物理量を計測する装置をセンサという。次の通り分類される。

自律走行ロボットを考えると、運動状態や姿勢を高精度で測定する必要がある。そこで、加速度センサとジャイロスコープ(角速度センサ)を組み合わせ、さらに誤差の補正機能を搭載したような装置をIMU(Inertial Measurement Unit, 慣性計測装置)という。[^marubun_4590] [^marubun_4590]: 慣性計測装置(IMU)の基本とセンサデバイスとの違い

距離センサの原理には、可視光、ミリ波、超音波がある。可視光、または赤外線などを発射し、、その光が物体にあたってから返ってくるまでの時間によって物体までの距離を計測するセンサをLiDAR(ライダー)という。それに対して、ミリ波など電波を用いるを用いるセンサをRADER(レーダー)という。

人間の職人が行ってきたような作業をロボットに行わせることを考えると、手先の精密な制御が必要である。そのためには、材質の硬さなど、見た目からでは判断できない特徴をフィードバックする必要がある。人間の触覚は皮膚を通して感じる感覚である。ロボットが同様に伸び縮みを感じられるようにするには、手先などの引張や圧縮、つまり距離の違いを検出することが考えられる。そこで、金属の回路を絶縁体で覆い、手先に被せることで、手先の引張や圧縮によって金属が僅かに伸び縮みし、電気抵抗が変わることを検出する手法がある。これをひずみゲージといい、デジタル式体重計でも用いられている。[^polyplastics_c02] [^polyplastics_c02]: 体重計の仕組み また、金属材料の導体を向かい合わせに設置することで、距離の違いによる静電容量の違いを検出する手法もあり、これを静電容量式という。[^omron_forcesensor] [^omron_forcesensor]: 「力覚センサ」とは?ロボットによる匠の技の再現を実現

触覚センサが実際に触れることを必要とする一方で、センサと物体表面が近距離にある場合に触覚を検出できるセンサを近接覚センサという。近接覚センサは触覚センサと距離センサの中間ということができる。例えば手先を物体に近づけるとき、素早い速度でぶつかると衝撃がある。触覚センサはぶつかってからしか測定ができないので、ゆっくりと近づかざるを得ない。しかし近接覚センサがあれば、近づくまでは高速に動作することができる。超音波反射式や光反射式などの方式がある。[^jisedai-tech-labo_proximitysensor] [^jisedai-tech-labo_proximitysensor]: 近接覚センサとは?

ソフトウェア

リアルタイムOS (RTOS, Real-time Operating System)

機械式の制御の電子化が進むにつれて、センサやアクチュエータなどの複数のハードウェアの制御が厳密な応答時間が求められるタスクでも求められるようになった。例えば、エアバッグやABS (アンチロック・ブレーキ・システム)の制御が挙げられる。

特に組み込みシステムのプログラミングにおいて、OSを用いないプログラミングをベアメタルプログラミングという。処理の共通化について、おそらく当初は単純なスケジュジューリングなどがライブラリで提供されるに留まっていたと思われる。しかし厳密な応答時間や複数のタスク管理などが求められるにつれて、汎用OSが持つようなメモリ管理やデバイスドライバなどの機能が組み込まれたのだろう。現在ではリアルタイムOSと呼ばれる。リアルタイムとは実時間の意味で、処理を指示してから実際に開始するまでの最悪時間が保証されており、したがって必ず実時間内にタスクが開始する、という意味と思われる。

汎用のコンピュータとOSは、複数のユーザーと複数のアプリケーションを公平に実行することを念頭においているため、タイムシェアリング型のプロセス・スレッド管理を採用している。一方、リアルタイムOSではスレッドの管理方法をタイムシェアリング、プライオリティベース、イベントドリブンなどから選択できる。[^ohara_2017] [^ohara_2017]: 「RTOSとは何か」を理解できる7つの特徴

代表的なリアルタイムOSにFreeRTOSなどがある。

ROS (Robot Operating System)

ロボット開発では、複数のセンサやアクチュエータを協調させる必要がある。複数のプロセスを協調的に動かすアーキテクチャとしては、PubSubやキューなどのメッセージング、RESTやgRPCなどのAPI、メモリ共有などが考えられる。ロボット開発においては、センサのデータを複数のプロセスが読み取るように一対多の通信が行われること、モジュール同士の疎結合性などから、PubSubがよく用いられる。ロボット開発における分散コンピューティングのための通信ミドルウェア、およびエコシステムとしてROSがある。名前にOSとあるが、LinuxやWindowsの上で動くミドルウェアである。[^tamaki_2022] [^tamaki_2022]: 第1回 ROSとは?基本的概念とROS2が必要になった背景

DDS

ROS2に採用されているPub/Sub形式の通信プロトコル。主にUDPを用いて通信し、信頼性についてはDDSのレイヤーで担保しているが、TCPを用いる実装もある。[^youtalk_dds] [^youtalk_dds]: DDS (Data Distribution Service) とは

設計

生物から得た着想を新しい技術の開発に活かすことをバイオミメティクスという。

種類

移動型

無人搬送車 (AGR, automated guided vehicle)

自律走行ロボット (AMR, autonomous mobile robot)

自己位置推定, SLAM

監視カメラやGPS等からロボットの位置情報を取得できない場合でも、ロボット自身のセンサーで位置を推定することを自己位置推定という。始めから室内等の地図情報を持っている場合はそれで十分だが、そうでない場合は、ロボット自身が移動中に地図を生成し、その中で自分の位置を推定する必要がある。これをSLAM (Simultaneous Localization and Mapping)と呼ぶ。

自己位置推定のアルゴリズムについて、ROSのパッケージacmlでは、ベイズフィルター (bayes filter)の実装である粒子フィルター (PF, particle filter)を用いたモンテカルロ位置推定 (MCL, monte carlo localization)を採用している。このアルゴリズムでは、地図内におけるロボットの位置の確率分布を地図上の粒子として表現し、スキャン情報で位置を更新する。[^robogaku_2017] [^robogaku_2017]: ROSを用いた自律走行

acmlには、地図形式として専有格子地図 (専有グリッドマップ, occupancy grid map)が実装されている。専有格子地図とは、環境を格子状に分割し、セル毎に障害物があるか否かの確率を求めた地図である。[^akinami_2023] [^akinami_2023]: 【図解】占有格子地図(occupancy grid map)徹底解説

経路・動作計画

経路計画のためのアルゴリズムとしてRRTがある。アルゴリズムが単純なためカスタマイズしやすく、また高次元空間など最適化が難しい場所でも有用である。次の手順で経路を探索する。

  1. 地図上の点をランダムに選ぶ
  2. これまでの経路上の点の中で、ランダムに選ばれた点に最も近い点を選び、2点間に障害物が無ければ新たな道とする。なお、道が余りに長い場合は、道上から適度に近い1点を新たに選ぶ。
  3. 新たに加えられた点とゴールとの距離が一定以内の場合、2点間に障害物が無ければ新たな道とする。

また、経路計画の手法にポテンシャル法[^mhi_2014]がある。地図上で障害物が無限に凸、目標が無限に凹になるような仮想の勾配を設定し、その勾配に沿ってロボットを動かす方法である。障害物を見つけ次第地図(ポテンシャル場)を更新すればよいので、地形や障害物を事前に知る必要がなく、また3次元空間への適用も容易である。 [^mhi_2014]: ポテンシャル法によるロボット製品の障害物回避技術の開発

自動運転

自動運転において、カメラやLiDAR等の車載センサーを用いた自律型自動運転に対して、車車間 (V2V)通信、路車間 (V2I)通信などを組み合わせた運転を協調型自動運転と呼ぶ。通信について次の通り整理した。[^businessnetwork_2023] [^businessnetwork_2023]: 5.9GHz帯を「協調型自動運転」に活用へ 総務省が次世代ITSの研究会

車載センサーの情報、地図情報、および通信で得た情報を統合してダイナミックマップと呼び、次の要素を含む。[^sip_2017] [^sip_2017]: ダイナミックマップの概念/定義

歩行ロボット

歩行において、体の重心が常に支持多角形(片足支持期では足の裏、両足支持期では両足で形成される面積)内にある、言い換えると歩く途中でいつ止まっても転倒しない歩き方を静歩行という。その逆を動歩行という。

動歩行における重力と慣性力の合力が地面と交わる点をゼロモーメントポイント (ZMP)という。ZMPが支持多角形内に位置するような歩行制御手法もZMP法と呼ばれる。 ZMP法に基づく歩行は、人間や動物の自然な歩き方とは異なり、エネルギー効率が比較的低いため、人間が少ないカロリーで長い距離を歩ける理由を十分に説明できない。これに対して、アクチュエータやセンサおよび能動的な制御を一切用いずに、緩やかな下り坂を自然に歩くことを受動歩行という。受動歩行は、重力のみを利用して効率的な歩行を実現する。[^robogaku_2012] [^robogaku_2012]: 受動歩行の現象,原理,そして応用

据え置き型

未分類 (uncategorized)