Однажды, после очередной новости про чрезвычайное происшествие (большой пожар), мы обратили внимание на такую характеристику, как площадь этого происшествия: площадь пожара, площадь разлития ядовитых веществ из цистерны, площадь радиактивного заражения и т.п. И у нас возникла математическая ассоциация: площадь — это геометрический смысл интеграла.
И почему-бы не сделать робота, который сможет определять площадь (интеграл) происшествия в небезопасных для человека местах (ситуациях)?
Наш робот собран из LEGO EV3 и использует следующие датчики:
1) 2 датчика цвета для определения цвета поверхности.
2) Ультразвуковой датчик расстояния для остановки робота.
3) Гироскопический датчик для орентации робота в пространстве (поворотов).
На первом этапе нам нужно было построить алгоритм для обхода заданной «территории» с максимальным покрытием. Этого мы добились использую обход поверхности зигзагом. Для обеспечения маскимального покрытия поверхности и четкого движения мы использовали гироскопический датчик, чтобы робот поворачивался на 90 градусов.
На втором этапе нам было необходимо определить, сколько «точек измерений» робот сделает на эталонной фигуре. Для этого мы напечатали черный прямоугольник известного размера. Мы провели более 20 опытов, чтобы собрать показания датчиков цвета и получить среднее количество «черных точек» на один опыт. После этого мы посчитали коэффициент, который позволяет нам пересчитать количество точек в площадь (в квадратных сантиметрах).
Далее мы провели ряд опытов (5 заездов на каждую фигуру) на фигурах разного вида.
Вот что у нас получилось.
Фигура | S (см^2) | S робота (см^2) | Погрешность (%) |
Прямоугольник | 580 | 613 | 6 |
Круг | 305 | 313 | 3 |
Треугольник | 203 | 213 | 5 |
Кляска | 248 | 242 | 2,5 |
Украина | 255 | 267 | 5 |
Для прототипа, как нам кажется, мы получили достаточно неплохую точность. Чтобы увеличить качество измерений можно:
1) Уменьшить скорость движения робота, тем самым повысив количество точек измерения на единицу пройденного расстояния;
2) Изменить «шаг зигзага» (уменьшить), чтобы улучшить покрытие поверхности;
3) Улучшить точность поворота робота, чтобы траектории обхода были параллельны. Иногда мы наблюдали неточность работы гироскопического датчика, что приводило к диагональным траекториям;
4) Подобрать лимит «черного цвета», чтобы избежать подсчета серых оттенков.
А вот так выглядят траектории обхода (сканирования) территории.
Продолжая математическую тему, хотим сказать, что данный подход «интегрирования» может быть использован не только для определения площади на основе бинарной функции (есть радиация или нет, черный пол или белый, температура выше предела или ниже), но и для построения физических карт местности. Для этого робот для каждой точки должен снимать акутальные показания датчика, а не только определять уровень.
Скачать программу робота-интегратора