Разработка робота для сбора мячей для гольфа

    Процесс разработки сервисного робота на Orangepi zero и arduino для сбора гольф-мячей. Вся боль инди-разработчика, не обремененного техническим бэкграундом в одном посте…
    Разработка MVP. Видео тестирования.



    Что такое гольф?


    Гольф — это спортивная игра. Основная цель — за меньшее количество ударов закатить мяч в лунку на каждом поле, за меньшее количество ударов пройти все поля. В нашей стране гольф развит крайне плохо и это печально. Игра достаточно интересная, позволяет людям проводить время на свежем воздухе, общаться во время игры, подходит для всех возрастов. В игре есть четкое измерение Вашего успеха «гандикап» — числовой показатель квалификации спортсмена. Все эти факторы делают гольф потоковым занятием. Если Вы еще не пробовали гольф — самое время!



    Что такое driving range?


    Чтобы ударить с первого раза в конец поля, ближе к лунке, Вы должны уметь совершать дальние и точные удары. Драйвинг-рэйндж – это тренировочное поле для отработки дальних и средних ударов игры в гольф. Выглядят эти поля примерно так.



    Я на driving range. Это иллюстрация к тому, как неправильно бить.



    За одну тренировку на таком поле обычно делают более сотни ударов. Руками собирать эти шары было трудоемко и опасно для жизни. В начале XX века выбора особо не было, но кое-где и сейчас ручной труд дешевле.



    Сейчас еще используется ручной инструмент, но это скорее исключение.



    Чаще всего шары собирают с помощью специального нацепного устройства на трактор, гольф-кар или обычное авто.



    Для сбора мячей, их перетаскивания в машину для мытья, загрузку в диспенсер обычно содержится специальный человек в штате, хотя эту роль может выполнять и grasskeeper. (Грэскипер — это человек, который ответственен за качество газона на гольф-полях).
    Разработка и внедрение сервисного робота для сбора мячей для гольфа выглядит оправданным шагом с экономической точки зрения, так как экономит содержание спецтехники и заработную плату сотрудника, который должен был выполнять данный процесс. Гольф развит по всему миру, данная фотография это явно показывает.


    Особенное распространения данная игра получила в США и Европе, где уровень заработной платы достаточно высокий и возможность заменить сотрудника сервисным роботом окупается очень быстро.

    Поиск готового решения


    В результате поиска были найдены:
    парочка DIY проектов



    парочка красивых рендеров



    и один вполне себе коммерческий проект



    Из этого можно сделать вывод, что интерес есть. Скорее всего в такие нисшевые решения очень рискованно вкладываться. Стоимость разработки и наладки производства высоки, одни пресс-формы выйдут в несколько десятков тысяч $. Гольф-клубов в России немногим более 40, при этом в мире их много, в одной Германии их более 700, а во всего более 34.000. Робот сборщик мячей как продукт точно не пройдет тест зубной щетки в корпорации добра.

    Очень странно, что администрация нескольких европейских гольф-клубов, с которыми я общался не слышали о существовании готового робота, хотя проявили интерес. Все мои попытки выйти на связь с данной компанией не увенчались успехом, возможно они не справляются с количеством уже имеющихся заказов.

    Я не знаю точно, что из этого получится. Может быть где-то на пути от фанерной коробки до первого «взрослого» образца придет понимание нужно это кому-то или нет.

    Первоначальной целью является получение работающего образца без внимания к внешнему виду. Далее планирую придать роботу аккуратный внешний вид и поставить для тестов в гольф-клуб в России. После отладки и проведения долговременных тестов — приступить к переработки модель в пригодную для производства.

    Поехали!


    Планируется несколько основных преимуществ относительно существующего коммерческого решения.

    • Отсутствие необходимости закапывать слаботочный кабель по периметру.
    • Возможность внедрения в уже существующую инфраструктуру.
    • Более низкая стоимость и совокупная стоимость владения.

    Корпус и механическая часть


    Материалом для корпуса первого образца была выбрана фанера. Дешево, позволяет на месте быстро подрезать какие-то части или просверлить отверстия. Чтобы все было четко подогнано набросал чертеж и отдал на фрезерную резку.



    Собрал все детали. С самого начала была идея сделать корпус скругленным, но решил остановится строго на MVP. Все, что не влияет на работоспособность пока умышленно исключаю из todo-листа.



    Механизм захвата мячей в процессе эволюции данных приспособлений показал свою эффективность, поэтому другие варианты не рассматривались.


    По двигателю 12V 30 Н/м. на каждое колесо. Такой же двигатель крутит вал с дисками захвата, так как они подняты над поверхностью для облечения поворотов и повышения маневренности.



    Изначально двигатели были noname китайские. В описании не было момента, поэтому риск был велик. Момента явно не хватало, что не скажешь о двигателей от стеклоподъемников.



    После смены двигателей пришлось напечатать другие шестерни.

    Электроника


    Так как ровер должен работать без электромагнитного кабеля по контуру поля ему как-то необходимо ориентироваться и искать базу для сброса шаров и подзарядки.

    Принял решение использовать Orangepi lite и arduino для более удобной работы с 5v без зоопарка конверторов уровней для каждого датчика и драйвера двигателей.



    Собрал все из готовых модулей на макетной плате. Сказывается отсутствие опыта в схемотехнике, думаю в дальнейшем не проблема будет развести плату под модули или под дискретные элементы и заказать.



    Схема состоит из 11 план, 11 Карл!
    — Orange Pi Lite
    — Arduino nano
    — GPS модуль GY-NEO6MV2
    — 2 драйвера двигателя VNH2SP30
    — Bluetoth Hc-06
    — 2 ультразвуковых модуля J34
    — Конвертер логических уровней
    — Модуль 3-х осевого гироскопа и акселерометра GY-521 MPU-6050
    — Блок из двух реле

    Конечно это было сделано для быстрой сборки, монтажа и замены модулей.


    Программная часть


    Основной скрипт написан на Python. В цикле программы существует глобальная цель:

    1. Инициализация
    2. Сбор мячей
    3. Возврат на базу
    4. Зарядка
    5. Отдых по расписанию
    6. Отдых по погодным условиям.

    Инициализация


    Во время инициализации происходит тестирование систем, поиск GPS, построение локальной карты проходимости, определение дальнейшей цели.

    Сбор мячей


    Во время сбора мячей в каждом цикле, обновление локальной карты проходимости, построение вектора до текущей географической цели, опрос датчика переполненности отсека с мячами, опрос заряда батареи.

    Возврат на базу


    В случае переполнения отсека для мечей или разрядки батареи робот переключает глобальную цель на возврат на базу кратчайшим маршрутом. При непосредственной близости к координатам базы осуществляется визуальный поиск метки по которой происходит дальнейшее, более точное ориентирование.

    Зарядка, отдых


    Зарядка происходит до необходимого напряжения батарей. Отдых может быть запланирован по расписанию или по срабатыванию датчика дождя.

    Корпус




    За дизайн огромное спасибо habr.com/users/NikitaKhvoryk

    Несущий корпус должен сверху накрываться верней частью, которая служит для защиты от дождя и падающих мячей. Первый декоративный корпус планирую сделать из стеклоткани и эпоксидной смолы. Про это готов написать отдельный пост, если будет интересно.



    Видео



    Планы


    Уже сейчас ровер собирает 95-100% мячей на своем пути. Строит маршрут внутри полигона по GPS-координатам. В планах:

    • Нахождение базы для сброса мячей и зарядки по визуальной метке.
    • Сервопривод сброса мячей.
    • Датчик переполненности отсека с шарами.
    • WEB-интерфейс для визуального указания точек на карте, построения зон для сбора мячей с разной периодичностью.
    • Корпус.
    • Размещение робота в гольф-клубе в Москве для теста в боевых условиях.

    Вопросы


    Много раз после поста получал от хабросообщества ответы на вопросы или советы, которые очень помогали. Во всем посте есть несколько вопросов, на которые мне очень нужен ответ. Решил собрать их для удобства вместе.

    • Каким образом сделать корпус для робота? Это должно выглядить красиво, без вложений в пресс-формы.
    • Стоит ли уйти от модулей и делать все на одной плате? Как быть с микрокомпьютером?
    • Как найти финансирование под проект? Где тестировать образцы?
    • Никак не могу найти пример фильтра Калмана для данных с GPS с коррекцией по магнетометру, гироскопу. Есть Pycalman, но каким образом вместить в матрицы данные с датчиков никак не пойму. Даже на тостере не нашел ответ. Буду очень благодарен.

    Спасибо за внимание. В следующем посте тест в боевых условиях. Я покажу Вам не показанное, постараюсь разгадать неразгаданное, и выведать все неизведанное!

    Всегда Ваш, начинающий стартапер, менеджер самого среднего звена, разработчик всяких роботов 1, 2, 3, 4, 5, 6 и гаждетов 1, 2, 3. А еще я написал два рассказа 1, 2 и взял пару интервью 1, 2, 3.

    Я открыт для диалога, советов, помощи, предложений.
    Поделиться публикацией

    Комментарии 62

      +1
      Очень нужен робот для уборки коврика мыши=)
        +1
        про позиционирование был пост, там автор делал газонокосилку и тоже что-то с чем то скрещивал, результата не помню. Еще вариант дополнить стационарным приемником гпс/гланас и по радио сообщать роботу корректировку.
          +4
          Автор с газонокосилкой скорее всего был я. Что не скрещивай, а точность так себе.
          GPS RTK стоит дорого!
            +4
            RTK GPS стоит не так уж и дорого, два датчика с хорошими антеннами (2x Ublox neo-m8t с приличной антенной обошлись в чуть более 200 долларов), плюс serial-to-wifi гейт (ESP-шка или какой-нибудь raspberry pi zero) и микрокомпьютер для rtklib (тот же raspberry pi zero или orange pi zero).
              0
              SkyTraq сделали дешёвые модули с прошивкой, которая считает RTK прямо на модуле: navspark.mybigcommerce.com/s2525f8-gl-rtk-gps-glonass-rtk-receiver-module, для работы нужна, соответственно, пара таких модулей.
                0
                Правильно ли я понимаю, что такой пара таких модулей.
                S2525F8-GL-RTK EVB: RTK MODULE EVALUATION BOARD
                  0
                  Если лень паять — то да, можно эвалборды взять.
                0
                А у меня идея. В двух углах поля ставятся динамики, они регулярно делают бум!.. Скорость звука 340 м/с, ардуина без проблем замеряет разницу в 1 мкс, то есть можем посчитать расстояние до динамиков с точностью 30см, если время синхронизировать, или инициировать динамики по радиокоманде с робота. Из этой информации высчитываем, что робот может быть в одной из двух точек. А дальше — логически.
                  0

                  Артем, боюсь члены клуба будут против.

                    0
                    Против ультразвука? Они и не узнают. Но для большой площади RTK может быть удобнее, конечно.
                      0
                      Представляете какой силы нужен будет звук, чтобы на сотни метров ловился? Даже если пренебречь влиянием на здоровье собственно ультразвука — там будет слышен довольно громкий «бум» в начале импульса. Ну и как бы на больших расстояниях движущемуся роботу — ультразвук совершенно не катит. Задержка звука будет такая, что робот будет успевать проезжать существенное расстояние, искажения измерений будет страшное, да и частота этих измерений — неприемлимая.
                    +1
                    Такие системы уже есть, например, Marvelmind. Двумя маяками ограничиваться не нужно, просто смысла в этом нет, измерения не идеально точные. Еще у вас ошибка в расчетах, порядка 30 см это для 1 мс, а не 1 мкс.
                +1
                По поводу езды по компасу — можно посмотреть ardumower (автономная газонокосилка на arduino mega 2560 или arduino due), Inav (коптеры и колесные роботы на stm32f3/4/7), openpilot (коптеры и колесные роботы на тех же контроллерах), ну и мой проект github.com/~vasimv/OMower — колесный робот на arduino due или собственной плате. Во всех есть нужные калманы и/или более продвинутые фильтры (Madgwick/Mahony). В моем еще есть поддержка получения координат от RTK (нужен внешний микрокомпьютер с rtklib), остальные тоже теоретически с ним смогут, но не проверял как хорошо.
                  0
                  Спасибо.
                  Буду смотреть в этом направлении.
                    0
                    Кстати, я недавно делал эксперимент с ориентированием omower по камере (opencv распознает шахматную доску и выдает коррекцию по углу для робота), довольно хорошо получается на нескольких метрах (на большом расстоянии — нужен более мощный, чем raspberry pi zero компьютер для обработки кадров в высоком разрешении). Как раз чтобы на станцию заезжать (подъезжаем по GPS к точке перед станцией, потом по камере рулим в нее).

                    Принцип довольно простой — opencv выдает нам координаты точек шахматной доски, высчитываем на сколько пикселей смещены углы относительно центра камеры, рассчитываем расстояние по размерам доски на камере и получаем угол отклонения, который прямиком в pid-контроллер моторов пихаем.
                      0
                      Мне кажется можно использовать даже QR коды www.i-programmer.info/news/169-robotics/6665-robot-navigation-made-easy-with-qr-codes.html
                        +1
                        Мои тесты показали, что QR-коды на raspberry pi zero распознаются слишком долго (до единиц секунд), что крайне медленно для нормального ориентирования. Шахматную доску 3x4 на 640x480 я распознавал за 100-300 миллисекунд, что позоволяет нормально уже ездить в реальном времени. Впрочем, я не большой специалист в этой области, может и можно что-то крутить в opencv.
                          +2
                          Для навигации больше подходят aruco маркеры.
                          Для ROSа есть прикольный пакет wiki.ros.org/ar_track_alvar использовали его для уточнения позиционирования по slam.
                          Также делали индор трекинг роботов с внешней камеры. Было 4 робота на которых стояли кубы обклеенные маркерами(т.е. до 12 маркеров в кадре одновременно) на odroid xu4 и допиленном opencv получилось 10-15фпс.
                            0
                            Вы состоите в группе vk.com/robotoperating?
                              0
                              Да, это стоит использовать для метки. Спасибо.
                              В целом думаю все сделать на ROS, но тогда нужен компьютер мощнее.
                      0
                      ardumower разве работает не с кабелем по периметру?
                      Решения на Калмане есть, но для Python не смог найти толкового примера как сформировать матрицу.
                        +1
                        С кабелем, но GPS-ориентирование с компасом там есть (используется в варианте с внешним компом, строящим карту участка). Не знаю какую там матрицу хотите получить, но питон скорее всего не справится с реал-тайм задачей комбинации акселерометра/гироскопа/компаса.
                          0
                          Здесь ситуация другая. На Driving range практически нет препятствий.
                          Точки границы участка задать можно заранее.
                          Какой простейший алгоритм выбрать для построения маршрута в полигоне из GPS координат, чтобы за меньшее время обойти всю площадь?
                            0
                            Тут не подскажу ничего, у меня задача чуток попроще. Читал что-то про такие алгоритмы, но пока не реализовывал.
                            0
                            С numpy или подобной библиотекой справится безо всяких проблем, да еще и с большим запасом. Без них тоже справится, просто смысла не использовать их нет.
                              0
                              Там оно десятки, а то и сотни раз в секунду прет от трех датчиков, в реальном времени. Можно, конечно, потрахаться с приоритетами задач, чтобы оно все успевало, но я бы не стал…
                            0
                            С numpy без проблем, да и куча туториалов в сети по Калман-фильтрам на Python. Если в будущем датчиков будет много, можно на ROS посмотреть, там есть robot_localization для этого (фильтр Калмана).
                            +1
                            image
                            Может быть заменить подбор мяча? Вот например так… Мяч попадает в направляющую по которой продвигается по земле, так как сама конструкция двигается. Затем мяч наезжает на сетчатую полку (сетчатая чтобы не собирать мусор), заезжает глубже (по инерции или подталкивается мячом который следует позади) где заталкивается резиновым валом в бункер для мячей. Может поставить резиновую крыльчатку прямо над тем местом где начинается сетка и мяч будет сразу залетать в бункер.
                              +1
                              Утро доброе.

                              Здесь проще пойти в уже давно известную технологию сбора — жатка комбайна. Все ваши методы, как раз и описывают первичные концепции его разработки. Там используется интегральный шнек (это когда правая и левая части имеют разную навивку шнека). Таким образом, где бы не попал объект, он перемещается к центру. Да и регулировать зазор между шнеком и сеткой не нужно, чтобы предотвратить заклинивание механизма. В ваших случаях есть варианты развития такого сценария.
                              0
                              Пушку надо ставить!
                                0
                                paingolf?
                                0
                                Если рассматривать не только робота, а всю инфраструктуру «автоматический сбор мячей для гольфа» в целом, то предлагаю дополнить:
                                — Настраиваемыми условиями, при которых начинать сбор мячей (периодический сбор, сбор после расходования определённого количества, сбор если плотность мячей в указанной области становится выше определённого предела). Вряд ли целесообразно гонять робота исключительно за двумя мячами в двух дальних углах поля.
                                — Добавлением отдельной камеры, которая оценивает куда приблизительно улетают мячи. В дальнейшем, данные с камеры могут служить целеуказанием для робота сборщика.
                                — Возможность работы в команде одинаковых роботов, чтобы не шерстить повторно участок, пройденный коллегой.
                                — Возможность «разделения труда». Первое, что приходит в голову: есть робот транспортёр, который отвозит мячи с поля до базы. Есть роботы поисковики, которые ведут самостоятельный поиск, собирают некоторое малое количество мячей и передают транспортёру (и попутно подзаряжаются от него)
                                  +1
                                  Автоматическая рекуперация мячей и есть конечная цель.
                                  Узкое место не сбор, а весь цикл обработки мячей.
                                  Их нужно собрать, привезти, помыть и засыпать в диспенсер.
                                  Люди вставляют монету или купюру и получают свою порцию мячей.

                                  Весь этот процесс уже проводится на поле, необходимо интегрировать туда робота без лишних затрат.

                                  Например для засыпки мячей в автомат для мытья думаю сделать наклонную плоскость вдоль домика с диспенсером по которой робот поднимается и сбрасывает мячи через отверстие в стене сразу в автомат мытья.

                                  Далее траспортная наклонная лента из автомата мытья поднимает мячи в диспенсер после того, как они выпадают чистые.
                                    +1
                                    Первыми двумя предложениями я имел в виду решение одной из следующих задач:
                                    — Наиболее оптимальный сбор мячиков (максимальное количество за минимальное время/трудоресурсы). Понятно, что целесообразно добиться какой-то плотности мячиков и идти «харвестить» в наиболее перспективные участки.
                                    — Сбор всех мячиков на поле (за любое время, любой ценой).
                                    И оптимизацию робота уже под конкретику. Хотя, согласен, что для начала нужно получить MVP (минимальный жизнеспособный продукт).
                                  0
                                  Фото робота вызывает большой вопрос об его проходимости.
                                  image
                                  Не застрянет ли он на таком поле для гольфа?
                                    +3
                                    Это уже на подходе к грину, и на самом поле, как таковом, мячи массово никто не лупит. Ты идешь со своим мячем от начала и до конца (до лунки). Потеря мячей носит единичный характер и явно не требует роботов для сборки.
                                    А автор описывает применение робота в «гольф-тире», если угодно. то есть отдельный загончик где практикуются в «стрельбе» мячами и поэтому требуется мячи рекупирировать в промышленных масштабах
                                      +1
                                      Вы абсолютно правы. Спасибо!
                                    +1
                                    могу подсказать по корпусу — производим кораблики для завоза прикормки из abs пластика — выглядит офигенно, станок делается за два вечера, форма режется из ДСП на любом 3д принтере. повторяемость просто супер, скорость работы — 10 больших корпусов за 5-часовой рабочий день одним сотрудником. Клеится внутрянка(порезанная на том же чпу фрезере) дихлорэтаном(растворитель) да так что отрывается только с мясом и сквозными дырками.
                                      +1
                                      «Форма режется из ДСП на любом 3Д-принтере»
                                      Слова по отдельности понимаю а вот что имелось ввиду, поясните пожалуйста
                                        0
                                        имелся ввиду 3д фрезер.
                                        склеиваются между собой до необходимой высоты 2-3-4 столещницы а потом на фрезере чпу — срезается лишнее — выходит внутренняя часть формы на которую надевают размягченный температурой лист пластика а потом ваккуумом отсасывают воздух — в результате пластик приобретает выпуклости формы, потом лишнее отрезается и вуаля — корпус готов
                                          0
                                          Ось Z e фрезера нужна более 300мм., я не смог такое найти в Подольске.
                                          Думаю насчет вакуумной формовки или стеклохоста и эпоксидки на пенопластовую форму.
                                            0
                                            Не обязательно. Можно наоборот нарезать слоями (из тех же столешниц), а потом склеить. Просто вначале склеить, а потом нарезать обеспечит более ровные стыки (их отсутствие) и в целом немного проще.

                                        0
                                        Написал в лс. Буду рад помощи. Огромное спасибо.
                                        0
                                        а шестерни так и планируете печатать из говеного пластика? Явно это будет слабое место
                                          0
                                          Нет, будет металл.
                                          Это максимум на что способен мой плохо откалиброванный пруша.
                                          Ось будет точиться, шпилька для пробы.
                                          0
                                          Я так понимаю ось для дисков, которые собирают шары, сделана из гибкого материала (садового шланга похоже не данный момент :), что впрочем не важно).
                                          Важно то, что упругие материалы имеют тенденцию менять свои свойства со временем при активном механическом воздействии.
                                          Вы не опасаетесь, что этот узел быстро «разболтается»?
                                          Впрочем может это и к лучшему — нередко сервисное обслуживание является основной статьей доходов производителя. :)
                                            0
                                            Ось из шпильки 12мм. Это временное решение.
                                            Шланг для мягкой фиксации дисков.
                                              0
                                              Понял.
                                              Но мне кажется, что «мягкая фиксация» это разновидность той же проблемы, нет?
                                              Т.е. со временем диск продавит на шланге относительно широкую канавку и начнет болтаться. Ну чисто умозрительно.
                                                0
                                                Надесь до того времени будет уже robogolf v.0.2
                                              0
                                              Задача интересная, сам робот и реализация тоже, а вот гольф как-то не очень…
                                              www.youtube.com/watch?v=Z4w7H48tBS8
                                              Или я что-то не понимаю, тогда прошу написать научно-популярную статью про гольф и почему гольф — это хорошо :)
                                                +1
                                                В СССР гольфа не было, поэтому у нас он развит крайне плохо и считается игрой исключительно для богатых людей.
                                                Гольф отлично подходит для нетворкинга, проведения неформальных встреч.
                                                Это умеренные нагрузки на свежем воздухе.
                                                  0
                                                  Так-то оно так, но Джорж Калин в СССР не жил, а мнение насчёт гольфа имеет… И считает что это игра богатеньких буратин. Зная Штаты по-наслышке, чёрные в гольф тоже играют, правда им в основном достаётся роль собирателей мячиков и подстригающих газон.
                                                0
                                                3-4 камеры по периметру робота могут распознавать мячики. Кроме того, могут распознавать маркеры на мачтах по углам зоны.
                                                Азимуты до маркеров + примерная координата GPS = точное позиционирование.
                                                Ардуина с таким, боюсь, не справится. Разве что слать картинки с камер на сервер и обрабатывать там.
                                                Камеры на мачтах могут тоже следить на положением роботов, следить за траекторией летящих мячиков.
                                                  +1
                                                  Это все как-то не вписывается в концепцию минимализации стоимости внедрения и стоимости владения. Тут придется здорово перерабатывать поле.
                                                  Нужно просто выпустить робота, установить разгрузочную зону, установить координаты поля.
                                                    0
                                                    Разве? ну ок, если сервер убрать, да камеры с мачт.
                                                    Сами 2-3 мачты метра 3 с яркой картинкой дорого не стоят, обслуживания не требуют.
                                                    3-4 камеры в роботе + 3-4 Raspberry Pi на борту сильно цену не увеличат.
                                                    Больше-то и расходов нет.
                                                    Можно даже без мачт обойтись если при установке указать на статичные высокие объекты вокруг. Потом, на гольф-полях часто фонари же есть.
                                                    0
                                                    Развивая мысль: Если робот знает свою координату (GPS) и точно знает свое направление (дешевая навигационная камера), то используя HD-камеру может определять траекторию пролетающих над ним мячиков.
                                                    При поддержке второй камеры стоящей возле разгрузочного хоппера можно точно определять место падения мячика ± пара метров.
                                                    У мячей нет ускорения в полёте, мячи одинакового размера, двух камер вполне достаточно чтобы находить траекторию мяча.
                                                    Записывая места куда падают мячики можно сделать более эффективным алгоритм их сбора. Ну чтобы не кататься по всему полю как пылесос.
                                                    Я бы ещё камеру внутрь хоппера поставил чтобы оценивать степень загрузки.
                                                    0
                                                    А что с защитой от влаги? Трава-то всегда мокрая
                                                      0
                                                      Трава бывает мокрой от росы, бывает дождь.
                                                      В конструкции все это нужно предусмотреть.
                                                      Но сами мячи будут хранится отдельно
                                                      +1
                                                      У компании ublox есть решения gps модулей с подключаемыми датчиками(для навигации автомобилей на парковках и в туннелях) с встроенным фильтром Калмана. Может стоит этим воспользоваться и переложить фильтр на готовое решение?
                                                        0
                                                        Вы не могли бы прислать какой продукт Вы именно имеете ввиду. Ссылку где их можно заказать? Нa офф. сайте не нашел.
                                                          +1
                                                          К примеру Neo-m8u(не путать с другими моделями у них они на буквально одну букву могут отличаться) в нем все датчики встроены внутрь. Ссылка где купить к примеру тут в виде уже модуля www.csgshop.com/product.php?id_product=235 к сожалению не знаю насколько качественно будет лучше, но по рекламным материалам все очень и очень красиво.(реклама такая реклама)
                                                        0
                                                        Мое мнение, алгоритм для подобных задач (в двух словах, не развернуто) — висит (летает на квадролете) на определенной высоте камера (класса PTZ), несколько камер, периодически сканируют поле (у каждой камеры свой сектор), идентифицируют объект поиска, передают его координаты уборочной машине.
                                                        Проект состоит в нескольких этапав: программная часть ID распознавания и принятия решений, навигация, управление и аппаратная часть воздух. Как-то так

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое