Для просунутих: Кола та диференціальне керування
У цьому розділі ми виведемо математичні формули, необхідні для руху по колу будь-якого радіусу. В основному, для цього потрібно керувати двома двигунами з різним співвідношенням, але потрібно трохи порахувати, щоб визначити це співвідношення для заданого радіусу.
Робот рухається по дузі. Колеса малюють 2 різні кола з 2 різними радіусами. Дуга з меншим радіусом (\(r_1\), the white line) має меншу довжину. Це означає, що ліве колесо проїхало меншу відстань. Воно рухалося повільніше.
Як би ви рухалися по дузі з заданим радіусом?
Ми знаємо, що колеса малюють дуги, коли ми змушуємо їх рухатися з різною швидкістю, але як ми вирішуємо, якою має бути швидкість коліс?
Що ми знаємо?
Почнемо з того, що ми знаємо про дві дуги та дугу, по якій ми хочемо, щоб проїхав центр робота.
Перше, що ми можемо сказати про будь-яке коло, це те, що радіус пропорційний до окружності. Це означає, що довжини внутрішньої та зовнішньої дуг пропорційні внутрішньому та зовнішньому радіусам, або
Це означає, що співвідношення між швидкостями коліс дорівнює \(\frac{r_1}{r_2}\).
Гей! Ми з’ясували, яким має бути співвідношення між швидкостями коліс, якщо ми знаємо два радіуси. Але як ми можемо знайти ці два радіуси? Ми знаємо тільки, яким ми хочемо, щоб був радіус помаранчевого кола.
Але ми знаємо, яка відстань між двома колесами.
Якщо \(r_{bot}\) відстань між двома колесами, то..
оскільки r1 менше за бажаний радіус, і..
Ми визначили радіуси кіл, які повинні пройти ліве і праве колеса, і знаємо, як знайти співвідношення між швидкостями коліс на основі цього.
Пам’ятайте:
Поєднавши їх, отримуємо:
Спробуйте
Напишіть код, щоб робот рухався по колу. Використовуйте функцію set_speed
і швидкість 5 см на секунду для лівого колеса.
Використовуйте розраховане співвідношення, щоб визначити швидкість правого колеса
(помножте 5 на співвідношення)
Тепер спробуйте використовувати 5 для швидкості правого колеса і співвідношення для лівого колеса. Що сталося?
Додаткові завдання
Спробуйте змусити робота зробити поворот на місці! Який радіус кола ви хочете, щоб він проїхав?
Спробуйте змусити робота обернутися навколо одного з коліс. Який новий бажаний радіус?
Спробуйте змусити робота їхати назад по дузі