?

Log in

No account? Create an account
Какие из данных платформ подходят для лаборатории робототехники и интеллектуальных систем? - Юрий Панчул [entries|archive|friends|userinfo]
Money can buy bandwidth. Latency requires bribing God.

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Какие из данных платформ подходят для лаборатории робототехники и интеллектуальных систем? [Jun. 17th, 2016|01:06 am]
Yuri Panchul
Господа! У меня уже две различные организации спрашивали совета про оборудование лаборатории роботики. Причем не для младших детей, а для старших школьников + младших студентов, с возможностью расширения до старших студентов и исследовательских проектов. То есть ожидается, что в лаборатории будут использоваться профессиональные средства разработки, а не упрощенные, наподобие Лего и недостаточно гибкого Ардуино. Кроме этого, ожидается, что роботы будут делать что-нибудь умное, с распознаванием образов и ситуаций, чтобы можно было бы назвать "лаборатория робототехники и интеллектуальных систем".

По этому поводу у меня два вопроса:

1. Ниже я перечислю несколько платформ, которые я собираюсь привезти в августе в Казахстан и в октябре-ноябре в Россию и Украину. Я знаю, что на большинстве из этих платформ кто-нибудь да построил робота. Но каких из этих платформ подходят для роботики с вашей точки зрения?

2. У меня не очень много опыта с моторчиками и другими активаторами. Где из лучше покупать? Что бы вы купили для преподавания робототехники (как специализации программирования встроенных систем)?


Платформы у меня на руках:

1. Onion Omega на основе ядра MIPS 24K, которое балансирует приемлемую производительность при низком энергопотреблении, и при этом на нем может работать Linux (в MIPS 24K 8 стадий in-order, конвейера, есть TLB MMU, кэши, предсказатель переходов):





2. VoCore - еще более миниатюрный линуксный компьютер с WiFi на MIPS 24K:





3. Unwired One - спроектированный в России линуксный компьютер на MIPS 24K





4. MIPS Creator ci20 - более высокопроизводительный (но и более энергопотребляющий) компьютер с MIPS32 Ingenic CPU и PowerVR GPU:





5. Digilent chipKIT Wi-FIRE, микроконтроллерная плата с Microchip PIC32MZ EF на основе ядра MIPS M5150. В том же классе, что и ARM Cortex M4, но мощнее - с кэшами, TLB MMU, FPU и виртуализацией для секьюрити:





6. Olimex PIC32-EMZ64, более дешевая плата с Microchip PIC32MZ EF. Без WiFi, но зато с экранчиком и звуковым выходом:



7. Новинка сезона - встроенный компьютер MIPS Creator ci40 с ядром MIPS interAptiv c хардверной поддержкой многопоточности на каждом из ядер. Хотя процессорных ядер два, но многоядерный Линукс воспринимает их как четыре, так как каждое из двух ядер внутри обрабатывает два потока команд - hardware-supported multithreading. Пока один tread ждет во время промаха кэша, другой может работать - этим достигается бОльшая загрузка процессора. В конечном итоге, такая структура приводит к экономии энергопотребления по сравнению с системами с бОльшим количеством однопоточных ядер:



Также замечу что можно построить робота на российском микропроцессоре Baikal-T с мощным двухядерным out-of-order кластером процессорных ядер MIPS P5600, и плата с этим процессором есть у меня на руках, но эта плата пока недостаточно массовая, чтобы использовать ее в качестве роботехнической платформы в большом количестве вузов.


Какие платформы выбрать для лаборатории робототехники и интеллектуальных систем?

Onion Omega
1(7.7%)
VoCore
1(7.7%)
Unwired One
1(7.7%)
MIPS Creator ci20
1(7.7%)
Digilent chipKIT Wi-FIRE
2(15.4%)
Olimex PIC32-EMZ64
1(7.7%)
MIPS Creator ci40
2(15.4%)
Baikal-T
3(23.1%)
Из-за бугра плюете?
1(7.7%)
LinkReply

Comments:
[User Picture]From: craftwr
2016-06-17 08:09 am (UTC)

Вариантов намного больше.

(Reply) (Thread)
[User Picture]From: panchul
2016-06-17 08:21 am (UTC)
Я знаю, я спрашиваю про устройства, которые лежат у меня на столе и которые я хочу проверить на соответствие цели (пригодность для лаборатории роботики).
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: b00ter
2016-06-17 08:26 am (UTC)
Вышеперечисленное отличные устройства, но незаконно забыт LinkIt Smart 7688, а он того стоит.

Набор деталек и икарнация Duo стоит 60 баксов в сумме.
http://www.seeedstudio.com/item_detail.html?p_id=2574
http://www.seeedstudio.com/item_detail.html?p_id=2551

