roboforum.ru

Технический форум по робототехнике.

Робототехнический IDE (интегрированная среда разработки)

Робототехнический IDE (интегрированная среда разработки)

beep_beam » 31 дек 2020, 01:50

Всем привет,
Тема автоматного программирования ( AP, АП) уже много лет занимает заметное место в научно-популярных СМИ. Однако, несмотря на это, АП не стало магистральным трендом. Главная причина здесь — недостаточный опыт использования, и как следствие, отсутствие популяризаторов. Нельзя сказать, что недостаточно статей посвященных АП, но круг обсуждаемых в статьях вопросов по большому счёту сводится к описанию FSM (, т.е. теории конечных автоматов, а не инструкциям по работе с ними, либо к вопросу «Как реализуются программные автоматы?». Это печально но факт, отсутствует обсуждение того, какие перспективы для разработчиков - широкого инженерного сообщества открываются при использовании данной технологии.


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

Итак IDE (Integrated Development Environment) на базе ПК x86 с минимальной конфигурацией:
Quad Core 1.8 GHz processor, 2-4GB RAM and 32-64GB onboard flash memory.
В моем случае это одноплатный SBC от китайского производителя LattePanda
Что не есть минимальный предел для того о чем пойдет дальше речь.
В качестве OC можно устанавливать финальную версию Win 10(LTSC x64) или одну из последних сборок Linux.

А речь пойдет о специально разработанной инструментальной IDE платформе, (период разработки 2017 - 2020г) в концепте которого заложена демократизация широкой аудитории
разработчиков - интеграторов, которые с одной стороны нуждаются в универсальной (не хоббийном) R&D софт программно аппаратной лаборатории, состоящей из ПК IDE, а так же механических узлов, электронных модулей, драйверов сенсоров, преобразователей, генераторов, сенсоров, приводов и т.п. для профессионального прототаипинга.
С другой стороны эта категория отраслевых специалистов, не владеющих навыками программирования, студентов, стартапов, инжиниринговых многоотраслевых фирм и т.п. все еще ждут свой заветный инструментарий c минимальными требованиями к PC архитектуре, в комплекте с I/O USB интерфейсом, с возможностью выбора на свой вкус OС.

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

И наконец самый важный ключевой момент - в этом кейсе в отдельном отсеке положить инсталяционную флешку с фирменным наименованием продукта, а рядом I/O стартовый модуль к примеру 10/16. Так же и не исключаю еще 1 отсек для SBC одноплатника с предустановленной OС и IDE платформой, присутствует в виде инсталянта на флешке (но можно и через онлайн с сайта продукта), блок питания для одноплатника и поехали...

IDE, по своей парадигме, базируется на автоматном программировании и давно готова, больше того, она имеет одноименное название BEEPTOOLKIT, успешно провалидирована в коммерческих проектах (Медицина, Hi-Tech, научая сфера в области лазерной оптики, автомобилестроение) и на данном этапе ведется активный нетворкинг на онлайн площадках с целью масштабирования, популяризации и установления стратегического партнерства.
Что из себя представляет автоматное программирование, можно понять из этого видеоролика, где метод простыми словами раскрыт на примере машины Тьюринга:


С деталями проекта, ознакомительными и образовательными видеоматериалами можно ознакомиться на сайте продукта (англ).
BEEPTOOLKIT.

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

К слову, в ближайшее время будет представлена обновленная версия BEEPTOOLKIT, в которой выполнен пересмотр в пользу реалистичного корпусного решения. Что по нашему мнению,
позволить изменить пользователям восприятие IDE без необходимости в растянутых описаниях.
Последний раз редактировалось beep_beam 19 сен 2023, 13:00, всего редактировалось 10 раз(а).

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

Виктор Казаринов » 05 янв 2021, 20:24

beep_beam писал(а):Гоним так:
OUT - так PC (RAD)+ генраторы I2C>Драйвер устройства 1...4 USB>ADC>1...60 физических адреса двоичной логики
IN - так PC (RAD)> UART USB(COM2...256)>ADC>10 каналов на каждый ADC 0.001 - 3.000V.

Где тут ШИМ?
И что такое генераторы I2C?
И что такое ADC? https://en.wikipedia.org/wiki/Analog-to-digital_converter ?
Если так, то как с этим стыкуется ваше утверждение: "USB>ADC>1...60 физических адреса двоичной логики"?
Я, конечно, не претендую на сверхсообразительность, но могли бы вы более подробно пояснить эти цепочки сигналов (OUT, IN), как это устроено в вашей системе?

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

esisl » 05 янв 2021, 22:01

Видимо не ADC, а DAC?
Т.е. с контроллера идёт код уровня + адрес устройства. А то я уж перепугался :D

Робототехнический фреймворк

beep_beam » 05 янв 2021, 23:04

Виктор Казаринов писал(а):Где тут ШИМ?
И что такое генераторы I2C?
И что такое ADC? https://en.wikipedia.org/wiki/Analog-to-digital_converter ?

Верно, это АЦП.
Если так, то как с этим стыкуется ваше утверждение: "USB>ADC>1...60 физических адреса двоичной логики"?
Я, конечно, не претендую на сверхсообразительность, но могли бы вы более подробно пояснить эти цепочки сигналов (OUT, IN), как это устроено в вашей системе?


Неверно отобразил иерархию последовательностей:
I2C - реализован на программно аппаратном уровне (китайская репликация в.у. контроллеров) на ШИМ дешифраторе. На выходе дешифратора имеем 16 каналов двоичной логики, часть этих каналов можем применять для каскадного переключения аналогичных 4-х модулей IN, где 1 модуль задействован в качестве программного селекторного переключателя дополнительных модулей. В конечно итоге такой метод позволяет расширить количество физических адресов по выходам до 60 посредством до 4 резервируемых выходных каналов на каждом модуле. Если все же мало что понятно, буду рисовать :(
Последний раз редактировалось beep_beam 21 мар 2023, 13:12, всего редактировалось 4 раз(а).

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

Виктор Казаринов » 05 янв 2021, 23:12

beep_beam писал(а):Если все же мало что понятно, буду рисовать :(

Да, лучше нарисуйте, пожалуйста.

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

esisl » 05 янв 2021, 23:27

beep_beam писал(а):На выходе дешифратора имеем 16 каналов двоичной логики, часть этих каналов можем применять для каскадного переключения аналогичных 4-х модулей IN, где 1 модуль задействован в качестве селекторного переключения дополнительных. В конечно итоге такой метод позволяет расширить количество физических адресов по выходам до 60 посредством до 4 резервируемых выходных каналов на каждом модуле.


Я правильно понимаю, что такое решение продиктовано желанием удешевить "конструкцию"? Чтобы не совать контроллер в каждый узел?

Робототехнический фреймворк

beep_beam » 05 янв 2021, 23:46

esisl писал(а):Я правильно понимаю, что такое решение продиктовано желанием удешевить "конструкцию"? Чтобы не совать контроллер в каждый узел?

Это продиктовано методом формирования сигналов контроля для выходного модуля со стороны RAD и да, увеличением стоимости.
Хотелось бы больше и по другому, мы перепробовали другие методы и типы дешифрации по отношению к тому что недорогое и готовое, к примеру игрались и с этим PCA9685 — 16-канальный 12-битный PWM/Servo модуль с I2C интерфейсом, но после многочисленных программных экспериментов, RAD значительно прибавляла в весе и прожорливости, в конечном итоге ведет к недопустимому росту бюджета.
В случае с входными модулями решение оптимальное. Мы можем при необходимости малой кровью наращивать конфигурацию, благо в арсенале имеется до !256х10 USB RS232 (теоретически) хабы такие имеются в продаже, можно к примеру создавать мега сбор параметрических данных с трансляцией в облако в реальном времени. Максимальное количество которое у нас прошло валидацию - 100 каналов, больше нет железа чтоб понять предел.
Последний раз редактировалось beep_beam 21 мар 2023, 13:12, всего редактировалось 1 раз.

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

Виктор Казаринов » 06 янв 2021, 00:16

beep_beam писал(а):В случае с входными модулями решение оптимальное. Мы можем при необходимости малой кровью наращивать конфигурацию, благо в арсенале имеется до !256х10 USB RS232 (теоретически) хабы такие имеются в продаже, можно к примеру создавать мега сбор параметрических данных с трансляцией в облако в реальном времени. Максимальное количество которое у нас прошло валидацию - 100 каналов, больше нет железа чтоб понять предел.

Вы меня пугаете таким USB беспределом. USB2, если вы о нем говорите, не облаает большой пропускной способностью и никогда не был интерфейсом реального времени. Короче, жду рисунков, т.к. в голове легкая каша.

Робототехнический фреймворк

beep_beam » 06 янв 2021, 02:23

Виктор Казаринов писал(а):Вы меня пугаете таким USB беспределом. USB2, если вы о нем говорите, не облаает большой пропускной способностью и никогда не был интерфейсом реального времени. Короче, жду рисунков, т.к. в голове легкая каша.

Не стоит пугаться, USB интерфейс во всем своем многообразии поддерживаемых протоколов, а так же все возрастающее количество разнообразных конвертеров, имеет вполне широкое применение в Real Time коммуникациях, включая индустриальные SBC и не только, а с появлением USB-4 он будет набирать еще большую популярность. Важно чтоб метод коммуникаций не влиял на целостность сигналов, стабильность и параметры. Сегодня самые популярные среди эмбеддеров CPU для DSP контроллеров несут на себе USB интерфейс с драйверами в сторону UART USART.

Меня пугает другое, ряд некоторых производителей однолатников умудряется на боарды ставить ардуиновские микроконтроллеры и GPIO выводами. При этом они устанавливают на них OS Win 10 десктопных версий и скетч редактор Arduino.
Что свидетельствует о скудости этих формфакторных решений в своих предложениях для широкой аудитории. NVIDIA пошли в сторону создания своей "ROS", для своей встраиваемой платформы Jetson с GPU NVIDIA на борту.

Здесь выставляю дизайн платформы с вариантами коммуникаций не вдаваясь в подробности протоколов обмена ADC по отношению к PC.
Все же прокомментирую блок схему:
Платформа поддерживает 160 портов - автоматов, на которых можно строить комбинации сценариев до 60 каналов выхода и более 160 каналов входа.
Стартовая конфигурация I/O это 10 входных и 16 выходных с возможностью построения сценариев обращения к ним на 160 портах.
Вложения
Design.jpg
Последний раз редактировалось beep_beam 21 мар 2023, 13:12, всего редактировалось 1 раз.

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

Виктор Казаринов » 06 янв 2021, 09:42

beep_beam писал(а):USB интерфейс во всем своем многообразии поддерживаемых протоколов, а так же все возрастающее количество разнообразных конвертеров, имеет вполне широкое применение в Real Time коммуникациях, включая индустриальные SBC и не только, а с появлением USB-4 он будет набирать еще большую популярность. Важно чтоб метод коммуникаций не влиял на целостность сигналов, стабильность и параметры. Сегодня самые популярные среди эмбеддеров CPU для DSP контроллеров несут на себе USB интерфейс с драйверами в сторону UART USART.

Насколько мне известно, существует специальный вид реалтайм USB. Но у него особый стек протоколов, который недоступен в обычном PC и, думаю, во всех тех устройствах, что вы применяете в своей RAD. Поэтому как-то я сильно сомневаюсь в промышленном применении обычного USB бытового назначения.https://www.hwp.ru/articles/Vibiraem_promishlenniy_USB_hab_na_primere_produktsii_Orico_148782/ Цена таких устройств совсем недетская.
Мне доводилось применять USB в промышленных станках. И скажу сразу, я не смог с этим типом связи добиться требуемой помехоустойчивости и восстановимости после сбоев. Возможно, у вас есть какое-то волшебное решение.
beep_beam писал(а):Здесь выставляю дизайн платформы с вариантами коммуникаций не вдаваясь в подробности протоколов обмена ADC по отношению к PC.
Все же прокомментирую блок схему:
Платформа поддерживает 160 портов - автоматов, на которых можно строить комбинации сценариев до 60 каналов выхода и более 160 каналов входа.
Стартовая конфигурация I/O это 10 входных и 16 выходных с возможностью построения сценариев обращения к ним на 160 портах.

Эта блок-схема не вносит ясности в мое понимание вашего интерфейса. Если ADC - это аналого-цифровой преобразователь, то что он тут преобразует? Обычно ADC - это то, что преобразует аналоговый сигнал в цифровой. Принято считать, что аналоговый сигнал в этом случае идет на вход процессора, т.е. в вашем случае это IN. Но у вас и на OUT стоит ADC. Наверное, это DAC? Хорошо. Если все так, то где тут цифровые входы и выходы? И куда тут можно прикрутить шаговые двигатели с их ШИМ?

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

esisl » 06 янв 2021, 12:09

PCA9685 - штука откровенно хиленькая. Я не уверен, что оно вообще применимо в промышленных целях.

А что до USB - "...не знаю, не знаю. Может быть." (с) А если надо снимать показания за сотню метров, и управлять какой-нибудь лебёдкой?

Робототехнический фреймворк

beep_beam » 07 янв 2021, 15:55

Похоже хост сервер поднялся, можно продолжить.
Виктор Казаринов, и esisl  писал(а):Эта блок-схема не вносит ясности в мое понимание вашего интерфейса. Если ADC - это аналого-цифровой преобразователь, то что он тут преобразует? Обычно ADC - это то, что преобразует аналоговый сигнал в цифровой. Принято считать, что аналоговый сигнал в этом случае идет на вход процессора, т.е. в вашем случае это IN. Но у вас и на OUT стоит ADC. Наверное, это DAC? Хорошо. Если все так, то где тут цифровые входы и выходы? И куда тут можно прикрутить шаговые двигатели с их ШИМ?


В двух словах:

Квинт эссенция нашего метода - программный многочастотный генератор BPSK с преобразованием посредством ADC опорных частот в "1" or "0" на 16 каналов по выходам.
Почему мы так сделали? Sorry, далее я воздерживаюсь погружаться в алгоритм кода платформы, оно собственно конечного разработчика (юзера) не особо должно трогать, он манипулирует в своих разработках устойчивой двоичной логикой. Здесь же и решение вопросов целостности USB обмена.

Поэтому как-то я сильно сомневаюсь в промышленном применении обычного USB бытового назначения.

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

И кое что еще про USB:

Выпуская своё USB устройство в свет компания должна назначить ему идентификатор производителя (vid – vendor id) и продукта (pid – product id, не путать с серийным номером). Формально, уникальность необходима для предотвращения конфликтов между драйверами устройств в ОС. Факт в том, что это скорее один из способов заработать для создателей стандарта, чем единственное возможное техническое решение. Впрочем, осуждать их за стремление заработать на созданном ими же стандарте я, конечно, не буду.
Итак, для производителя периферии есть два пути для получения собственного vid:
единовременно заплатить $2000 за vid
или стать членом USB-IF за $4000 в год.
Для тех, кто не в состоянии заплатить такие деньги, производители чипов предоставляют различные варианты использования их vid и pid:
Atmel. В faq перечислены правила, следуя которым можно использовать vid/pid чипа для своего устройства.
FTDI. Кроме использования встроенных vid/pid, компания предлагает отправить запрос на бесплатное выделение pid.
Microcip также предлагает отправить заявку на выделение pid.
Silicon Labs.  
Те же контроллеры от NI и т.д. и т.п.
В нашем случае мы отдали приоритет таким производителям, которые выбрали иной способ монетизации своих ADC, с предоставлением бесплатных программных USB ID драйверов, а так же SDK для разработчиков, мы и в дальнейшем будем придерживаться такой стратегии в расширении I/O возможностей. В комплекте установочного пакета идет 1 такой драйвер CH341SER для IN модуля.

esisl писал(а):А что до USB - "...не знаю, не знаю. Может быть." (с) А если надо снимать показания за сотню метров, и управлять какой-нибудь лебёдкой?

Конечно USB шнур до хаба 1.5м , далее берем в расчет параметры драйверов устройств, применяем меры трансляции целостности сигналов как и в других контроллерах, не упускаем из вида возможность передачи USB протоколов по "воздуху"... все классически.
Так же не упускаем из вида USB Power Delivery
Если у Вас локальное решение, строим все в одном с одноплатником или планшетом на борту.
Последний раз редактировалось beep_beam 21 мар 2023, 13:12, всего редактировалось 3 раз(а).

Робототехнический фреймворк

beep_beam » 11 янв 2021, 01:11

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

Наблюдаем как оператор заносит поинты перемещения по всем осям, при этом у него идет мониторинг всего процесса на экране.
Принимая во внимание факт считывания угловыми датчиками всего сценария на каждой оси, нетрудно догадаться:
В Бакстере задействованы шаговые двигателя, а весь процесс занесения координат перемещения построен на обратной связи. Данные от угловых
датчиков в процессе обучения считываются (шаговики обесточены) по всей траектории XYZ.
В нашем случае это будет работать аналогично, с той лишь разницей что точки в нужных местах мы фиксируем по показаниям измерений входных каналов к которым подключены энкодеры от каждого привода и нам всего лишь их нужно вносить в поля триггерных значений с одновременным перемещением сустава. Таким образом эти константы будут давать команды на останов или запуск шаговиков в правое или левое направление.
Чем больше манипуляций, тем больше портовых процедур будет задействовано, которых у нас в распоряжении 160. Время работы манипулятора задаем в основном цикле количеством его повторов.
В финале производим сохранение всей операции, не забываем так же в начале и в конце задать нулевое предстартовое положение всех моторов.
Наряду с в.с. количество входных каналов позволяет вести дооснащение и другими датчиками (RGB, расстояния, присутствия, холла и т.п.).
Степень точности перемещений бакстеровских манипуляторов не высока и имеет свою нишевую сферу применения.
Последний раз редактировалось beep_beam 21 мар 2023, 13:13, всего редактировалось 1 раз.

Робототехнический фреймворк

beep_beam » 29 июл 2021, 15:53

С момента последнего здесь комментария прошло более полу года. Я не уверен что сумел здесь до конца ответить на все вопросы и развеять все сомнения приверженцев других платформ, тем не менее вижу, что количество интересующихся посетителей здесь перевалило за 3500.
Передо мной стоит непростая задача ИТ евангелиста в формировании сообщества платформы и то, чем я занимаюсь сейчас, мне не свойственно, т.к. я по образу и подобию DevOps. Многие эксперты призывают меня к большей маркетинговой экспансии и публичным вызовам. Насколько это у меня получается, судить пока некому, т.к. судьями выступают ярые противники, для который я выгляжу отказником от фундаментального кодирования и тех парадигм, которыми промыты мозги от мала до стара. Тем не менее на русскоязычных ресурсах, к примеру таких как habr, администрация решилась на мое право предоставит пробу пера.
Таким образом, продолжение следует.
Пишите, спрашивайте, и т.д.
Последний раз редактировалось beep_beam 21 мар 2023, 13:13, всего редактировалось 1 раз.

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

setar » 29 июл 2021, 17:32

Да нет здесь противников, у нас принято уважать чужой труд.
Ибо делать что то, лучше чем ничего не делать.
Но вот не цеплляет - я сразу писал что не вижу целевой аудитории (не здесь на форуме, а вообще).
Надеюсь что только я, а другие поймут всю глубину идеи и будут применять для себя.

Re: PC NO CODE платформа для роботостроения, автоматики и ещ

dimamichev » 30 июл 2021, 19:12

Читал,читал,еле понял идею - долой МК, всем рулит ПК?


cron
Rambler\'s Top100 Mail.ru counter