2008-09-24 1 views
5

Кто-нибудь знает формулу, используемую для управления движением простого танка-подобного автомобиля?Формула для управления движением танкового автомобиля?

Чтобы «направить» его, вам необходимо изменить силу, прилагаемую к левым и правым «колесам». Например. 1 единица силы на обоих колесах заставляет двигаться вперед. -1 единиц силы на обоих колесах заставляет его идти назад. Прикладывайте больше силы к одному колесу, чем к другому, и он поворачивается.

Как вы могли бы рассчитать величину силы, необходимую для обоих колес, чтобы превратить резервуар в определенное количество градусов в любом случае?

Или я думаю об этом не так?

Редактировать: Как заметил Уильям Келлер, я пропустил скорость танков. Предположим, что 1 единица силы на обоих колесах перемещает танк вперед на 1 ед. В секунду.

Для тех, кто заинтересован, я только что нашел эту тему на GameDev.net: http://66.102.9.104/search?q=cache:wSn5t58ACJwJ:www.gamedev.net/community/forums/topic.asp%3Ftopic_id%3D407491+tank+track+radius+velocity&hl=en&ct=clnk&cd=1&gl=za&client=firefox-a

Другой поток: http://www.physicsforums.com/showthread.php?t=220317

Оказывается, ключ к нахождению формулы только зная правильную терминологию («skid steer»): P

+0

Пожалуйста, не маркируют ваш вопрос с каждым языком под солнцем, чтобы получить больше воздействия! – 2008-09-24 02:58:35

+0

Это не было целью пометки. Я надеялся, что кто-то даст пример на языке C, потому что это то, что написана в программе (C++ преобразован в C#). Поэтому я не включил функциональные языки. – ilitirit 2008-09-24 03:00:55

+0

Учитывались ли вы отрицательные единицы? Танковые дорожки спроектированы так, что их можно отменить - независимо от другой дорожки! – 2008-09-24 03:16:23

ответ

1

Для заноса, направляя транспортное средство, которое требуется, чтобы включить в радиусе «R» при заданной скорости «Si» от внутреннего колеса/дорожки, внешние дорожки должны управляться на скорости «Так»:

So = Si * ((r+d)/r) 

Деталь:

В Skid рулевого управления, поворот осуществляется с помощью внешних колес/дорожек бегущих большего расстояния, чем внутреннее колеса/дорожка.

Кроме того, дополнительное расстояние пройдено в то же время, что и внутренняя дорожка, что означает, что внешние колеса/дорожка должны работать быстрее.

окружность окружности, по "внутренней" дорожки: окружности

c1 = 2*PI*r 
'r' is radius of circle origin to track/wheel 

окружности, на "космическом" дорожкой:

c2 = 2*PI*(r+d) 
'r' is radius of circle origin to inner track/wheel 
'd' is the distance between the Inner and Outer wheels/track. 

Кроме того, c2 = X * c1, в котором говорится, что с2 пропорционально больше, чем c1

X = c2/c1 
X = 2*PI*(r+d)/2*PI*r 
X = (r+d)/r 

Поэтому для транспортного средства, управляемого снегом, которое требуется IRED завернуть в радиусе «г» при заданной скорости «S» Внутреннего колеса/дорожки Внешний трек должен приводиться в движение:

So = Si * ((r+d)/r) 

Где:

'So' = Speed of outer track 
'Si' = Speed of inner track 
'r' = turn radius from inner track 
'd' = distance between vehicle tracks. 


       ********* <---------------- Outer Track 
      **** | ****      
     **   |<--------**----------- 'd' Distance between tracks 
     *  *******<-------*---------- Inner Track 
     *  *** ^ ***  * 
    *  *  |<-----*------*-------- 'r' Radius of Turn 
    *  *  |  *  * 
    *  *  O  *  * 
    *  *    *  * 
    *  *    *  * 
     *  ***  ***  * 
     *  *******  * 
     **     **  
      ****   ****  
       *********   
1

Ну, имейте в виду, что вы также говорите о продолжительности здесь. Вам нужно выяснить, какие силы берутся для учета скорости, с которой танк поворачивается на (1, -1).

I.E., если резервуар занимает одну секунду, чтобы вращать 360˚ в (1, -1), и вы хотите открутить 180˚ за одну секунду, (.5, -.5) выполнит трюк. Если вы хотели бы набрать одну и ту же сумму за полсекунды, то (1, -1) будет работать.

Это сложнее, если вы используете abs (lrate)! = Abs (rrate), и в этом случае вам, вероятно, понадобится вырвать карандаш!

4

Вы думаете об этом неправильно. Дело в том, что различное количество силы на дорожках не превратит резервуар в определенное количество градусов. Скорее, разная сила изменит ход RATE.

Связь между силой и скоростью поворота зависит от механики бака. Чем шире танк, тем медленнее он поворачивается. Чем быстрее бак, тем быстрее он поворачивается.

P.S. Еще несколько мыслей об этом: я не думаю, что физический ответ возможен, не основываясь на реальном танке. Некоторые из ответов касаются физики поворота, но во всех них подразумевается неявное предположение о том, что система имеет бесконечную силу. Может ли танк работать на 1, -1? И он может мгновенно достичь этой скорости - ускорение распространяется и на повороты.

И, наконец, протекторы имеют длину и ширину. Это означает, что вы будете получать боковое проскальзывание протектора в любой ситуации поворота, тем быстрее ход, тем больше потребуется проскальзывание. Это будет сжигать энергию в резком повороте, даже если двигатель имеет мощность, чтобы сделать 1, -1 оборот, это не будет так быстро, как это будет указывать из-за потерь на трение.

0

Прошло некоторое время с тех пор, как я сделал какую-либо физику, но я бы подумал, что движущиеся силы двух дорожек, движущихся в противоположных направлениях, приводят к крутящему моменту вокруг центра масс танка.

Именно этот крутящий момент приводит к угловому моменту цистерны, что является еще одним способом сказать, что танк начинает вращаться.

0

Это не вопрос силы - это зависит от разницы в скорости между двумя сторонами и от того, как долго эта разница сохраняется (также ширина танка, но это только постоянный параметр).

В принципе, вы должны вычислить его вдоль этих линий:

  • Отношение скоростей между 2-х сторон такое же, как отношение радиуса.
  • Ширина резервуара - это фактическое различие между двумя расиусами (sp?).
  • Используя эти 2 числа, найдите фактические значения радиуса.
  • Умножьте скорость одной из сторон на момент ее перемещения, чтобы получить пройденное расстояние.
  • Рассчитайте, какую часть полного круга он совершил, разделив его на периметр этого круга.
0

Я бы сказал, что вы думаете об этом не так.

Увеличение разницы в скорости между двумя ступенями не вызывает степеней поворота - они в сочетании со временем (расстояние с разной скоростью) вызывают степени поворота.

Чем больше разница в скорости протектора, тем меньше времени требуется для достижения X степеней поворота.

Итак, чтобы придумать формулу, вам нужно сделать несколько предположений. Либо повернитесь с фиксированной скоростью, и используйте время в качестве переменной для поворота X градусов, либо установите фиксированное количество времени для завершения поворота и используйте разницу скорости движения в качестве переменной.

2
Change in angle (in radians/sec) = (l-r)/(radius between treads) 
Velocity = l+r 

Для dtheta, представьте, что вы имели деревянный столб между вашими двумя руками, и вы хотите, чтобы подсчитать, сколько вращается в зависимости от того, насколько трудно и которые, как ваши руки прижима - вы хотите, чтобы выяснить:

сколько поверхности расстояние от полюса вы покрываете в секунду -> сколько оборотов/сек, что является -> сколько радиан/сек (т.е. мульт по 2pi)

1

Вот как я бы атаковать проблему танка.

Центр цистерны, вероятно, будет перемещаться по средней скорости правой и левой дорожек. В то же время резервуар будет вращаться по часовой стрелке вокруг его центра на ([скорость левого колеса] * - [правая скорость дорожки])/[ширина].

Это должно дать вам скорость и вектор направления.

Отказ от ответственности: Я не проверял это ...

0

Вы можете посмотреть на него, говоря: каждый трек описывает круг. В случае, когда одна дорожка поворачивается (скажем, влево), а другая нет, тогда облицовка будет зависеть от того, как долго и как далеко будут двигаться левые дорожки.

Это расстояние будет скоростью дорожек х раз.

Теперь нарисуйте треугольник с этим расстоянием, а колесная базой карандаша в плюс какие-то грех и соз уравнения & приближения, и вы можете получить приближенное уравнение, как:

облицовочные изменения = расстояние, пройденные дорожки/колесной базой

Тогда вы могли бы включить некоторые accelleration быть более реалистичными: Больше физики ...

скорость не постоянна - она ​​accellerates (и decellerates).

т.е. в течение периода времени скорость увеличивается от 0 до 0,1 ... 0,2 ... 0,3 до предела.

Конечно, по мере изменения скорости скорость изменения облицовки изменяется также - немного более реалистичная, чем скорость (и, следовательно, скорость изменения облицовки), полностью постоянная.

Другими словами, вместо контроля скорости игрок управляет изменением в скорости. Это заставит скорость перейти от 0 ... 0,02 ... 0,06 ... 0,1 и т. Д., Когда игрок выталкивает контроллер. Точно так же для замедления, но немного быстрее.

надеюсь, что это поможет.

0

Я думаю, каждый должен также принять во внимание тот факт, что танки могут включать круг нулевого радиуса: путем применения той же скорости на каждом треке, но в противоположных направлениях, цистерны могут включить копейки.

 Смежные вопросы

  • Нет связанных вопросов^_^