Inverse Kinematics
- 又稱: IK
- 類別: Foundations & spatial maths › Kinematics
- 標籤: kinematics, control
以數學計算達到末端執行器目標位置所需的關節角度。
定義
逆向運動學(IK)計算將末端執行器放到期望位置與姿態所需的關節角度。它是順向運動學的反問題。是機器手臂控制與運動規劃不可或缺的基礎。
為何重要
逆向運動學回答的是每個實際機器人任務一開始的問題:已知我想讓工具在哪裡,每個關節應該保持什麼角度?正是它讓我們可以說「移到物體上方的這一點」,而不必親手指定六個關節值。它也比正向問題更困難,這深刻地影響了機器人軟體:解可能有好幾個、不存在,或在某些配置附近不穩定,所以逆向運動學求解器不只要找出一個答案,同樣重要的是在答案之間做出合理的選擇。
主要應用
- 笛卡兒運動指令:把工具移到某個姿態,而不是移到某組關節角度
- 遠端操作,把人手或主導手臂的姿態對應到跟隨手臂上
- 視覺伺服,把攝影機看到的目標轉換成關節運動
- 軌跡跟隨,沿著焊道或噴漆路徑等路徑反覆求解逆向運動學
- 抓取執行,取得規劃好的抓取姿態,並找出能到達它的手臂配置
- 工作範圍與可達性分析,測試哪些姿態究竟有有效的解
實際應用
在 6 自由度手臂上,MoveIt 通常會呼叫 KDL 之類的數值求解器,或 IKFast 這類自動生成的解析求解器,而實務上的差異會立刻顯現。解析求解器很快,而且會回傳所有的解,讓規劃器能挑出最接近目前姿態的解,手臂就不會突然翻轉手肘;數值求解器較通用,但只回傳一個答案,而且這個答案取決於起始猜測值。新手最常遇到的意外,是一個在幾何上可到達的姿態卻沒有解,因為關節限制或自我碰撞把它排除了。
常見誤解
- 逆向運動學一定會回傳答案:看似可到達的姿態,常因關節限制、自我碰撞或奇異點而被排除
- 只有一個正確的解:手肘朝上與手肘朝下的配置都能到達同一點,選得不好會讓手臂大幅甩動
- 逆向運動學會處理路徑:它只求解單一姿態;安全地到達那裡是運動規劃的工作
- 更強大的求解器能消除困難:在奇異點附近,數學本身就會變得病態,任何求解器都逃不掉
誰需要了解
- 任何以笛卡兒座標指揮手臂的人
- 設定 MoveIt 或同類規劃堆疊的開發者
- 排查手臂以令人擔憂的路線到達姿態之問題的工程師
- 把主導端姿態對應到跟隨手臂的遠端操作開發者
- 初次接觸正向與逆向問題差異的學生
相關技術
- 正向運動學
- 雅可比矩陣
- Denavit-Hartenberg 參數
- 奇異點
- 冗餘解析
- 運動規劃
- 數值最佳化
- Robot Operating System(ROS)MoveIt
相關術語
相關專案
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- 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
- MuJoCo MPC: DeepMind's interactive real-time model predictive control framework for MuJoCo
- PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization
- DART: C++ physics engine for articulated rigid body dynamics and robotics simulation
影片
- How Robots Use Maths to Move - Inverse Kinematics: James Bruton