Screw Axis
- 別名: screw, screw motion, twist axis
- カテゴリ: Foundations & spatial maths › Kinematics
- タグ: screw-theory, kinematics, rigid-body-motion, spatial-math, articulated-objects
剛体がそのまわりを回転しながらそれに沿って並進する空間内の直線。あらゆる剛体運動はこのように記述でき、ロボットの関節はスクリュー軸としてモデル化される。
定義
スクリュー軸(Screw axes)は、剛体の運動を、空間内の固定された直線まわりの回転と、その同じ直線に沿った並進の組み合わせとして記述する。ボルトの上でナットが回るのと同じである。Chasles–Mozzi の定理は、あらゆる剛体の変位がこのように記述できることを示し、瞬間的な速度についても対応する結果が成り立つ。すなわち、あらゆる剛体の速度は、ある軸まわりの回転とその軸に沿った並進の和である。
スクリュー軸には 3 つの要素がある。直線の方向、直線上の 1 点、そして並進と回転の比であるピッチ(pitch)である。純粋な回転はピッチがゼロで、これはまさに回転関節やドアのヒンジにあたる。純粋な並進はピッチが無限大の極限の場合で、直動関節や引き出しのスライドにあたる。スクリュー軸に速さを掛けるとツイスト(twist)が得られる。これは角速度と並進速度を組み合わせた 6 次元ベクトルである。力とトルクも同じように組み合わされてレンチ(wrench)になる。
スクリュー理論は Robert Ball によるスクリュー理論の論考にさかのぼり、ロボットの運動学を記述する現代的な方法の土台となっている。Lynch と Park の Modern Robotics などの教科書で教えられる指数積(product of exponentials)公式では、各関節を固定座標系におけるスクリュー軸で記述し、順運動学はそれらのスクリューの行列指数の積になる。これにより、Denavit–Hartenberg パラメータの座標系の割り当て規約を避けられる。
スクリューは特定の物体座標系を参照せずに運動を記述するので、物体どうしの相対運動を表す自然な方法でもある。ヒンジ、ふた、バルブ、あるいは 1 つの物体を持つ両手の間の相対運動は、それぞれ 1 本のスクリュー軸と、その軸に沿ってどれだけ動いたかで記述できる。
重要な理由
スクリュー軸は、関節、速度、力を、座標系に依存しない単一の形で記述する。運動学や動力学の導出をすっきりさせ、学習や知覚のシステムに、関節を持つ物体の運動を表すコンパクトな方法を与える。
主な用途
- 指数積公式による順運動学とヤコビ行列
- ドア、引き出し、ふたのような関節を持つ物体のモデル化
- 2 本のアームや両手の間の相対運動の記述
- 動力学アルゴリズムにおける速度と力のツイストとレンチによる表現
実際の使われ方
独自のアームの運動学を書くチームは、各関節を、ホーム姿勢でのベース座標系におけるスクリュー軸で定義し、それを CAD から直接読み取り、指数積公式で順運動学とヤコビ行列を計算できる。マニピュレーションでは、同じ表現が関節を持つ物体の記述に使われる。観測した動きから戸棚の扉のヒンジ軸を推定すれば、ロボットは拘束に逆らうのではなく、円弧に沿って引く軌道を生成できる。
よくある誤解
- スクリュー軸はねじやねじ山のある部品にしか当てはまらない — 純粋な回転や純粋な並進を含め、あらゆる剛体運動を記述する
- 回転と並進には常に別々の記述が必要である — Chasles–Mozzi の定理は、1 つのスクリュー運動で十分であることを示している
- スクリュー理論は同次変換に取って代わる — スクリュー理論は同次変換の上に成り立っており、スクリューの行列指数は通常の同次変換になる
知っておくべき人
- 運動学と動力学のエンジニア
- 関節を持つ物体をモデル化するマニピュレーションの研究者
- 空間の数学を学ぶロボティクスの学生
関連技術
- 指数積公式(Product of Exponentials Formula)
- ツイストとレンチ(Twist and Wrench)
- リー群(Lie Groups、SE(3))
- Denavit–Hartenberg パラメータ(Denavit–Hartenberg Parameters)
- 順運動学(Forward Kinematics)
関連用語
関連プロジェクト
- MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
- PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
- DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
- IKPy: Pure-Python inverse kinematics library that builds chains straight from URDF
- frax: JAX library for fast, differentiable robot kinematics, dynamics and inverse kinematics
動画
- Screws: a Geometric Description of Twists in Robotics | Fundamentals of Robotics | Lesson 17: Mecharithm - Robotics and Mechatronics