Комментарии 36
Добавляйте:
1) https://www.seeedstudio.com/item_detail.html?p_id=2573. Очень дёшево (ну да, это маркетинговый проект MediaTek, подозреваю, что продают они его в ноль, но что ж с того), по ресурсам богаче нашего Unwired One и Onion Omega. Минус — не уверен, что это можно как-то в России официально купить.
2) Intel Edison (ну да, я понимаю, что тут про MIPS, но читатель таки имеет право знать). Недёшево, зато там много мегабайт и мегагерц. Его немного трудно купить в розницу, но это вопрос, который при небольшом желании можно решить. Ну и у нас в Unwired Kit планируется плата-адаптер под Edison, которая позволит с ним использовать как разные платы расширения, так и наши беспроводные сети.
Но в принципе для какого-то машинного зрения и т.п. задач этого всего мало, там более другие мощности по-хорошему нужны. А более другие мощности — это или Raspberry Pi, или более другие цены.
P.S. VoCore — сразу в хлам, там медленный и горячий Ralink стоит. Они сейчас делают вторую версию на медиатеке.
Может я ошибаюсь, но мне показалось что у Вас в статье как то нечетко сформулированы требования.
Распознавание образов и общее управление — это одна задача решаемая одним классом "платформ".
Управление (сервоприводами например) и сбор информации с датчиков (зачастую не слишком "умных") — это совершенно другая задача решаемая другим классом "платформ" (Контроллеры).
Все Вами перечисленные платформы — это смесь того и другого (ну типа как Cortex Ax и Cortex Mx вместе смешать и сравнивать).
Мне кажется нужно как то разделить задачи. И под каждую свою платформу выбирать.
А с распознаванием образов с использованием OpenCV в реальном времени, по моему, разве что MIPS Creator ci20 справится… (возможно… но не уверен).
Мне кажется (лично мне), что гораздо практичнее делать распределенную систему. Первичной обработкой данных и управлением железом занимаются контроллеры, а задачей принятия решения и сложной обработкой занимается другой модуль.
По крайней мере, именно по такому принципу я делал (чисто поиграться) робота (колесное шасси + манипулятор + куча датчиков).
Плата гироскопа и акселерометра — свой контроллер (ATMega8). Сканер (шаговый двигатель + ультразвуковой дальномер) + управление ШИМ сервомашинок манипулятора + ШИМ 4-х двигателей колес + шаговые двигателе обзорной видеокамеры — STM32F103.
А общее управление через отдельный протокол (радиоканал) — программа на Linux с расчетом, что бы можно было Малину прямо на борт поставить… Управление отдельными (физически отдельными) модулями со своими контроллерами по относительно высокоуровневому API.
Ну так просто проще. Все же управлять в режиме реального времени кучей периферии на низком уровне под Linux — не реально (как минимум сложнее чем на голом контроллере). A написать специализированное ПО в виде "черного ящика" с заданным API и функционалом под конкретный контроллер просто. Контроллеры для этого и предназначены.
А под Linux удобно делать/отлаживать общее управление и сложные задачи с использованием готовых библиотек типа OpenCV.
А что сейчас вкладывается в словосочетание «интеллектуальная система»?
У меня такое ощущение, что все подразумевают что то, чуть чуть да свое.
Предпочитаю не теоретизировать, а решать конкретные задачи.
Вот Intel в свои последние микропроцессоры для DIY встраивает гироскоп/аккс/компас + термометр.
Digilent chipKIT Wi-FIRE, микроконтроллерная плата с Microchip PIC32MZ EF кажется лучшим кандидатом.
Насколько мне известно, в учебный процесс у нас в стране пошёл Milandr 1986. Это достойный чип, который избавился от «детских болезней». Я с ним работал, хорошее впечатление, периферия, толерантность, ADC/DAC, и платы сейчас в Зеленограде доступны по 4-5 тыс.р. Но для «самоделкиных» STM32 за 200р. вне конкуренции. Смогут ваши платы в 1000р. уложиться?
Насчёт идеи раздельной обработки данных. Сейчас вроде только такой подход и есть. Но вот я знаю, Toshiba сделала на Cortex-M платы с распознаванием образов и, естественно, с периферией и софтом. Т.е. то что другие на ПЛИС делают, Toshiba реализовала на Cortex-M. Я думаю, если Cortex-M7 (или ваш MIPS 32) подешевеет и получит больше памяти и пойдёт в народ, то мы увидим много новых проектов. Хотя мне больше 8051 по душе.
http://toshiba.semicon-storage.com/eu/product/automotive/display-controller/lineup.html
http://toshiba.semicon-storage.com/eu/product/automotive/micro.html
А платформу надо брать ту, для которой есть хороший рантайм для Matlab/Simulink. Так получите наилучшую среду для разработки и тестирования алгоритмов управления роботами.
Следует отметить, что робот, это всего лишь частный процесс, для которого требуется интеллектуальная система управления. И для создания таких и более сложных систем Матлаб применяется уже достаточно давно.
Соглашусь с матлабом и добавлю LabView.
Сколько раз я видел роботов, у которых «зрение» работает на «большом компьютере», а логика самого робота (принятие решений по движению) — на Arduino. Поскольку примеры ребята нашли именно под «старый» восьмибитный контроллер…
В общем — начинайте выбирать с Сообщества — где больше, тот контроллер лучше для Вашей задачи.
Вкратце, дешманская малинка и какой-то Спартан вполне могут управлять парой робоманипуляторов-рук и при этом показывать очень приличные показатели точности и контроля позиции. И при этом не вываливаться за пределы бюджета в пару сотен долларов в железе. Использование аналогичной железки, которая поддерживает RTOS выльется далеко за пределы этого бюджета.
Тогда понятие «серьёзной робототехники» и ROS не особо совместимы. Серьёзные роботы (промышленные, медицинские, от Диаконт для атомной промышленности) не работают под ROS. И никогда не будут. А эксперименты типа пылесосов и прочих мобильных платформ, заточенных под «свободу действий» это пока не особо серьёзно. Было бы интересно, если бы ROS была менее требовательна к железу, но и тут пичаль.
ИМХО тупиковое направление. Я бы не стал на этой основе строить учебный процесс.
«ИМХО тупиковое направление. Я бы не стал на этой основе строить учебный процесс.»
После такого заявления можно сделать вывод, что вы либо слабо понимаете что такое РОС, либо слабо понимаете современную робототехнику. Сейчас никто не пишет SLAM или другие серьезные вещи с нуля на коленке. Под этим я и понимал «серьезную» робототехнику.
Вот тут дан хороший ответ по поводу ROS и Matlab.
http://answers.ros.org/question/56721/ros-vs-matlabwhich-is-best/?answer=56859#post-id-56859
«I see MATLAB (Octave or Scilab) as a great tool for the prototyping phase…
After this phase there is the system development phase (design and implementation).
In this phase you design and implement the code you have prototype in MATLAB and other functionalities that are necessary to make your system work.
ROS provides this functionality out-of-the-box, and a lot of extra components ready to use.»
И не надо передёргивать, я не говорил о написании чего-то «с нуля», и понятие «серьёзности» это далеко не использование готовых фреймворков, а стоимость техпроцесса, в котором участвует робот. Если для вас серьёзность заключается в том, что на пылесосе стоит РОС и пылесос распознаёт кота, то у нас разные понятия о серьёзности.
Те роботы, с которыми мне приходилось сталкиваться работали на ПЛК производителя, программировались на примитивных языках типа LD/FBD/etc, изредка приходилось поднимать из могил старинные манипуляторы, оснащать их новыми сервоприводами и рулить логику работы на NI SbRIO через LabView. ничего экстраординарного типа «найти выход из безвыходной ситуации с помощью нейросети» не было, просто траектория + иногда машинное зрение (определить позицию и наличие перемещаемого компонента). но все эти операции требовали максимальной точности, повторяемости и бесперебойной работы. ибо косяк в работе системы чреват потерей иногда жирного бабла. В таких случаях ессно никто не будет использовать ни рос, ни какие-то иные решения, которые имеют массу непонятно как работающего кода. то как с LinuxCNC — система крутая, гибкая и всё такое, но почему-то EMG ставят на свои станки FANUC.
В общем случае выбор средств, платформы, и методов разработки зависит от требований к самой системе, начиная от функциональных требований, требований к надежности и заканчивая ценой конечного изделия и стоимости разработки/времени, потраченного на проект. Поэтому даже для робототехнических проектов, из-за последних требований, реализация может быть разной — от ардуины и до промышленных контроллеров за 10 тыс баксов.
Лично для лаборатории робототехники или платформы для обучения я считаю важным, чтобы средства охватывали максимально возможный спектр приложений. Чтобы студенты учились на чем-та таком, что применяется в реальных системах и в конце концов получали знания, которые потом могли бы применить в будущем в работе и карьеры.
С этой точки зрения, как уже указали, промышленные ПЛК уже сами по себе являются неплохим желехом для лаборатории — даже если робота не получится создать, общие принципы создания хард-реал-тайм систем привьются конкретно. Но если стеснены в средствах, то подойдет и распберри.
Саму софтверную платформу — операционки, драйвера, интерфейсы связи я даже не рассматриваю — тут такой разнобой, что принуждать студентов изучать все это не имеет смысла — потеряете время и суть, а робота не сделаете.
Поэтому следует сконцентрироваться только на средствах разработки, программирования и тестирования управляющих алгоритмов. Лично для меня в этом деле Матлаб/Симулинк вне конкуренции. Вы моделируете свой алгоритм у себя на компьютере, а потом загружаете сгенерированный код в железо, где он исполняется в реальном времени и делает то же самое, что и в модели — вот и есть краткая суть процесса разработки в данном случае.
Данный подход (называется Model Based Design) применяется в промышленности, автомобильной электронике, самолетах, роботах и т.д уже вот уже как десятилетие и позволяет достичь значительного сокращения времени разработки управляющего софта при меньшей квалификации программиста. Точнее программист становится не нужен. Все делает сам разработчик алгоритма.
Ну и еще одно преимущество — вы можете начать делать свои алгоритмы для роботов с ардуино и распберри, а закончить сверхнадежной системой управления для HVDC — и все с одной средой.
Со студентами вроде все понятно. А как быть со школьниками? Что им давать когда из лего уже выросли, а матлаб рано? Может есть некий «Matlab or kids»? Хотя признаю, это наивно
Какие из данных платформ подходят для лаборатории робототехники и интеллектуальных систем?