Kanca
Bir çerçeveyi önce 1 metre ilerletip sonra 90° döndürmek ile önce döndürüp sonra ilerletmek aynı iki işlemi kullanır. Yine de çerçeve iki farklı noktada biter. Önce sonucu tahmin et, sonra matrisin son sütunuyla ölç.
Tahmin → uygula → iki sırayı karşılaştır
Dönüşüm sırası laboratuvarı
Aynı iki işlem: çerçeveyi 90° döndür ve X yönünde 1 m ötele. Sırayı değiştir, çerçevenin nerede bittiğini gör.
Bağlantı yalnız bu sahnenin durumunu taşır; hesap veya ad içermez.
Ne oldu
lib/robotics/transform.ts içindeki Mat4 tipi yalnız sayı dizisi değil,
iki parçadan oluşan bir poz gösterimidir:
T = [ R p ] R: 3x3 dönme matrisi (yönelim)
[ 0 1 ] p: 3x1 öteleme vektörü (konum)
Sütun vektör gösteriminde A × B × p, p noktasına önce B, sonra A
uygular. Bu yüzden yazılı matris sırası ile fiziksel eylem sırasını birbirine
karıştırmamak gerekir:
R × T: önce ötele, sonra döndür; 90° örneğinde orijin(0, 1, 0)m olur.T × R: önce döndür, sonra ötele; aynı örnekte orijin(1, 0, 0)m olur.
Laboratuvarın çizimi, koordinatı ve 4×4 tablosu aynı multiply() ve
transformPoint() hesaplarından gelir; ekranda görünmeyen bir matris varsayılmaz.
Gerçek dünyada
Bir robot kontrolörü, her eklemin çerçevesini, alet ucunun çerçevesini
ve parçanın çerçevesini hep bu 4×4 matris biçiminde tutar — çünkü bu
biçim hem konum hem yönelim taşır VE çerçeveler arası dönüşümler basit
matris çarpımıyla birleştirilebilir. forwardKinematics fonksiyonundaki
accumulated = multiply(accumulated, step) satırı, tam olarak bu
birleştirmeyi yapıyor.
Dene
Laboratuvarda iki sırayı da çalıştır. Sonra aşağıdaki saf Python kodunda
başlangıçtaki yanlış çarpım sırasını düzelt. NumPy kullanmadan, 4×4 listeleri
çarparak orijinin 0.0 1.0 metreye taşındığını otomatik teste göster.
Hazır
BoştaBağlantı yalnız bu sahnenin durumunu taşır; hesap veya ad içermez.
Geliştirici ayrıntıları · çalışma sınırları
- azami çalışma süresi
- 8 s
- azami çıktı boyutu
- 64 KiB
- azami çıktı olayı
- 100
- azami eklem izi örneği
- 500
Başarı kanıtı, yalnız doğru metin çıktısı değildir: aynı içerik sürümünde iki fiziksel sırayı da gözlemlemiş ve Python testini geçmiş olman gerekir.
Kaynak kodu: multiply
Sonraki
Bir robotun her eklemi için bu dönüşüm matrisini SİSTEMATİK olarak nasıl kurduğumuzu (Denavit-Hartenberg parametreleri) sıradaki ders ele alıyor.