Kanca
Sayısal çözücü bir hedefe “ışınlanmaz”. Başlangıç tahmininden bir dizi küçük eklem güncellemesi üretir. Sönümleme katsayısı çok küçük ya da büyük olduğunda bu izin biçimi değişir. Aşağıda her iterasyonu geri sararak gör.
Yinelemeyi geri sar
DLS yakınsama izi
Aynı başlangıç konumundan çalışır. λ değerini değiştirip hata eğrisini ve her eklem güncellemesini karşılaştır.
Henüz çalıştırılmadı.
Nasıl hesaplandı?Her adımda hata, Jacobian'ın sönümlü tersinden gelen bir düzeltmeyle küçültülüyor.
Δθ = Jᵀ (J Jᵀ + λ²I)⁻¹ · hata
J her adımda mevcut eklem açılarından yeniden hesaplanan Jacobian, λ yukarıdaki sönümleme kaydırıcısı. λ küçüldükçe ham düzeltme büyür (tekillik yakınında J·Jᵀ terslenmesi zorlaşır) — ama robot aniden sıçramaz, çünkü her adımdaki gerçek açı değişimi ayrıca sabit bir üst sınırla kırpılır; küçük λ bu yüzden sıçrama değil, daha çok iterasyonda kararsız/yalpalayan bir yakınsama olarak görünür. λ büyüdükçe düzeltme küçülür, yakınsama yavaşlar ama düzgünleşir — sağdaki hata eğrisinde bunu λ değerini değiştirerek gözlemleyebilirsin. Kaynak kodu: lib/robotics/kinematics.ts içindeki inverseKinematicsNumerical.
Geliştirici ayrıntıları
- başlangıç tahmini (θ1, θ2)
- -0.55, 1.10 rad
- maksimum iterasyon
- 80
- yakınsama toleransı
- 0.001 m
- adım başına eklem sınırı
- 0.2 rad
Bağlantı yalnız bu sahnenin durumunu taşır; hesap veya ad içermez.
Önce dene
Dene
Hedefi sabit bırak. Önce λ ≤ 0.020, sonra λ ≥ 0.080 ile çöz. İki koşulda
iterasyon sayısını, hata eğrisini ve ilk beş eklem adımını karşılaştır. Bir
koşul yakınsamazsa bunu hata olarak gizleme; son hatayı ve sınırı kaydet.
Başarı kanıtı için iki sönümleme bandının ikisi de çalıştırılmalı ve transfer görevi çözülmelidir. Çoktan seçmeli yanıt tek başına “geçti” üretmez.
Kaynak kodu: inverseKinematicsNumerical
Ne oldu
İki yaklaşım var:
Analitik (kapalı form). Belirli geometrilerde (ör. son üç eklem
ekseninin tek noktada kesiştiği "küresel bilek" tasarımı) problem konum ve
yönelim olarak ikiye ayrılabilir, kapalı formül bulunabilir. Bizim
generic-2dof robotumuz da (düzlemsel, iki eklem) bu ayrıcalıklı
durumlardan biri — bu yüzden lise dersinde kapalı formül vardı.
Sayısal (yinelemeli). Genel durumda kapalı formül yoktur; hedefe adım adım yaklaşılır. Bu platformun sayısal çözücüsü sönümlü en küçük kareler (damped least squares) kullanır:
Δθ = J^T · (J·J^T + λ²·I)^-1 · hata
θ_yeni = θ_eski + Δθ
Burada J Jacobian matrisi (sıradaki derste), hata mevcut uç nokta ile
hedef arasındaki fark, λ sönümleme katsayısıdır. Bu adım hata 0.001 m
toleransının altına inene ya da 80 iterasyon sınırına ulaşana kadar tekrarlanır.
Küçük λ daha cesur adımlar üretebilir; büyük λ adımları bastırır. Bu bir
“büyük her zaman daha iyi” ayarı değildir: yakınsama, hedef ve başlangıç
konfigürasyonuyla birlikte ölçülür.
Gerçek dünyada
Gerçek bir sistemde çözücü; eklem limitleri, çarpışma, yönelim, başlangıç tahmini ve zaman bütçesiyle birlikte değerlendirilir. Bu laboratuvar yalnız iki eklemli düzlemsel, vendor-neutral bir simülasyondur; gerçek robot kontrolü veya güvenli hareket onayı değildir.
Sonraki
Δθ hesabının kalbinde var. Sıradaki ders onu tanıtıyor.