หลีกเลี่ยงการโคจรในการติดตามพฤติกรรมการบังคับเลี้ยว


9

ฉันมีขีปนาวุธที่ทำ ติดตามพฤติกรรมเพื่อติดตาม (และลองและส่งผลกระทบ) เป้าหมาย (เครื่องเขียน) ของมัน

มันทำงานได้ดีตราบใดที่คุณไม่ได้ยิงเมื่อคุณยิงขีปนาวุธ หากคุณ strafing ขีปนาวุธมีแนวโน้มที่จะโคจรรอบเป้าหมาย

ป้อนคำอธิบายรูปภาพที่นี่

ฉันแก้ไขสิ่งนี้โดยการเร่งความเร็วสัมผัสกับเป้าหมายก่อนฆ่าองค์ประกอบแทนเจนต์ของความเร็วก่อนจากนั้นจึงทำการเชื่อมสำหรับเป้าหมาย

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นฉันจึงเร่งใน -vT จนกระทั่ง vT เกือบ 0 แล้วเร่งในทิศทางของ vN

ในขณะที่ใช้งานได้ฉันกำลังมองหาโซลูชันที่สวยงามกว่าซึ่งขีปนาวุธสามารถส่งผลกระทบต่อเป้าหมายได้โดยไม่ต้องฆ่าองค์ประกอบวงสัมผัสก่อน


ฉันไม่คิดว่าคุณจะได้รับคำตอบที่น่าพอใจโดยไม่ต้องอธิบายว่าอัลกอริทึมการบังคับเลี้ยวของคุณคืออะไร ฉันค่อนข้างมั่นใจว่าปัญหาอยู่ที่ฮิวริสติกของคุณที่นั่น
sam hocevar

1
จริงๆแล้วนี่คือคำตอบที่ฉันใช้
bobobobo

คำตอบ:


5

ดูเหมือนว่าปัญหาคือขีปนาวุธชี้ไปที่เป้าหมายโดยไม่คำนึงถึงความเร็วปัจจุบัน กำหนดมุมสูงสุดของขีปนาวุธซึ่งแรงขับสามารถเบี่ยงเบนจากแนวการเคลื่อนที่

ในการชี้แนะแต่ละครั้งคุณจะคำนวณความเร็วเป็นแนวตั้งฉากกับเป้าหมาย ลองคิดดูว่ามันจะต้องให้ทิปกับเครื่องยนต์เท่าไหร่เพื่อที่จะให้ส่วนประกอบของความเร็วนี้เป็นศูนย์แล้วตัดส่วนนี้ให้มากที่สุดเท่าที่จะสามารถให้ทิปเครื่องยนต์ได้

ในช่วงแรกของการบินมันจะเคลื่อนที่ไปทางด้านขวาของเส้นตรงในรูปที่ 2 แต่เมื่อมันบินไปเครื่องยนต์จะเป็นศูนย์จากส่วนประกอบนี้และมันจะจบลงตรงไปที่เป้าหมาย

โปรดสังเกตว่าในสถานการณ์นี้จะมีเพียงหนึ่งเฟรมที่เครื่องยนต์มีการโก่งตัวของสิ่งอื่นที่ไม่ใช่ศูนย์หรือสูงสุด หากคุณกำลังติดตามเป้าหมายที่เคลื่อนไหวคุณอาจได้รับการโก่งตัวน้อยลงในทุกรอบขณะที่เป้าหมายถูกย้าย


4

อาจไม่ใช่คำตอบที่สง่างามที่คุณเป็น แต่ฉันพบว่าถ้าฉันทำให้มิสไซล์ช้าลงหากมันจะพลาดเนื่องจากมันเข้าใกล้เป้าหมายมันจะติดตามและหมุนได้อย่างมีประสิทธิภาพและสามารถเข้าถึงเป้าหมายได้อย่างมีประสิทธิภาพ คุณสามารถเพิ่มอัตราการหมุนของขีปนาวุธเมื่อเข้าใกล้แทนที่จะลดความเร็ว แต่สิ่งนี้อาจทำให้ผู้เล่น 'ว้าวฉันมั่นใจว่ามันจะทำให้คุณประหลาดใจ

สิ่งนี้อาจดูไม่ดีนัก แต่มันก็หยุดยั้งขีปนาวุธจากการโคจรและจากการที่ศัตรูทำการยิงขีปนาวุธเป็นวงกลมจนกระทั่งเชื้อเพลิงหมด

นี่คือตัวอย่างที่ฉันได้รวบรวมการใช้งานของฉัน (ขีปนาวุธที่สามหรือสี่แสดงให้เห็นถึงสิ่งนี้และอีกครั้งใน 1:05): http://www.youtube.com/watch?v=9uiGMC_nH2w

