Proyeksi lintasan kendaraan?

8

Dalam permainan yang saya kembangkan, saya harus menghitung apakah kendaraan saya (1) yang dalam contoh ini bepergian ke utara dengan kecepatan V, dapat mencapai targetnya (2). Contoh menggambarkan masalah dari atas:

masukkan deskripsi gambar di sini

Sebenarnya ada dua skenario yang mungkin: V adalah konstan (menghasilkan lintasan 4, busur lingkaran) atau kendaraan memiliki kapasitas untuk berakselerasi / melambat (lintasan 3, busur spiral).

Saya ingin tahu apakah ada cara langsung untuk memverifikasi apakah kendaraan tersebut dapat mencapai targetnya (bukan overshooting) . Saya sangat tertarik dengan lintasan # 3, karena saya satu-satunya hal yang dapat saya pikirkan adalah mengintegrasikan posisi kendaraan dari waktu ke waktu.

EDIT: tentu saja kendaraan selalu memiliki kapasitas untuk menyetir, tetapi jari-jari kemudi bervariasi dengan kecepatannya (pikirkan gaya g lateral maksimum).

EDIT2: juga perhatikan bahwa (karena sebagian besar kendaraan dalam kehidupan nyata) ada radius setir minimum untuk yang dalam game juga).

Mac
sumber

Jawaban:

15

Jika Anda dapat memvariasikan kecepatan Anda (dengan demikian sudut kemudi Anda), Anda akan selalu menemukan solusi, mulai dari yang merosot di mana entitas hampir berhenti berputar dalam lingkaran kecil hingga menunjuk target.

Jika Anda tidak dapat memvariasikan kecepatan Anda, Anda dapat berpikir tentang area yang tidak terjangkau atau bayangan yang tidak dapat Anda capai bahkan menggunakan kemudi yang lebih baik, jika targetnya ada di area yang tidak dapat Anda capai (kecuali "overshoot" Anda bahkan dapat melampaui mereka dan keluarkan mereka dari area bayangan).

Steer terbaik Anda memungkinkan Anda untuk berbelok ke kiri / kanan pada lengkungan lingkaran, memungkinkan Anda untuk menggambar lingkaran penuh:

bayangan

Seperti yang Anda lihat, apa yang ada di dalam salah satu dari dua lingkaran tidak dapat dijangkau secara langsung.

Sebuah benda bermassa m yang mengarahkan sebuah kurva dengan jari-jari kelengkungan r , mengalami gaya sentrifugal radial yang jelas disebabkan oleh perilaku inersia tubuh, sama dengan:

Fc = mV ^ 2 / r

di mana V adalah kecepatan tubuh (panjang vektor kecepatan); menjadi akselerasi benda karena kekuatan:

a = F / m

akselerasi kami adalah:

a = V ^ 2 / r

Jika kita mengatakan bahwa am adalah akselerasi maksimum kita memperoleh bahwa:

rm = V ^ 2 / pagi

di mana rm adalah jari-jari mimimum menggunakan akselerasi maksimum.

Ketika Anda ingin menguji apakah veicle di P bergerak dengan kecepatan V dapat mencapai target di T Anda harus:

1) menghitung C1 dan C2 sebagai:

c1 dan c2

2) menguji jarak miminum P dari C1 dan C2 sebagai berikut:

tes radius

Jika d lebih besar dari rm ini berarti bahwa T berada di luar kedua bayangan dan kemudian dapat dijangkau oleh kendaraan hanya dengan menyesuaikan kemudi di bawah batasan kemudi. (lebih tepatnya ada jalur di bawah batasan yang membiarkan fungsi jarak antara T dan P menjadi menurun secara monoton)

[MEMPERBARUI]

Jika mungkin untuk mengubah kecepatan, selalu mungkin untuk mendapatkan busur (yaitu kecepatan / radial akselerasi beberapa) yang berlangsung dari P ke T . Ini dimungkinkan karena jari-jari menjadi derajat kebebasan yang sesungguhnya.

Ini adalah kemungkinan konstruksi:

jalur target

Garis hitam adalah sumbu di mana pusat lingkaran dapat terletak: garis tegak lurus terhadap permukaan kendaraan saat ini dan melewati pusat putarannya.

Segmen hijau mewakili garis yang tegak lurus dengan yang menghubungkan pusat kendaraan dengan target dan melewati tengah jarak itu.

Garis hijau memotong yang hitam tepat di tengah busur yang diinginkan. Panjang segmen oranye memberi tahu kita jari-jari belokan yang dapat dicapai dengan mengatur kecepatan dan belok pada setir maksimum atau mengatur kecepatan dan setir agar tetap berada di bawah kendala

FxIII
sumber
Terima kasih telah meluangkan waktu untuk menulis jawaban terperinci ini (+1). Saya perlu "belajar" sedikit, tetapi dari bacaan pertama, menurut saya pernyataan pertama Anda "Anda akan selalu menemukan solusi ..." belum tentu benar: keberadaan jari-jari kemudi minimum menyiratkan bahwa selalu ada akan menjadi "area bayangan" yang batasnya akan menentukan semacam "orbit" di sekitar target ... Atau apakah saya salah? [Ini memang masalah nyata bagiku, karena perhitungan untuk V = k sangat mudah ...]
mac
@ Mac jika target tidak berada di tempat yang sama dengan kendaraan Anda, Anda dapat memperlambat sehingga rmin menghasilkan lingkaran yang cukup kecil untuk tidak mengandung target. Ketika Anda berada dalam kondisi ini, Anda dapat mengatur kecepatan Anda sehingga target terletak tepat di lingkar Anda!
FxIII
@Fxill - Sekali lagi, terima kasih atas pembaruannya, jika memungkinkan, saya akan memberi Anda +1 kedua untuk dedikasi! :) Namun, saya gagal memahami dari penjelasan Anda bagaimana Anda menjelaskan percepatan dan kecepatan awal: seluruh masalah bergantung pada kenyataan bahwa seiring waktu kecepatan akan berubah (busur spiral). Saya mendapat kesan mungkin tidak ada cukup ruang untuk kendaraan melambat / mendapatkan radius yang cukup kecil untuk mencegat target ... atau apakah saya salah?
mac
@ Mac katakanlah am = 1 lalu rm = v ^ 2; jika d = | PT | > 0 Anda dapat memilih v ^ 2 <d / 2; jika d = 0 itu berarti P = T sehingga Anda sudah mencapai target Anda ...
FxIII
hahaha tidak diragukan lagi itu berhasil! : D
FxIII