Algoritma-Algoritma Robotika Paling Populer
Ilmu Robotika semakin berkembang dari tahun ke tahun. Ilmu ini semakin digemari lantaran sesuai dengan perkembangan zaman terutama dalam pengembangan robot-robot di masa depan.
Jika ingin mulai coding robot, algoritma apa sih yang paling cocok?
Sumber http://mmishbah.blogspot.com
Jika ingin mulai coding robot, algoritma apa sih yang paling cocok?
Pada dasarnya akan banyak sekali ditemukan jawaban. Namun, pada goresan pena ini, kami sajikan beberapa algoritma robotika yang paling populer.
Berikut ini kami sajikan beberapa pengetahuan wacana algoritma dalam robotika.
Zero-order convergence: (source: http://www.it.uu.se/edu)
first-order convergence: (source: http://www.it.uu.se/edu)
Algoritma yang terkenal yaitu algoritma prinsip tangan kanan. algoritma ini sederhana: taruh ajudan kau pada tembok, kemudian jalanlah sesuai dengan tembok yang melekat pada tangan. Maka, kau akan menemukan jalan keluar dari maze.
- Pastikan posisi daerah kita berada ketika ini yaitu posisi start
- Untuk mencari jalan keluar dari labirin, periksa tembok-tembok dimulai dari kanan, atas, kiri, bawah.
Fuzzy Logic memungkinkan nilai keanggotaan antara 0 dan 1, abu-abu, hitam atau putih, “sedikit”, “lumayan”, “sangat”, atau “paling”. Fuzzy logic sangat bekerjasama dengan teori kemungkinan.
Merupakan algoritma yang dipakai untuk mapping, yakni mencari dan menggambarkan peta jalan keluar dari labirin (maze).
Algoritma ini terdistribusi secara paralel dan memunyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman. Oleh lantaran itu, algoritma akan selalu merubah strukturnya untuk memecahkan problem menurut warta eksternal maupun internal yang telah didapatkannya.
Algoritma Djikstra menghitung jarak semua verteks pada sebuah graf dari current verteks. Algoritma ini hanya berlaku pada kondisi: graf terhubung, edge yang tidak berarah, bobot edge(distance) tidak bernilai negatif.
Alat Penyimpanan Data
Kenapa Data di Flashdisk Sering Hilang
Belajar Komputer dari Nol Masuk Sini
Cara Partisi Harddisk Tanpa Install Ulang
Modem Huawei Eror, Di Sini Solusinya
Algoritma Coding Robot
Ulasan wacana Jaringan Saraf Tiruan
Terobosan Terbaru dari Random Access Memory
Selamat menikmati..
Algoritma-algoritma Robotika Paling Populer
#1 Algoritma Dead Reckoning
Dead Reckoning yaitu sebuah proses dalam memperkirakan posisi menurut posisi sebelumnya yang telah diketahui kecepatan, waktu dan jarak yang telah diketahui. Dead Reckoning banyak dipakai oleh hewan sebagai suatu cara navigasi untuk mengetahui posisinya menurut pergerakan yang telah mereka buat semenjak lokasi terakhir yang diketahui mereka.
Dengan Dead Reckoning, kau sanggup memprediksi posisi berikutnya melalui perhitungan kecepatan dan jarak ketika ini.
Di dalam dunia networking, dead reckoning yaitu sebuah metode yang dipakai untuk mengurangi lag yang disebabkan oleh network latency dan problem bandwidth. Program melaksanakan hal ini dengan memprediksi state berikutnya dari sebuah entitas menurut state ketika ini.
Dengan Dead Reckoning, kau sanggup memprediksi posisi berikutnya melalui perhitungan kecepatan dan jarak ketika ini.
Di dalam dunia networking, dead reckoning yaitu sebuah metode yang dipakai untuk mengurangi lag yang disebabkan oleh network latency dan problem bandwidth. Program melaksanakan hal ini dengan memprediksi state berikutnya dari sebuah entitas menurut state ketika ini.
Pseudocode
ada dua jenis Dead Reckoning, zero-order convergence dan first-order convergence.Zero-order convergence: (source: http://www.it.uu.se/edu)
For each shared object
{
PredictedPathVector = Last_KnownPos - Last_Last_KnownPos
DeltaTime = Last_KnownTime - Last_Last_KnownTime
DeltaVelocity = PredictedPathVector / DeltaTime
NewDeltaTime = CurrentTime - LastLastKnownTime
NewPos = LastKnownPos + NewDeltaTime * DeltaVelocity
}
first-order convergence: (source: http://www.it.uu.se/edu)
For each shared object{
PrevPredictedPathVector = Last_KnownPos[1]-
Last_KnownPos[2]
PrevDeltaTime = Last_KnownTime[1] - Last_KnownTime[2]
StartDeltaTime = Last_KnownTime[0] - Last_KnownTime[2]
PrevVelocity = PrevPredictedPathVector / PrevDeltaTime
StartPos = Last_KnownPos[2] + StartDeltaTime *
PrevVelocity
CurrentDeltaTime = Now - Last_KnownTime[0]
PredictedPathVector = Last_KnownPos[0] -
Last_KnownPos[1]
DeltaTime = Last_KnownTime[0] - Last_KnownTime[1]
EndPos = Last_KnownPos[0] + CurrentDeltaTime *
PredictedPathVector / DeltaTime
LinearConvergenceVector = EndPos - StartPos
Velocity = LinearConvergenceVector / DeltaTime
NewPos = StartPos + CurrentDeltaTime * Velocity
}
#2 Follow Line
Algoritma ini dipakai oleh sebuah objek untuk tetap pada garis yang tercetak pada lantai. Biasa dipakai pada robot yang dilombakan pada aneka macam kompetisi dimana sang robot harus berjalan mengikuti garis yang tercetak pada lantai hingga tujuan.#3 Follow Wall
Algoritma ini dipakai oleh sebuah objek untuk sanggup mengikuti arah dimana tembok berada. algoritma ini banyak dipakai pada maze solving (keluar dari labirin). Kesesuaian arah diadaptasi dengan yang diminta.Algoritma yang terkenal yaitu algoritma prinsip tangan kanan. algoritma ini sederhana: taruh ajudan kau pada tembok, kemudian jalanlah sesuai dengan tembok yang melekat pada tangan. Maka, kau akan menemukan jalan keluar dari maze.
Flow Algoritma
Algoritma ini sanggup digambarkan sebagai berikut:- Pastikan posisi daerah kita berada ketika ini yaitu posisi start
- Untuk mencari jalan keluar dari labirin, periksa tembok-tembok dimulai dari kanan, atas, kiri, bawah.
- Periksa kanan: kalau ada tembok, periksa atas. Jika tidak ada tembok, belok kanan.
- Periksa atas: kalau ada tembok, periksa kiri. Jika tidak ada tembok, jalan lurus.
- Periksa kiri, kalau ada tembok, periksa bawah. Jika tidak ada tembok, belok kiri.
- Periksa bawah, kalau ada tembok, kembali periksa atas. Jika tidak ada tembok, jalan mundur.
- Begitu seterusnya hingga menemukan jalan keluar.
Pseudocode
function maze(kanan, atas, kiri, bawah){
set array[#][#] as maze
start[x][y] = array[0][0] // start dimulai dari titik (0,0)
if(start[x+1][y])==null //kanan
turn right;
maze(bawah, kanan, atas, kiri);
if(start[x][y+1])==null //atas
turn ahead;
maze(kanan, atas, kiri, bawah);
if(start[x-1][y])==null//kiri
turn left;
maze(atas, kiri, bawah, kanan);
if(start[x][y-1])==null//bawah
turn down;
maze(kiri, bawah, kanan, atas);
}
Potongan Program
void maze(){
string finishY, finishX, startY, startX;
string y1 = startY;
string y2 = startX;
while(!(yl == finishY && xl == finishX)){
if(trace[yl][xl+1] ==”tembok”)
else if(trace[yl+1][xl] ==”tembok”)
else if(trace[yl][xl-1] ==”tembok”)
else trace[yl-1][xl]= “jalan”;
...dst...
}
#4 Fuzzy Logic
Fuzzy Logic menggantikan kebenaran konsep kecerdikan Boolean (yang menyatakan bahwa segala hal sanggup direpresentasikan dengan 0 atau 1) dengan konsep “tingkat kebenaran”.Fuzzy Logic memungkinkan nilai keanggotaan antara 0 dan 1, abu-abu, hitam atau putih, “sedikit”, “lumayan”, “sangat”, atau “paling”. Fuzzy logic sangat bekerjasama dengan teori kemungkinan.
Pseudocode
Sebagai contoh, dalam kasus mengontrol temperatur. Daripada kita harus selalu bergelut dengan permasalahan:if (Tz>100C && Z==”Cair”)//Tz yaitu temperatur Z, Z yaitu logamlebih baik kita ganti dengan alternatif gres yang tidak perlu memakai kompleksnya angka:
then “buat pedang”;
if(Tz sudah sangat panas && Z telah mencair)Di dalam Fuzzy Logic, tidak ada pernyataan ibarat “tingginya 1.2 m” atau “tingginya 1.67 m”. tetapi, nilai tinggi diberikan dalam suatu batasan range.
maka kita buat pedang;
Laki-laki pendek sekali = [0, 1.3] mkonsekuensinya, 2 nilai(true atau false) saja tidak cukup. Dibutuhkan nilai yang lebih banyak. Misal:
pria pendek = [1.3, 1.5] m
pria sedang = [1.5, 1.8] m
pria tinggi = [1.8, 2.0] m
pria raksasa > 2.0 m
tidak oke = 0
agak oke = 1
oke = 2
sangat oke = 3
#5 Maze Mapping
Merupakan algoritma yang dipakai untuk mapping, yakni mencari dan menggambarkan peta jalan keluar dari labirin (maze).
#6 Algoritma Neural Networks
Neural Networks Algorithm, atau disebut juga algoritma jaringan saraf, merupakan sebuah algoritma yang menggandakan sistem kerja jaringan saraf manusia. Algoritma ini menggandakan sistem kerja otak insan dalam menerjemahkan kompleksnya input untuk kemudian dijadikan output.Algoritma ini terdistribusi secara paralel dan memunyai kecenderungan untuk menyimpan pengetahuan yang didapatkannya dari pengalaman. Oleh lantaran itu, algoritma akan selalu merubah strukturnya untuk memecahkan problem menurut warta eksternal maupun internal yang telah didapatkannya.
#7 Shortest Path
Shortest Path, atau biasa dikenal dengan istilah Algoritma Djikstra, merupakan sebuah cara pencarian yang dilakukan pada graph dimana hanya diperlukan jalur yang paling pendek untuk sebuah graph. Algoritma ini menemukan jalur pencapaian tujuan dengan biaya yang paling rendah.Algoritma Djikstra menghitung jarak semua verteks pada sebuah graf dari current verteks. Algoritma ini hanya berlaku pada kondisi: graf terhubung, edge yang tidak berarah, bobot edge(distance) tidak bernilai negatif.
Flow Algoritma
- Buat list untuk jarak, verteks sebelumnya, verteks yang telah dikunjungi, dan verteks ketika ini.
- Set semua verteks dengan nilai tak hingga, kecuali pada verteks awal-yang diset dengan nol.
- Semua nilai pada list verteks yang telah dikunjungi, diset dengan false.
- Set semua nilai pada list verteks sebelumnya dengan nilai yang Istimewa yang menerangkan bahwa mereka belum didefinisikan, ibarat null.
- Set verteks ketika ini dengan verkteks awal.
- Tandai verteks ketika ini bahwa telah dikunjungi.
- Update jarak dan list sebelumnya menurut verteks yang sanggup secara eksklusif dicapai dari verteks ketika ini.
- Update verteks ketika ini dengan verteks yang belum dikunjungi yang sanggup dicapai dengan jalur terpendek (shortest path) dari verteks awal.
- Ulang hingga langkah 6 hingga semua node dikunjungi
Pseudocode
function Dijkstra(Graph, source): (source: wikipedia)for each vertex v in Graph: // Inisialisasi
dist[v] := infinity // jarak yang belum diketahui
previous[v] := undefined // node sebelumnya
dist[source] := 0 // jarak dari source ke source
Q := the set of all nodes in Graph
while Q is not empty: // main loop
u := node in Q with smallest dist[] // jarak terpendek
remove u from Q // ambil u
for each neighbor v of u:
alt := dist[u] + dist_between(u, v)
if alt
Penutup
Demikian pembahasan sederhana kami wacana beberapa algoritma dasar robotika paling populer. Semoga ulasan ini sanggup bermanfaat bagi perembangan robotika di Indonesia. Semoga sanggup pula membantu kau yang sedang berjuang mengikuti lomba KRCI, ya!
Wawasan Penting Untuk Laki
Saat Laptop Kamu Mengeluarkan Bunyi AnehAlat Penyimpanan Data
Kenapa Data di Flashdisk Sering Hilang
Belajar Komputer dari Nol Masuk Sini
Cara Partisi Harddisk Tanpa Install Ulang
Modem Huawei Eror, Di Sini Solusinya
Algoritma Coding Robot
Ulasan wacana Jaringan Saraf Tiruan
Terobosan Terbaru dari Random Access Memory
0 Response to "Algoritma-Algoritma Robotika Paling Populer"
Posting Komentar