Истово рекомендую.
(Reply) (Thread)
[User Picture]From: panchul
2016-06-17 08:44 am (UTC)
О, спасибо
(Reply) (Parent) (Thread)
[User Picture]From: suvorow_
2016-06-17 10:24 am (UTC)
Не активаторами, а актюаторами!!! Стыдно, Юра!
А для роботики лучше всего подходит Галилео.
(Reply) (Thread)
[User Picture]From: sergegers1
2016-06-17 11:21 am (UTC)
Юрий, а что такое поддержка многопоточности процессором? Я думал - это ОС делает.
(Reply) (Thread)
[User Picture]From: panchul
2016-06-17 03:54 pm (UTC)
ОС поддерживает soft threads, переключая между ними контекст во время обработки прерывания от таймера. Обработчик прерывания сохраняет регистры одной soft thread в памяти, восстанавливает регистры другой soft thread, и передает на нее управление (восстанавливая program counter).

С hard thread прерываний не нужно. Процессор MIPS interAptiv сам хранит несколько копий регистров и несколько копий program counter в каждом из процессорных ядер, и ядро все время принимает решение, из какого thread ему прочитать, декодировать и выполнить инструкцию. Когда в одном hard thread затык (наприпер ждет десятки тактов данные из памяти во время промаха двухуровневого кэша), другая thread может работать.
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: oppad1
2016-06-17 12:11 pm (UTC)
кто же МИПС посоветует. нужно брать АРМы - для школьников Cortex-M4 самое то, в каком-нибудь STM32F.
полно дешевых плат discovery, в удобном для моделек форм-факторе, все есть, среды разработки разные и хорошие :).
но вопрос же с подвохом - нужно МИПС - тогда какой-нибудь элвисовский чип - школьники получат суровый урок и будут заниматься чем-то более целесообразным в российских реалиях
(Reply) (Thread)
[User Picture]From: andrey_yurin
2016-06-17 02:45 pm (UTC)
А можно ламерский вопрос?
Вот пишу я программу для MCU на каком-нибудь Си. Переменные, массивы, циклы, условия. Ну библиотеки внешние или ещё что подобное. Вопрос - а какая разница ARM это будет или что другое? Не. Я так-то понимаю, что код можно писать по разному. И можно его пробовать подстроить под быстродействие на заданной архитектуре. Но это уже больше касается ассемблера, всётаки. А если программа не шибко сложная, а скорости в процессоре вполне хватает. То какая разница с точки зрения того же Си что за архитектуру использовать?
(Reply) (Parent) (Thread) (Expand)
[User Picture]From: freedom_of_sea
2016-06-17 02:02 pm (UTC)
нужна нейросеть в такой лабе, но х з из чего её сделать
(Reply) (Thread)
[User Picture]From: panchul
2016-06-17 04:15 pm (UTC)
Может FPGA сбоку прикрутить?

А если делать нейросеть в софтвере на процессоре, то какая производительность процессора ныне считаются пригодной для нейронных сетей?
(Reply) (Parent) (Thread)
[User Picture]From: nicka_startcev
2016-06-17 05:32 pm (UTC)
64мб рам, 16мб флеш - это выглядит как роутер 10-летней давности, которому красная цена долларов 20.
а если сравнивать с разбери пи - то совсем грустно смотрится.

пошевелить сервомашинками - это еще нормально (да и то, скорее всего, придется вешать буфера-переходники с 3.3 на 5в), а как начнешь хоть минимальную обработку видео пихать, так сразу резко упрешься в ограничения по памяти, скорости. и почти наверняка в закрытость спеков на акселераторы/сопроцессоры.

то есть, для разработки 2006 года это неплохо, но в 2016 оно выглядит очень-очень странно.

то есть, навскидку, "мозги для робота" я вижу примерно так
1. если уж делать, то делать нормально. на недорогой, но современной электронике
2.если целиться в замену восьмибиток, то тут оно смотрится неплохо, но, блин, выводы платы должны быть стойкими и к 5в и к 3в
3. если делать именно центральный мозг для робота, а не мелкий нервный узел, то тут надо порядка гигабайта рам и флеш и порядка гигабайта диска. это недорого на общем фоне но сильно уменьшает геморройность отладки
4. а как у них с проводной низколатентной связью (в пределах тушки робота)? если их пихать пачку в одного робота, то нужно что-то типа мадбаса/уарта, чтоб этак мегабит и латентность заметно лучше миллисекунды.
(Reply) (Thread)
From: abanamatov
2016-06-17 07:46 pm (UTC)
Согласен, STM32 намного лучше подходит для обучения. Посмотрите mbed, там есть много вариантов железа. Начинать можно с mbed, а потом плавно переходить к профессиональной среде разработки. Железо остается тем же, а у Cortex до фига всего на борту есть.

