Engineering
Безпілотний шатл
Проїдьтеся безпілотним електричним шатлом університетським кампусом уночі після дощу. Він кермує методом чистого переслідування (pure pursuit) — цілиться в точку попереду на маршруті з кривиною 2 sin(alpha)/L_d, рівно 1/R на колі, — сповільнюється до sqrt(a_lat/kappa) перед кожним поворотом, зупиняється точно біля позначки на двох зупинках у межах комфортних уповільнення й ривка й стежить за дорогою віялом променів лідара. Біля зебри чекає пішохідка: шатл бачить її й поступається. Вимкніть правило поступання — і вона ступить на дорогу за 14 м попереду; екстрене гальмування займе відстань за замкненою формулою v tau + v^2/2a + v a/2j; дайте сприйняттю затримку 1,2 с — і шатл до неї доїде; поставте фургон перед зеброю — і вона буде прихована, доки не опиниться на смузі. Спробуйте сухий асфальт і мокре листя й простежте кожен джоуль від акумулятора в мотори, повітря, шини й гальма та назад через рекуперацію.

Що відбувається
Шатл масою 3000 кг (2400 кг і 8 пасажирів) їде кільцем кампусу завдовжки 116,8 м, 76 + 13π м, із поворотами радіусом 5 і 8 м. Кінематичний велосипед відносно задньої осі, колісна база 3 м: θ’ = v·tan δ/L. Чисте переслідування цілиться в точку маршруту на L_d = 2 м + 0,6 с·v попереду й задає κ = 2 sin α/l_d, рівно 1/R на колі; кермовий сервопривід повертає не швидше за 0,7 рад/с до 35°. Планувальник тримає крейсерську швидкість, обмеження на повороті √(a_lat/κ) з a_lat = 1,2 м/с² (ніколи не більше μg/2) від місця, де точка попередження входить у поворот, і 2 м/с біля зебри, поки поруч хтось чекає; для поворотів, наступної зупинки й перешкоди він починає гальмувати, щойно комфортне сповільнення — ривок 1,5 м/с³ до 0,96 м/с², потім стале — потребує всієї відстані, що залишилася, а потім іде за v²/2d на обмеження, у межах 1,2 м/с² і обмеження ривка. 2D-лідар на бампері посилає 121 промінь у секторі 120° з частотою 10 Гц, дальність 30 м, шум 2 см із фіксованого зерна, на стіни, стовпи, дерева, фургон і пішохідку; влучання в межах 1,5 м від маршруту попереду — перешкоди. Планувальник бачить кожне сканування після затримки (0,3 с); якщо час до зіткнення коротший, ніж потрібно для комфортної зупинки, він гальмує розімкнено з ривком 20 м/с³ до min(6, 0.9μg) м/с² і зупиняється за v·τ + v²/2a + v·a/2j − a³/24j² від сканування (μ = 0,85, 0,55, 0,3). Рух точний на кожній ділянці: сталий ривок протягом щонайбільше 10 мс при незмінному кермі — це дуга кола пройденої довжини; зупинка, кінець наростання гальмування й моменти затримки знаходяться всередині кроку. Робота коліс — за чотириточковою квадратурою Гаусса: акумулятор = тяга/0,9 + 2 кВт допоміжних систем − 0,7 × рекуперованого гальмування (щонайбільше 40 кВт), решта гальмування нагріває фрикційні гальма; баланс сходиться з точністю до округлення.
Що спробувати
Дивіться коло: швидкості на поворотах, зупинки точно біля позначки й шатл, що поступається біля зебри; вимкніть правило поступання й порівняйте зупинку з відстанню за замкненою формулою; збільшуйте затримку, доки шатл не доїде до пішохідки; виберіть фургон; спробуйте мокре листя; скоротіть час попередження й стежте за кермуванням.
Модель та її обмеження
Кінематичний велосипед: без проковзування шин і бічної динаміки, тертя лише обмежує екстрене гальмування й швидкість на повороті; навчальний планувальник, а не сертифікований автопілот чи нейронна мережа. Лідар сканує одну площину проти кіл і відрізків, без завад від дощу, кластеризації чи стеження; пішохідка йде за сценарієм і ніколи не прогнозується поза правилом зебри; контакт позначається, а не моделюється. Моторна чи рекуперативна гілка вибирається для кожної 10-мілісекундної ділянки за результуючою роботою коліс; акумулятор — накопичувач енергії зі сталими ККД. Одне кільце кампусу в натуральну величину, без іншого руху.
Рівняння модуля
Рівняння θ’ = v·tan δ/L, κ_cmd = 2·sin α/l_d, L_d = L0 + k·v, on a circle α = L_d/2R, so κ = 1/R v_curve = √(a_lat/κ), brake when d ≤ D(v, a, v_c); then a = −(v² − v_c²)/2d, |a| ≤ a_c, |da/dt| ≤ j TTC = d/v; emergency if d − 1 m < D_comfort; s_stop = v·τ + v²/2a_e + v·a_e/2j_e − a_e³/24j_e², a_e = min(6, 0.9·μ·g) E_batt = W_trac/η_m + E_aux − η_r·W_regen, W_trac − W_brake = ΔE_k + F_r·s + ∫c·v³ dt


