トピックハブ

ロボティクスの基礎

他のすべてのハブの土台となる考え方です。機械がロボットであるための条件、センス・プラン・アクトのループの階層構造、自由度とコンフィギュレーション空間の意味、主なロボットの種類の違いを説明します。

更新 2026年11月14日 · ロボット、センス・プラン・アクト、自由度、コンフィギュレーション空間、作業空間、ロボットの種類、マニピュレータ、移動ロボット

概要

ロボットとは、物理世界を計測し、何をするかを決め、その世界の中で何かを動かす、という動作を繰り返す機械です。重要なのはこの繰り返しです。CNCフライス盤は決められたプログラムに従い、自分の軸の状態だけを確認します。ロボットは環境を介してループを閉じるため、次の動作は直前に計測した内容によって変わります。

このハブは、ソフトウェア、機械学習、機械設計の分野から来たエンジニアが、専門のハブに進む前に共通の用語を身につけるためのものです。正式な用語はISOがISO 8373:2021, Robotics: Vocabularyで定めています。このページでは、多くの教科書やコードベースで共通して使われている実用上の意味を用います。

重要な考え方

センス・プラン・アクトのループとその階層

古典的な考え方では、ロボットを3つの段階に分けます。計測(sense)の段階では、生の計測値をロボット自身と周囲の状態の推定値に変換します。計画(plan)の段階では、経路、軌道、またはタスクの手順を選びます。行動(act)の段階では、その計画をモータへの指令に変換します。その物理的な結果を再び計測し、ループが繰り返されます。

センサカメラ、LiDAR、エンコーダ状態推定姿勢、速度、地図計画経路、軌道、タスク制御関節トルクまたは速度アクチュエータドライバ、モータ、ギア機体と環境動力学、接触高速な内側ループ:エンコーダから制御へのフィードバック低速な外側ループ:計測、推定、計画
センス・プラン・アクトのループ。センサの情報は状態推定に入り、プランナは推定値を軌道に変換し、コントローラは軌道をアクチュエータへの指令に変換します。その物理的な結果は再び計測されます。関節エンコーダは、計画を待たないはるかに高速な内側ループで、コントローラにも直接入力されます。

実際のシステムは、厳密な逐次処理ではなく階層構造になっています。各層はそれぞれ固有の周期で動作します。モータドライブは電流ループを毎秒数千回以上閉じます。mjbotsによれば、moteus r4.11コントローラは制御ループを15〜30 kHzで実行します。関節位置コントローラはそれより遅く動作します。プランナはゴールや地図が変わったときに実行され、タスク層は人が新しい指示を出したときにしか動かないこともあります。知能の失敗に見えるロボットのバグの多くは、これらの層の間の周期やレイテンシの不整合です。

自由度とコンフィギュレーション空間

ロボットの自由度(DoF)とは、ロボットのすべての部分の位置を一意に決めるのに必要な、独立した数値の個数です。空間内を自由に動く剛体の自由度は6で、位置に3、姿勢に3です。6つの回転関節をもつシリアルアームも、関節1つにつき1で、自由度は6です。7関節のアームは6 自由度のタスクに必要な数より多くの自由度をもつため冗長であり、グリッパを動かさずに肘を動かせます。自由度を参照してください。

コンフィギュレーション空間(C空間)は、こうしたコンフィギュレーションすべての集合です。その中の各点が、ロボットの1つの完全な姿勢に対応します。部屋の中の障害物はC空間の禁止領域となり、動作計画器は空いている部分を通る経路を探索します。移動ロボットには、さらに特有の事情があります。床の上の車輪付きベースは3 自由度のコンフィギュレーション(x、y、方位)をもちますが、差動駆動で指令できる速度は2つだけなので、横に滑るように動くことはできません。これが非ホロノミック拘束で、/topics/mobile-robots/で扱います。

作業空間

作業空間は、エンドエフェクタが到達できる位置の集合です。到達可能作業空間(reachable workspace)は、少なくとも1つの姿勢でツールが触れられるすべての点を含みます。器用作業空間(dexterous workspace)はそれより小さい集合で、あらゆる姿勢で到達できる点だけからなります。データシートのリーチの値は外側境界の半径です。器用作業空間、関節リミット、/topics/kinematics/で説明する特異姿勢については何も示していません。

主なロボットの種類

  • 産業用アームは、通常6関節のシリアルマニピュレータで、安全柵で囲まれたセル内での速度と繰り返し精度を重視して作られています。
  • 協働ロボットは、人の近くで作業するように設計されたアームで、力の制限とトルク検出を備えています。協働ロボットと/topics/safety-and-standards/を参照してください。
  • SCARA・デルタ・ガントリロボットは、汎用性と引き換えに、ピックアンドプレースや組立での速度を得ています。デルタロボットはパラレルメカニズムで、複数のチェーンがベースとツールをつないでいます。
  • 移動ロボットには、倉庫の自律移動ロボット(AMR)、サービスロボット、屋外用プラットフォームが含まれます。/topics/mobile-robots/を参照してください。
  • 脚式ロボットとヒューマノイドは、単純さと引き換えに、不整地を移動する能力と、人のために作られた空間を使う能力を得ています。/topics/legged-and-humanoid/を参照してください。
  • 空中・フィールドロボットには、マルチコプター、固定翼ドローン、農業用・水中用のビークルが含まれます。/topics/aerial-and-field-robots/を参照してください。

当サイトが追跡しているロボットのデータシート値は/reference/robots/にまとめています。

どこから始めるか

まず/learn/beginner/01-what-is-a-robot/から始めてください。このページで説明したループをコードで組み立てます。次に/learn/beginner/02-frames-and-rotations/で、以降のすべてのレッスンで使う座標系を学びます。/learn/beginner/09-simulate-an-arm-in-mujoco/ではハードウェアなしでロボットを動かし、/learn/beginner/10-hello-ros2/ではほとんどのロボットが使うミドルウェアを紹介します。

ツールとプラットフォーム

ツール 用途 ライセンス プラットフォーム
ROS 2 大半の研究用ロボットと多くの商用ロボットで使われるミドルウェア、ドライバ、座標変換、ツール群 Apache-2.0(コア) /platforms/ros/
MuJoCo アーム、ハンド、脚式ロボットの物理シミュレーション。学習に使えるほど高速 Apache-2.0 /platforms/mujoco/
Gazebo センサとROS 2連携を備えたシミュレーション Apache-2.0 /platforms/ros/
PyBullet Pythonから使える軽量な物理シミュレーション zlib /platforms/opensource/
Robotics Toolbox for Python 教育とプロトタイピング向けの運動学、動力学、計画 MIT /platforms/opensource/

よくある間違い

  • データシートのリーチを、そのまま使える作業空間だと受け取ること。姿勢の要求と関節リミットによって作業空間は狭まり、その差は大きいことがよくあります。
  • タスクの自由度を数えずに、ロボットの自由度だけを数えること。5 自由度のタスク(たとえば対称なドリル)を行う6 自由度のアームには、使える余分な自由度が1つあります。
  • 度とラジアンを混同すること。ROSはREP 103に従っており、全体を通してSI単位系とラジアンを使います。
  • ループを描く前にプランナを設計すること。まず各層について、入力、出力、周期を書き出してください。
  • シミュレータのタイミングがロボットのタイミングと同じだと考えること。実際のセンサデータは遅れて届き、順序も入れ替わります。

さらに深く