Edited at 2016-06-17 07:47 pm (UTC)
(Reply) (Thread)
[User Picture]From: panchul
2016-06-18 01:51 am (UTC)
Что за дурацкое "согласен" в начале предложения? Попытаться сделать вид для случайного читателя, что я якобы написал то, что вы написали ?

Далее, c чего вы решили, что якобы "STM32 намного лучше подходит для обучения"?

Приведите пример аналога курса Embedded MCU ( https://habrahabr.ru/post/282001/ ), но не для PIC32MZ , а для STM32. Чтобы было введение не только в лампочками помигать, но и в RTOS-ы, основы архитектуры встроенного процессора, фунциональность кэшей и т.д.

Этот mbed это что - упрощенная development system для хоббистов? А зачем это в вузе, в вузе нужно сразу давать курс с профессиональными тулами для разработчиков.

*** Cortex до фига всего на борту есть. ***

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

Процессорное ядро MIPS microAptiv UP в микроконтроллере Microchip PIC32MZ EF - превосходит соотвествующее ему процессорное ядро ARM Cortex M4 в микроконтроллерах STM32 F4 (по производительности и features), а периферия что там, что там достаточно богатая.


Edited at 2016-06-18 02:06 am (UTC)
(Reply) (Parent) (Thread)
[User Picture]From: h2010
2016-06-19 12:34 am (UTC)
Я имел дело с Digilent chipKIT Wi-FIRE, который заказал после прочтения статьи в этом блоге, сделал домашний проект робота-кэтситтера с доступом через интернет. Достаточно легко прямо на плате удалось реализовать сервер для управления моторчиками и выдачей всякой диагностики. Я открывал TCP-сокет и через роутер с NAT и dyndns имел доступ извне без сервера-посредника.

А вот видео систему для робота мне пришлось сделать отдельно при помощи ip-камеры. Возможностей для интерактивной обработки видео на этой плате вроде как недостаточно. Как же вы тогда будете распознавать образы?

Прочие недостатки, на мой взгляд:
Очень много нюансов по питанию; ограниченная совместимость 3.3/5v. Многие просто спаливают плату. Еще я так и не смог разобраться с режимом сна (он вообще есть? инструкция не дает ясного ответа), с режимом низкого потребления; я также не смог программно выключить плату, а ведь для литий-ионных батарей это критически важно. Хочется также еще и включать ее извне, например, по сигналу таймера или wifi - вроде интернет вещей это должен предусматривать. И комьюнити у Chip Kit небольшое - у кого спрашивать? Понятно, что я очень начинающий в этой области, но с этими проблемами придется столкнуться и студентам.

Если кто-нибудь решал эти вопросы, буду рад советам и рекомендациям.

Edited at 2016-06-19 12:50 am (UTC)
(Reply) (Thread)
[User Picture]From: adilbek
2016-06-19 03:58 pm (UTC)
Почему в Казахстан едете? А куда именно в Казахстан?
(Reply) (Thread)
[User Picture]From: alexey_zharikov
2016-06-20 01:19 am (UTC)

Гигробот

Мы с тобой в детстве в кинотеатрах Киева явно одни и те же мультфильмы смотрели!

А "антиреклама" Кока Колы в этом мультфильме всё равно лучше!
(Reply) (Thread)
[User Picture]From: nervfish
2016-06-25 10:11 pm (UTC)
ваш пост произвел некоторый "импакт" среди тех, кому он предназначен ) то есть, людей поставляющих хард и софт для лабораторий робототехники. Приведу пример комментариев вашего поста (человек сам комментировать не захотел), возможно, вам пригодится:

"а тратить 90% времени лабы на сборку opencv на мипс - дело неблагодарное"

" ну вот и собирай всё это говно сам на странную платфому, а я лучше apt-get
а так же переписывай все учебные методички
школы и кружки не покупают сами в магазинах отдельные платы
они покупают полный ящик железок, методичек и разрешений от местных образовательных органов
т.е инженерно идея то у панчула неплохая, но робокружки на 90% состоят не из этого"

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

"на деле разница актуальна только когда важны "особенности" плат, типа встроеный в ST32 USB или CAN, или аппаратный счётчик квадратурного энкодера
или, как в юникоре, хитрый DSP для быстрого перемножения (для прекрасной реализации свёрток)
а в остальное время я бы предпочёл тулсет-поддержку-комьюнити, при прочих равных"

(Reply) (Thread)
[User Picture]From: panchul
2016-06-25 10:29 pm (UTC)
Спасибо за input!
(Reply) (Parent) (Thread)