Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Jacobian

  • Detto anche: Jacobian Matrix, Robot Jacobian, Manipulator Jacobian
  • Categoria: Foundations & spatial maths › Kinematics
  • Tag: mathematics, kinematics, control, velocity, singularity

Matrice che lega le velocità dei giunti alle velocità dell'end effector, fondamentale per il controllo dei bracci robotici.

Definizione

In robotica lo jacobiano è una matrice che descrive la relazione tra le velocità dei giunti e le velocità dell'end effector. È lo strumento matematico fondamentale che collega lo spazio dei giunti di un robot (gli angoli dei motori) al suo spazio operativo (posizione e orientamento della pinza nel mondo reale).

Per un braccio robotico con n giunti, lo jacobiano è una matrice 6 per n (6 righe per le 3 velocità lineari + 3 angolari dell'end effector). Moltiplicando lo jacobiano per il vettore delle velocità dei giunti si ottiene la velocità risultante dell'end effector:

v_end_effector = J q_dot**

Usi principali dello jacobiano: - Controllo di velocità: data una velocità desiderata dell'end effector, calcolare le velocità dei giunti necessarie usando lo jacobiano inverso. - Mappatura delle forze: la trasposta dello jacobiano riporta le forze all'end effector a coppie ai giunti, consentendo il controllo della forza sulla punta dell'utensile. - Rilevamento delle singolarità: quando lo jacobiano perde rango (il suo determinante tende a zero), il robot è vicino a una singolarità, una configurazione in cui non può muoversi in determinate direzioni. Rilevarla evita movimenti pericolosi dei giunti ad alta velocità. - Cinematica inversa: i risolutori iterativi di cinematica inversa usano lo jacobiano per calcolare piccole correzioni dei giunti che spostano l'end effector verso una posa obiettivo. - Analisi della manipolabilità: lo jacobiano rivela quanto bene il robot può muoversi e applicare forze nelle diverse direzioni in una data configurazione. L'ellissoide di manipolabilità visualizza questa capacità.

Lo jacobiano cambia con la configurazione del robot: va ricalcolato a ogni passo temporale man mano che i giunti si muovono. Ciò rende il controllo basato sullo jacobiano efficiente dal punto di vista computazionale (una moltiplicazione di matrici) ma dipendente dalla configurazione.

Capire lo jacobiano è essenziale per chiunque lavori al controllo di bracci robotici, al controllo della forza o alla pianificazione del movimento oltre il semplice controllo nello spazio dei giunti.

Perché è importante

Lo jacobiano è il ponte tra le velocità dei giunti e la velocità dell'utensile: la matrice che dice quanto velocemente e in quale direzione si muove l'end effector quando ruota ciascun giunto. È ciò che rende possibile un controllo cartesiano fluido, ed è anche ciò che rivela i punti deboli di un robot: dove lo jacobiano perde rango, il braccio si trova in una singolarità e non può più muoversi affatto in qualche direzione. Ne dipende anche il controllo della forza, poiché la stessa matrice lega le forze all'utensile alle coppie ai giunti.

Applicazioni principali

  • Controllo resolved-rate: guidare l'utensile a una velocità cartesiana comandata
  • Asservimento visivo, che converte l'errore nello spazio immagine in movimento dei giunti
  • Controllo della forza e controllo di impedenza, che riportano le forze all'utensile a coppie ai giunti
  • Rilevamento ed evitamento delle singolarità durante la pianificazione
  • Analisi della manipolabilità, che misura quanto liberamente il braccio può muoversi in una data posa
  • Controllo nello spazio nullo nei bracci ridondanti, che muove il gomito tenendo fermo l'utensile

In pratica

In un anello di teleoperazione o di asservimento visivo, il controller calcola ripetutamente una velocità desiderata dell'utensile e la moltiplica per lo jacobiano inverso per ottenere le velocità dei giunti. Questo funziona bene finché il braccio non si avvicina a una singolarità, tipicamente un gomito completamente disteso o un allineamento del polso, dove l'inversa esplode e piccoli movimenti comandati richiedono velocità enormi ai giunti. I controller di produzione si proteggono con i minimi quadrati smorzati, che sacrificano un po' di precisione in cambio della stabilità, ed è per questo che un braccio spesso sembra lento o si rifiuta di muoversi vicino al bordo della sua area di lavoro.

Idee sbagliate comuni

  • Lo jacobiano è una proprietà fissa del robot: cambia a ogni configurazione e va ricalcolato di continuo
  • Invertirlo è sempre possibile: nelle singolarità perde rango e l'inversa non esiste
  • Riguarda solo la velocità: la trasposta lega le forze all'utensile alle coppie ai giunti, ed è la base del controllo della forza
  • Le singolarità sono rari casi limite: un braccio completamente disteso o un polso allineato sono pose del tutto normali da richiedere

Chi dovrebbe saperlo

  • Chiunque implementi un controllo cartesiano di velocità o di forza
  • Sviluppatori che scrivono anelli di teleoperazione o di asservimento visivo
  • Ingegneri che indagano su un braccio che diventa instabile in certe pose
  • Studenti che passano dal controllo di posizione al controllo di velocità e di forza
  • Chiunque debba valutare se un braccio ha una destrezza utilizzabile in tutta la sua area di lavoro

Tecnologie correlate

  • Cinematica inversa
  • Analisi delle singolarità
  • Controllo del movimento resolved-rate
  • Ellissoide di manipolabilità
  • Parametri di Denavit-Hartenberg
  • Metodo dei minimi quadrati smorzati (Levenberg-Marquardt)
  • Proiezione nello spazio nullo
  • Teoria delle viti (screw theory)

Termini correlati

  • Inverse Kinematics
  • Kinematics
  • DOF
  • Joint

Progetti correlati

  • 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

Video

  • Velocity Kinematics & Jacobian Matrix | Robotics 101: Engineering Simplified

Wikipedia

  • Matrice jacobiana

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.