Ідея та шасі мого мобільного робота, РОБОТОША

Сьогодні я починаю публікувати статті, присвячені створенню мобільного робота. На сімейній раді йому вирішено було дати ім'я Роботоша, власне тому свій блог я назвав саме так. Метою його створення є вивчення різних алгоритмів та елементів робототехнічних систем на практиці.
На даний момент мій робот є чотириколісною платформою з встановленою на ній платою мікроконтролера і обвішаний деякою кількістю датчиків і інтерфейсів для взаємодії з користувачем. Програмне забезпечення знаходиться в самому зародковому стані, тому я докладно розбиратиму що і чому саме так реалізовано на поточний момент і поступово рушу далі, додаючи функціональність і наділяючи його «розумом». Це мій перший робот, тому, можливо, якісь етапи його створення будуть хибними чи глухими.
Ідея в першому наближенні виглядає наступним чином: автономний робот, що має такі особливості:
- 4-х колісна платформа
- Використання усередині приміщення (квартири)
- Безконтактні способи визначення перешкод для уникнення зіткнень
- Режими управління:
- автономний режим «випадкового блукання» з метою побудови карти приміщення
- режим дистанційного керування
- режим виконання голосових команд із розпізнаванням голосу
- Контроль заряду батареї та самостійна підзарядка
- Виведення інформації на символьний LCD-дисплей
- Звукова сигналізація
Шасі робота
Як шасі я вирішив використовувати покупну чотириколісну платформу з суто економічних міркувань (як не вважав, частинами виходило дорожче, а ця одна з найдешевших, яку вдалося знайти). Мій вибір упавна шасі DAGU 4WD chasis kit, що представляє собою 4-х колісну платформу з моторами. Ось так виглядає комплект постачання.

Комплект поставки DAGU 4WD chasis kit
Майданчики для встановлення різного навісного обладнання виготовлені з червоного акрилового скла з великою кількістю отворів для кріплення для установки датчиків, контролерів, сервомоторів. Акрилове скло, треба сказати, свердлиться дуже легко, тому, якщо навіть щось не потрапить у майбутньому в готові отвори, завжди можна легко зробити додаткові. Колеса гумові. Мотори колекторні із пластиковими редукторами.
Розміри: 175 х 109 х 3 мм
Відстань між платами (висота стійок, що йдуть у комплекті): 24мм
Діаметр коліс: 67 мм
Ширина обода: 26 мм
Напруга: 4.5 - 7.2 В
Оберти холостого ходу: 90 ± 10 об/хв.
Струм холостого ходу: 190 мА (макс. 250 мА)
Крутний момент: 0.8 кг · см
Максимальний струм: 1 А
На складання йде хвилин двадцять. У зібраному вигляді шасі виглядає так:



Недорого можна купити тут.
З двигунами, щиро кажучи, у мене вийшла засідка. Ці двигуни не призначені для встановлення на них енкодерів, а для мене це важливо, тому що я планую використовувати енкодери для забезпечення зворотного зв'язку для більш точного позиціонування. Тому, швидше за все, якщо не вдасться переробити ці, двигуни надалі мінятиму на інші.
Загалом зібрана платформа виглядає досить симпатично. Якби не проблема з енкодерами, я був би задоволений 100%.
Ще з цієї теми
Збираю (ну чи намагаюся зібрати) зараз схожого робота. Подібні ідеї - автономний робот здатний будувати карту приміщення таорієнтуватися по ній, автономно заряджатися та й інше по можливості. Для цього використовую гусеничну платформу Dagu Rover 5 www.pololu.com/product/1551 (4 мотори та 4 енкодери). Поки що мізки на ардуїно мега 2560, але планую використовувати CubieBoard 2 (або Raspberry Pi 2) з ROS. Ідей багато. Ваш блог досить цікавий для мене.
Це ви дуже правильно зробили, що вибрали платформу з енкодерами. Я спочатку помилився — на двигуни, які я використовую, не можна поставити енкодер, а без використання одометрії зробити повноцінного автономного робота не можна. Я якраз зараз свою платформу переробив (перейшов до використання лише двох двигунів) — планую цього, максимум наступного тижня про це докладно розповісти. Проблема використання чотирьох двигунів – це калібрування та синхронізація. Це можна лише складно. Тому я вирішив спростити собі завдання та перейти до двомоторного варіанту. З гусеничними варіантами і чотирма моторами теж біда - краще використовувати два мотори (по одному на кожну сторону), так набагато простіше реалізувати схему управління. Це якщо потрібно створити автономного самоврядного робота. Якщо використовується дистанційне керування — це зовсім інша розмова, ми самі коригуємо всі похибки та помилки у русі, керуючи ним, тому кінематична схема робота не така критична.
Ну я як пограв насправді з цими гусеницями то зрозумів що одометрію буде важко зробити навіть з одним мотором на кожну гусеницю, т.к. при поворотах платформа повертається не рівне щодо свого центру, це залежить від тертя поверхні, від неідеальної форми самої платформи і т.д. Я розумію одометрію доцільно робити на двох колесах і третьому ролику, так якнайточніше вийде. До речі, нічого на сайті не написано прогіроскопи, акселерометри, магнетометри не займалися цією темою? Особливо мене цікавить калібрування магнетометра, і зв'язка цих трьох датчиків фільтром калману. До речі, про свій метод калібрування магнетометра я написав статейку, правда англійською мовою (так просто більше аудиторія) diydrones.com/profiles/bl. tion-for-dummies.
а я вибрав ось таку платформу мегу8 відразу замінив на 328ю
Цікавий якийсь варіант. Сервоприводи на колесах дозволяють отримати досить велику точність. Малювати з її допомогою чогось пробували?
Сервоприводи, датчики холу та по вісім магнітів у кожному колесі. я задоволений. ))) ось один із перших варіантів практично без програмного коригування
Ну та й після заміни м/к на ATmega328p стала «людська», а обв'язка і була — повний фарш.

Не допоможете з кодом.
Допоможу. У чому саме?
Дякую. Ось неможу зрозуміти як зняти показання з колісних датчиків, записати і потім відтворити у зворотному напрямку. Може тицьнете носом в якийсь приклад.
Дякую, обов'язково скористаюся Вашою пропозицією.
Доброго часу доби, Андрію. Тема була відкрита давно, але в пошуках свого прочитала вашу статтю) Я цікавлюся навігацією 4-х колісного робота за допомогою встановлених енкодерів (теж 4 штуки). Читала про принцип Аккермана, але не зрозумію, як застосувати цей принцип, щоб отримати на виході навігаційні параметри. Може Ви зможете підказати, що почитати, щоб більш-менш доступно написано було?
Валентино, привіт! Можете ще почитати статті Нове шасі для Роботоші та колісні енкодери DFRobot (описана робота з енкодером) та Опис руху мобільного робота (основи теорії колісних платформ). Ще вам знадобляться знання про управління ззворотним зв'язком. Можу запропонувати слайди своєї лекції Управління зі зворотним зв'язком до БПЛА. Там багато картинок це дасть загальне уявлення про тему. А, взагалі, моя порада - візьміть за основу кінематичну схему: два колеса з моторами + опорна кулька (два колеса = два сигнали, що управляють). Математика для платформи з електроприводами на чотири колеса набагато складніша (чотири колеса = чотири сигнали керування). Тобто фактично для чотириколісного випадку у Вас вийде функція чотирьох змінних.
Андрій, дякую за додаткову інформацію, вже переглядала її раніше. Ідея чотириколісного робота не моя, поставили перед фактом – треба! а як уявити алгоритм обробки отриманих сигналів поки не знаю)