นอกจากนี้คุณยังสามารถเพิ่มความแม่นยำของขีปนาวุธในขณะที่มันเข้าใกล้เป้าหมายด้วยเช่นกัน นี่แสดงในวิดีโอด้วยประมาณหนึ่งนาทีวงกลมสีแดงแสดงเป้าหมายที่แท้จริงของขีปนาวุธ สิ่งนี้ทำให้มันเป็นเส้นทางการบินที่วุ่นวายเมื่ออยู่ในระยะไกลและจากนั้นก็ขยายให้เข้าใกล้ยิ่งขึ้น

อย่างที่ฉันพูดมันอาจจะไม่ใช่คำตอบที่คุณกำลังมองหา แต่ฉันหวังว่ามันจะช่วยได้ถ้าเพียงเล็กน้อย


มันเท่ห์มาก ฉันจะให้อัตราเร่งสูงสุด แต่มีวิถีชะลอตัวลงเป็นเคล็ดลับเรียบร้อย (และสามารถนำมาใช้ในกรณีที่คุณเรียกพวกเขา "ขีปนาวุธเคล็ดลับ"?)
bobobobo

4

ปรีชา

นี่คือวิธีหนึ่ง: ลองหมุนไดอะแกรมของคุณ

การหมุนของภาพประกอบปัญหาต้นฉบับ

ตอนนี้จรวดก็เป็นลูกกระสุนปืนใหญ่ !

ฟิสิกส์

มีการเร่งความเร็วคงที่ "ลง" คือตั้งฉากกับเวกเตอร์จากตำแหน่งการยิงไปยังเป้าหมาย ฉันวาดมันด้านบนเป็นเส้นสีเขียวประ ลองเรียกว่าขอบฟ้าอ้างอิงขอบฟ้าอ้างอิง(โปรดทราบว่าขอบฟ้าอ้างอิงนี้คงที่! จรวดถูกไล่ออกจากตำแหน่งคงที่พร้อมตำแหน่งคงที่เป็นเป้าหมาย)

เรารู้ (จากวิกิพีเดีย ) สำหรับลูกกระสุนปืนใหญ่โดยไม่ต้องทนอากาศที่d = v^2 * sin(2 * theta) / gที่

  • d คือระยะทางแนวนอนที่เดินทาง (ระยะห่างระหว่างตำแหน่งการยิงและเป้าหมาย)
  • v เป็นความเร็วที่กระสุนถูกยิง
  • thetaคือมุมตามขอบฟ้าที่กระสุนถูกยิงที่ ( มุมของเวกเตอร์ทิศทางการยิงจากขอบฟ้าอ้างอิง )

การจัดเรียงสมการสำหรับให้gg = v^2 * sin(2 * theta) / d

ค่าคงที่ในสมลูกกระสุนปืนใหญ่ที่gเป็นเร่งเนื่องจากแรงโน้มถ่วง เราสามารถนำไปหมายถึงการเร่งเนื่องจากเครื่องยนต์จรวด ที่ดีเกินไป - ก็ยังคงเป็นอัตราเร่งคงที่ในทิศทางคงที่

ตอนนี้คืออะไร

เรียกใช้สมการนั้นgเมื่อคุณยิงจรวด มันจะบอกคุณว่าจะเร่งความเร็วจรวดเท่าไหร่ในแนวตั้งฉากไปยังขอบฟ้าอ้างอิงเพื่อที่จะชนกับเป้าหมาย เนื่องจากทิศทางของการเร่งนั้นคงที่วงโคจรจึงไม่ก่อตัว

ความเจริญ


นี่เป็นวิธีที่เรียบร้อย ฉันคิดว่านี่จะทำให้จรวดติดตามวงกลมคุณกำลังส่งแรงสู่ศูนย์กลางที่จำเป็นต่อการโคจรเป็นวงกลมที่เกิดขึ้นกับเป้าหมาย ฉันเชื่อว่านี่อาจเป็นวิธีการที่ใช้สำหรับเปลือกหอยสีแดงใน Mario Kartเพราะฉันคิดเสมอว่าพวกเขามีแนวโน้มที่จะโค้งเป็นวงกลม
bobobobo

แรงที่ใช้ตรงนี้ไม่ได้เป็นศูนย์กลาง ทิศทางของแรงตั้งฉากกับขอบฟ้าอ้างอิงซึ่งไม่เปลี่ยนแปลงหากเป้าหมายอยู่กับที่ ซึ่งหมายความว่าพฤติกรรมการโคจรไม่สามารถเกิดขึ้นได้
Anko

ฉันได้แก้ไขคำตอบเพื่อให้ชัดเจนยิ่งขึ้น
Anko

@Anko: ฉันไม่แน่ใจว่าคณิตศาสตร์ของคุณที่นี่ทำงานเพื่อเป้าหมายที่เคลื่อนไหวได้หรือไม่
Mooing Duck

@Mooing คุณพูดถูกสิ่งนี้จะใช้ได้กับเป้าหมายที่เคลื่อนที่เท่านั้นหากพวกมันเคลื่อนไหวได้อย่างคาดเดาได้และคุณตั้งเป้าหมายการทำนายไว้ คำถามไม่ได้กล่าวถึงเป้าหมายโดยเฉพาะคือนิ่งในประโยคแรก
Anko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.