SLAM atau Simultaneously Localization and Mapping adalah suatu algoritma dimana robot mampu memetakan lingkungannya dan melokalisasikan dirinya secara bersamaan pada lingkungan itu. Suatu hal yang terlihat sederhana, namun implementasinya ternyata sangat sulit. Di dalam virtual-world, mekanisme SLAM dapat ditunjukkan dengan mudah dan terbukti keakuratannya bagi robot dalam membentuk peta lingkungan sekaligus untuk mengetahui posisinya. Namun di dalam real-world banyak ketidakpastian yang terjadi. Posisi robot yang dikalkulasikan berdasarkan data-data sensor sebenarnya penuh ketidakpastian dan hanya dapat diduga melalui probabilitas.

Roboticist percaya, jika SLAM ini dapat diimplementasikan pada robot, maka masalah navigasi akan terselesaikan dengan baik. Analoginya sederhana, seperti halnya sopir taksi yang tahu rute peta dimana dia beroperasi. Maka jika seorang penumpangnya ingin pergi ke suatu tempat maka dengan mudah sopir taksi tersebut pergi ke tempat itu. Sama seperti halnya pada robot, jika dia tahu posisinya, maka robot itu akan tahu rute yang akan dijalani untuk mencapai suatu goal yang dituju.

Masalah SLAM ada dua, lokalisasi (localization) dan pembentukan peta (map-generation). Robot baru bisa melokalisasi dirinya jika peta sudah terbentuk dengan jelas atau robot sudah mampu mengestimasi lokasinya meskipun peta yang terbentuk baru sebagian. Jika peta yang terbentuk salah, maka lokasi yang diduga robot pun juga salah. Intinya untuk menjalankan SLAM, robot harus mampu mendeteksi adanya suatu feature kemudian mensintesisnya menjadi sebuah peta. Istilah feature adalah subkomponen dari peta yang diperoleh dari data sensor seperti IR atau Sonar. Peta pada robot bisa direpresentasikan dalam dua bentuk, Topological-based map dan Grid-based map. Kedua bentuk representasi ini memiliki kelemahan dan kekurangannya masing-masing. Dengan Topological-based map, robot membentuk petanya dalam bentuk himpunan abstrak seperti graph. Sedangkan Grid-based map, robot membentuk petanya dalam suatu kotak-kotak kecil atau pixel dengan ukuran tertentu. Dengan Grid-based map kita dapat mencitra lingkungan robot secara 2D atau 3D.

Untuk teknik lokalisasi sendiri banyak sekali metodenya. Salah satu yang paling banyak digunakan adalah lokalisasi yang diturunkan dari Bayes Filter. Teknik lokalisasi itu di antaranya adalah Markov Localization dan Kalman Filter Localization. Khusus untuk Kalman Filter Localization hanya digunakan untuk Local Localization. Sedangkan varian dari Markov Localization bisa digunakan baik dalam Local Localization dan Global Localization. Istilah Lokal dan Global ini terletak pada perbedaan pada perlunya pengetahuan mengenai posisi awal robot. Untuk SLAM ini yang paling handal adalah digunakan teknik Global Localization karena algoritma ini tidak bergantung posisi awal robot berada pertama kali. Sehingga posisi robot dapat diletakan dimana saja, dimana robot akan melakukan estimasi posisi sambil menjelajah lingkungan.

Untuk menjalankan Algoritma SLAM robot harus tangguh dalam berbagai hal. Robot perlu memiliki banyak sensor untuk melakukan pendeteksian lingkungan terutama penggunaan sensor pada robot. Robot juga harus memiliki unit kontrol yang memiliki kecepatan tinggi untuk dapat melakukan komputasi yang rumit. Alasannya karena SLAM ini menggunakan teknik iterasi dan perulangan dengan banyak data yang diprosesnya.

Analogi yang serupa jika robot benar-benar menjalankan SLAM secara sempurna maka kecerdasannya ini mirip seperti kecerdasan spasial yang dimiliki oleh manusia. Dengan adanya kecerdasan spasial, manusia dapat mengenal ruang dan lokasi dirinya dari imaji atau bayangan yang berasal dari pikirannya sendiri. Begitupula dengan robot maka ia akan tahu posisinya berada pada saat melakukan navigasi dan penjelajahan lingkungan.

Salah satu yang menjadi tantangan utama dalam penerapan SLAM adalah upaya untuk menerapkan algoritma ini ke dalam robot yang memiliki sensor dengan jumlah yang minimal dan segala keterbatasan yang ada. Karena penerapan SLAM yang sudah ada pada umumnya memerlukan sensor-sensor, seperti kamera atau laser dengan harga yang cukup mahal. Selain itu diperlukan juga algoritma SLAM yang tidak terlalu memerlukan komputasi yang tinggi, sehingga dapat diterapkan pada unit kontroler dengan kecepatan dan kemampuan terbatas. Satu hal yang pasti, SLAM ini suatu hari mungkin akan menjadi algoritma handal yang ada dan dimiliki oleh setiap robot jenis apapun.