Dekomposisi sel Boustrophedon adalah hanya membagi lingkungan menjadi daerah-daerah yang dapat secara efisien ditutupi oleh jalur boustrophedon. Dekomposisi trapesium akan dilakukan, dan dapat dilakukan dengan menggunakan algoritma garis-sapuan. Lihat [Choset 2000], situs web ini
, atau (saya sarankan!) Buku yang luar biasa "Computational Geometry" oleh Mark de Berg, et. al, untuk deskripsi lengkap tentang struktur data dan algoritma yang diperlukan.
Choset, Howie. "Cakupan Ruang yang Diketahui: Dekomposisi Seluler Boustrophedon" Autonomous Robots , 2000.
Sebagai contoh, anggap set hambatan sebagai tepi dan simpul. Katakanlah lingkungan juga dibatasi oleh poligon khusus. Kami memiliki sesuatu seperti berikut ini. Untuk menguraikan ruang ini, kami cukup menambahkan tepi vertikal antara setiap dhuwur dan garis terdekat atau dhuwur.
Untuk mencapai ini dalam kode, Anda hanya perlu tes persimpangan garis-segmen, daftar tepi yang diurutkan, dan daftar simpul yang diurutkan.
- vsaya
- lsayavsaya
- Di setiap persimpangan, buat simpul baru.
Ketika ini dilakukan, himpunan tepi dan simpul baru hanya mencakup trapesium. Tapi saya tekankan, Anda tidak bisa melakukan ini secara online (tanpa pengetahuan sebelumnya tentang hambatannya). Jika Anda ingin melakukan cakupan yang kuat tanpa sepengetahuan sebelumnya, Anda mungkin melihat "algoritma bug". Secara khusus, inilah algoritma sederhana, dengan asumsi lingkungan dibatasi.
Dari posisi awal, gerakkan ke atas dan ke kiri hingga Anda mencapai sudut kiri atas lingkungan. Jika Anda menemui hambatan terlebih dahulu, Anda harus berkeliling. Anda tahu ada sesuatu yang menjadi kendala jika bisa dielakkan (benjolan dan bergerak).
Dari kiri atas, bergerak ke kanan hingga Anda menemukan batas. Kemudian bergerak ke bawah dan ke kiri (Kami sedang melakukan boustrophedon dari seluruh ruang).
Ketika Anda berada di garis kiri-kanan dan menemui hambatan, Anda memiliki dua opsi. (i) Kita dapat mengelilingi sampai kita mencapai garis kiri-kanan yang ingin kita bahas, kemudian lanjutkan. (ii), Kita dapat berbalik dan menutupi garis kiri-kanan yang baru sampai kita menemukan jalan kita melewati rintangan atau berakhir dalam situasi ini lagi. Saya akan menggambarkan.
Di sebelah kiri, kami bergerak di sekitar penghalang sampai kami dapat kembali ke "garis" yang kami coba ikuti. Di sebelah kanan, kami terus menutupi area (lebih kecil) di satu sisi hambatan.
Keuntungan dari metode pertama adalah Anda selalu memetakan rintangan sepenuhnya sebelum Anda membuat keputusan tentang bagaimana cara mengatasinya, sehingga Anda dapat mengambil jalan yang lebih pendek. Keuntungan dari metode kedua adalah Anda tidak harus melewati rintangan sama sekali, Anda dapat melanjutkan untuk menutupi area Anda berada.
Perhatikan bahwa ini mendefinisikan dekomposisi boustrophedon Anda secara online : Anda menutupi area di antara rintangan atau di antara rintangan dan batas.
Namun, sejauh yang saya tahu, metode pertama lebih mudah dianalisis. Algoritma yang lebih rumit (seperti BFS, dll), dipilih baik karena lingkungan tidak terikat (Anda tidak ingin menghabiskan selamanya mencari batas), atau ada hambatan yang sangat buruk dalam cara yang pada dasarnya memecah lingkungan. Kenapa ini buruk? lihat contoh ini:
Bergerak kiri-kanan, kemudian berputar-putar setiap kendala menghasilkan cara terlalu banyak sampul bagian kecil antara setiap kendala. Bahkan, tanpa perencanaan jalur global, Anda dapat menjadikan ini seburuk resolusi grid Anda dengan menempatkan kolom ini selebar 1 px, setinggi seluruh lingkungan dan terpisah 1 px. Maka Anda harus bergerak di sekitar rintangan setiap kali Anda menabraknya.
Inilah sebabnya saya bertanya apakah Anda memiliki gagasan tentang di mana Anda berada di lingkungan atau dapat melakukan perencanaan jalur global. Tetapi diskusi online vs offline dan algoritma optimal untuk ini bukanlah yang Anda inginkan.
Pembaruan: Saya harus menghapus gambar (bukan https), dan akan memposting ini yang sering digunakan dalam aplikasi dunia nyata yang praktis. http://www.cs.cmu.edu/~motionplanning/papers/sbp_papers/integrated1/yamauchi_frontiers.pdf