Як реалізувати систему навігації мобільного робота
Є мобільний робот, який напханий всілякими датчиками. Він переміщається всередині порожнього поля з розмірами 3 на 3 м. Як зробити так, щоб робот переміщався в задану мною точку поля? А якщо я перенесу його руками, то робот повинен повернутися назад у задану мною точку.
А якщо роботів буде 10?
Конструкція робота та столу може бути модифікована. Можна зробити все, що завгодно, тут повний політ фантазії.
Зараз у робота далекоміри статичні, і знаходяться спереду та позаду робота.
Так, щодо поля. Поле має стіни, висоту стінок можна регулювати.
Ви пропонуєте не модифікувати робот, а перейти до модифікації поля?
Забув сказати, що на полі одночасно може бути до 10 таких роботів.
А в такому разі як бути?
Тобто в будь-якому випадку одна система навігації не допоможе, потрібно саме комплексне рішення, наприклад QR код і ультразвукові випромінювачі.
Виникає питання синхронізації:)
Так чи інакше роботу потрібно виділити особливості його конкретного розташування та пов'язати їх з координатами. Для цього потрібна додаткова інформація про поле. Додаткова інформація закладається або з існуючого поля ("огорож", "стовпи", "маяки", малюнок на полі або паркані), або створюється додатково спеціально (особливий малюнок на полі або паркані, активні ультразвукові маяки, деяке інтерференційне ультразвукове поле особливе до кожної точки).
Взагалі, історичні та побутові методи геопозиціонування криниця ідей для вашого питання. =)
Робот настільний. Вірніше навіть так, його робоча зона - це плоский стіл, що має бортики по периметру, що обмежує пересування робота за робочузону. Робот може переміщатися в будь-якому напрямку по робочій зоні. Поле має розміри змінювані розміри від 1 на 1 метр до 5 на 5 метрів.
Додавши конкретики до питання, можливо у Вас з'явилися нові ідеї?
У трьох кутах ставимо ультразвукові випромінювачі, кожен із своєю частотою. Щомиті випромінювачі роблять "пік". Робот слухає випромінювачі з вимірювання часу прийому кожного "піка". Знаючи різницю між першим і другим "піком" і другим і третім "піком", знаючи координати випромінювачів, знаючи швидкість поширення звуку, можна знайти координати робота. Швидкість звуку змінюється залежно від температури та тиску. Перед початком роботи встановити робота у відоме місце та натиснути кнопку "калібрувати".
Просто два ультразвукові маяки по кутах. Робот вимірює напрямки на маяки, знаючи їх координати, обчислює своє місцезнаходження.
На полі кожному квадратному сантиметрі намалювати QR-код з його координатами. =)
Дмитре, приділіть будь ласка, ще хвилинку уваги.
Розкажіть детальніше про два ультразвукові маяки по кутах. Небагато детальніше, як Ви бачите цей механізм роботи.
Щоб визначити координати, потрібно знати три напрями: на північ і на два маяки або на три маяки. Тільки два напрями не вистачає: наскільки пам'ятаю зі школи – ми так не отримаємо точку, а коло. лінію загалом.
Тепер треба зрозуміти як міряти напрямок. Найпростіше тут сканування. На голові робота ставимо обертовий ультразвуковий приймач і безперервно вимірюємо рівень сигналу. Крім того, ми повинні знати момент часу t0, коли сонар проходить деякий виділений напрямок (наприклад, дивиться вперед робота) це щоб нульовий кут знати. Якщо побудувати графік сигналу – будуть три явні піки у певні моменти часущодо t0. Знаючи швидкість обертання сонара, ми дізнаємося про кути. Знаючи кути – отримаємо координати.
вклинюсь. завдання поділяється як мінімум на 2: 1. позиціонування. 2. побудова маршруту.
перша - і найскладніша і найцікавіша. щоб не стерти пальці в кров відішлю Вас до хорошої статті тут. По суті в зазначених умовах нас влаштує тільки система локального позиціонування - тільки вони забезпечать необхідну точність. якщо обмеження на обладнання поля відсутнє (для себе, не для змагань) - то imho ефективніше використовувати нерухомі випромінюючі маяки поля і приймач(и) на роботі. це як варіант з ультразвуком, який вже пропонували, так і варіант класичного "маяка" - світло видиме/інфрачервоне (плюс світла - відсутність залежності від вологості/температури). "маяки" різних кольорів на кути поля. Ставте приймачі з фільтрами за кольором на платформу/серву, що обертається, Знаючи кути між отриманими "відліками" від "маяків" обчислити координати на полі нескладно.
все гірше, якщо маяки ставити не можна. Тут, мабуть, тільки CV врятує. перегляньте приклад зі змагань на ютьюб - поле, 2 робота, позиціонування в основному з CV. 2. побудова маршруту - знаючи координати стартової точки та кінцевої точки вектора по 2-м струмам. Наявність інших роботів суті не змінює - хіба що вони можуть почати загороджувати один одного маяки (вирішується підйомом маяків) і почнуть "штовхатися" - ну для цього варто врахувати це при циклі руху.