Contents — find the section you need
Change parameters and verify
Open the panel, then press Run to load Python. You can stop execution and reset parameters. Results are computed on this device. No Python installation is required.
Local execution steps below are optional for reproducing the source results; they are not required for the browser experiment.
The experiment controls are in English.
Mulailah transformasi koordinat dengan menyatakan kerangka mana yang menggambarkan titik masukan dan kerangka mana yang harus menggambarkan keluaran. Aritmatika matriks yang benar dengan arah yang terbalik masih menempatkan objek secara tidak tepat.
Membaca indeks sebagai arah
Misalkan R_AB memetakan koordinat B ke koordinat A, dan t_AB adalah titik asal B yang dinyatakan dalam A. Kita menggunakan vektor kolom:
Kolom matriks rotasi adalah sumbu B yang dinyatakan dalam A. Translasi juga dinyatakan dalam A. Titik menerima translasi; vektor bebas seperti arah hanya berputar. Menerapkan penanganan yang identik untuk setiap array tiga elemen membingungkan makna ini.
Sensor diputar sembilan puluh derajat
Dalam 2D, tempatkan titik asal B di (1, 2) m di A dan arahkan sumbu x B sepanjang sumbu y A. Titik (2, 0) m di B menjadi:
Fungsi transformasi dalam skrip Python memeriksa hasil ini dan inversnya. Skrip ini dijalankan dengan Python 3.12.3, NumPy 1.26.4, dan Matplotlib 3.6.3. Jalankan python3 engineering_labs.py untuk menghasilkan ulang gambar dan hasil.
Untuk menghasilkan ulang, simpan skrip yang ditautkan sebagai engineering_labs.py di direktori baru dan jalankan di sana. Output akan masuk ke direktori kerja: gambar ini adalah transforms.svg, dan koordinat yang diperiksa berada di bawah transform di engineering-results.json. Skrip yang sama juga menghasilkan gambar Kalman, ICP, respons frekuensi, dan aliasing serta file CSV. Gunakan direktori kerja kosong karena file output yang ada akan ditimpa.
Pembalikan membutuhkan lebih dari sekadar meniadakan translasi
Invers dari matriks rotasi adalah transposnya:
Kurangi (1, 2) dari (1, 4), lalu putar −90° untuk mendapatkan kembali (2, 0). Translasi invers adalah (−2, 1), bukan hanya (−1, −2). Lakukan perjalanan bolak-balik pada titik-titik sembarang untuk mendeteksi kesalahan arah.
Menggabungkan transformasi homogen
Dalam 3D, matriks 4×4 menggabungkan rotasi dan translasi:
Transformasi paling kanan bertindak terlebih dahulu. Dengan peta A, badan B, dan sensor C, sebuah titik bergerak dari sensor→badan→peta. Perkalian matriks umumnya tidak dapat diurutkan ulang. Mencocokkan B perantara juga membantu penamaan variabel.
Quaternion merepresentasikan rotasi yang sama
Untuk sumbu satuan u dan sudut θ, urutan komponen ROS (x, y, z, w) memberikan:
Rotasi 90° di sekitar z adalah (0, 0, 0,7071, 0,7071). Beberapa pustaka menggunakan (w, x, y, z), jadi verifikasi urutan sebelum menyalin array. q dan −q mengkodekan rotasi yang sama; pengurangan komponen saja bukanlah metrik kesalahan rotasi. Periksa juga normalisasi.
REP-103 mendefinisikan konvensi SI tangan kanan ROS, x-maju/y-kiri/z-atas bodi dan z-maju/x-kanan/y-bawah optik. Periksa konvensi terlebih dahulu ketika geometri kamera tampak berputar.
TF juga bergantung pada waktu
Baca transformasi induk/anak sebagai pose anak yang dinyatakan dalam induknya, sesuai dengan T_AB di atas. API transformasi titik memerlukan pemilihan bingkai target/sumber yang cermat. Transformasi pemasangan tetap berbeda dari pose kendaraan yang berubah-ubah seiring waktu.
REP-105 membedakan peta yang dikoreksi secara global, yang dapat melompat, dari odom kontinu tetapi bergeser. Matriks yang dikoreksi pada stempel waktu yang salah masih salah menempatkan titik sensor bergerak. Lanjutkan dengan debugging fusi sensor untuk memeriksa arah dan waktu secara bersamaan.
Komentar
Silakan masuk terlebih dahulu.
Belum ada data.