roboforum.ru

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

Робот с логикой на основе автоматного программирования

Re: Робот с логикой на основе автоматного программирования

beep_beam » 15 фев 2024, 20:11

В моем понимании и очень кратко - ключевым моментом Switch-технологии является возможность много поточного взаимодействия в параллельных циклах с применением конечных автоматов FSM, когда состояния FSM могут находиться в состоянии ожидания на входе при тех или иных предшествующих событиях и передачей команды на выходе.
https://youtu.be/hFoMia3s4NU?si=NlxsvZsqutVLDr-o

Re: Робот с логикой на основе автоматного программирования

smur » 16 фев 2024, 20:09

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

Re: Робот с логикой на основе автоматного программирования

beep_beam » 17 фев 2024, 04:32

smur писал(а):Уважаемый бип бим, можете как то не так откровенно лезть с рекламой своего проприетарного продукта после каждого моего сообщения? Мне это честно говоря уже очень не нравиться. Если кратко, то Ваше понимание очень ценно, но очень навязчиво. Или я вынужден буду обратиться к модератору.

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

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

Re: Робот с логикой на основе автоматного программирования

smur » 28 фев 2024, 12:44

Для чего я пишу данные посты. Во первых, чтобы обновить в памяти уже сделанное и чтобы найти новые варианты решения построение логики работы автоматизированного устройства. Ну и может кому то это понадобиться. Если пригодиться одному из 1000 это уже хорошо. Отрабатывать логику работы гораздо интереснее на какой то робототехнической тележке с разными датчиками, чем на унылом стенде как на данном видео:
https://cloud.mail.ru/public/YqSV/VWeDuSeGd
Это не я на видео, но начинка стенда моя, один из прототипов. Это вспомогательное электронное устройство для проведения операций на берцовой кости. Там есть несколько магнитных датчиков, управление питанием, управление индикацией, калибровка, обработка ошибок итп. Промышленный прототип работает и принят заказчиком.
Отрабатывать логику работы на таком виде стенда не интересно, а вот на роботе интересно.

Добавлено спустя 13 минут 45 секунд:
Начал работать с metaauto и столкнулся с некоторыми трудностями при преобразовании в код CPP.
https://is.ifmo.ru/projects/metaauto/
Написал по этому поводу письмо Шалыто Анатолию Абрамовичу и получил развернутый ответ на мое письмо, который можно найти по ссылке:
https://vk.com/@1077823-avtomatnoe-prog ... h-ne-ubesh
Там есть некоторые правки в шаблоны metaauto которые нужно сделать для получения правильного кода CPP.

Re: Робот с логикой на основе автоматного программирования

smur » 29 фев 2024, 11:53

Для отладки логики управления роботом, как от внешних команд, так и для самостоятельного движения с учетом датчиков, сделал отладочный вариант в Visio.

Здесь можно найти Visio файлик и jpeg с автоматов:
bibi_automata_win
https://cloud.mail.ru/public/r2yS/UXqN1mTG6

Это для простых действий по выполнению команд - вперед, вправо, влево, назад, стоп, но с учетом имеющихся на борту датчиков касания, расстояния и одометров.

Вот здесь программа для отладки немного переделанная под Windows, правда она под 8.1 версию, тк на этом отладочном компьютере Windows давно не обновлялся, на нем понаставлено много старого софта который обновление на более новые версию не переживет да и сам компьютер старый.

bibi_prog_win
https://cloud.mail.ru/public/MXpV/n9QTx1jfM

Исполняемый модуль под Windows 8.1 собранный на DEV C++ 5.11, проект там же лежит:
BiBi_1.x.exe

Для отладки эта программа выводит логирование состояния и переходов. Параметры во время работы программы можно задавать нажатием на кнопки, описание кнопок есть в main.cpp.

// Клавиша 1 - e1 - Команда Стоп
// Клавиша 2 - e2 - Команда Вперёд
// Клавиша 3 - e3 - Команда Назад
// Клавиша 4 - e4 - Команда Вправо
// Клавиша 5 - e5 - Команда Влево
// Клавиша 6 - e6 - Команда Приостановка
//

// В данной версии будем использовать симбиоз командного и смешанного режимов, в командном режиме нет параметров выполнения команды, нельзя сказать - вперед один метр
// В смешанном варианте можно сказать - вперед один метр
// Переменные Х для полуавтоматического режима (смешанного). В этом режиме должна передаваться команда и параметр, например - вперед один метр
// Переменные X в этом случае сообщают о выполнении команды с выполнением условия указанного в параметре
// В данной версии нет работы в полуавтомататическом режиме тк это отладка логики, есть только реакция на нажитию клавиши для проверки логики работы автоматов
// Команда стоп выполнена "q" такой нет переменной
// Команда вперёд выполнена "w" x32_2_in=1
// Команда вправо выполнена "e" x34_2_in=1
// Команда влево выполнена "r" x35_2_in=1
// Датчика касания правый сработал "t" x20_6_in=1
// Датчика касания левый сработал "y" x20_7_in=1
// Показания радара меньше заданного "u" x20_8_in=1
// Коррекция вперед требуется "i" x32_1_in=1
// Коррекция назад требуется "k" x32_1_in=1 //Была введена эта переменная тк может при коррекции назад нужно отдельная переменная, пока только для красоты: чтобы ее номер был созвучен с номером автомата
// Команда назад выполнена "o" x33_2_in=1

Вывод примера отладочной информации работы логики есть в файле log_example.txt

tic : 2
Старт A20 EVENT = 0
A20 в состоянии 1 запущен с событием e0
A21 в состоянии 1 запущен с событием e0
A21 в состоянии 1 завершил событие e0
A20 в состоянии 1 завершил событие e0

BUTTON 2 PRESSED

tic : 3
Старт A20 EVENT = 2
A20 в состоянии 1 запущен с событием e2
A21 в состоянии 1 запущен с событием e2
A21 перешел из состояния 1 в состояние 2
A32 в состоянии 0 запущен с событием e0
A32 перешел из состояния 0 в состояние 2
z32_2_1 Ф-я Вперёд старт запущена
A32 в состоянии 2 завершил событие e0
z21_2 Ф-я Вперёд запущена
A21 в состоянии 2 завершил событие e2
A20 в состоянии 1 завершил событие e2
Event: 2 Event freeze count: 1

Добавлено спустя 5 минут 11 секунд:
Да, забыл сказать еще про гироскоп, там же еще коррекция движения при получении от гироскопа данных о необходимости коррекции маршрута

Re: Робот с логикой на основе автоматного программирования

beep_beam » 01 мар 2024, 02:55

Собственно в моем дискусе с Анантолием Шалыто, была затронута тема отображения алгоритмов в автоматизации (роботизации) методом составления графов, что по его мнению на сегодня дает исчерпывающий и оптимальный вариант для построения алгоритма процессингов. При этом профессор сетовал на отсутствие по сей день такой IDE которая давала бы возможность интерпретации графов в исходный код под ту или иную ARM MCU архитектуру с компиляцией на одном из популярных машинных языков, как и отсутствие заказов подкрепленных финансированием для найма кодеров, с целью создания среды разработки.
В своих работах я ему продемонстрировал альтернативный подход к автоматному программированию на реальных примерах в автоматике, когда визуальная среда дает разработчикам возможность отказаться от как предварительного построения графов, так и процесса скрипт кодинга, оперируя всего лишь простыми инструкциями настройки состояний конечных автоматов.
Такой подход у Шалыто вызвал множество вопросов и его заинтересовал пример такого автоматного программирования с демонстрацией всех этапов от алгоритмизации до конечного продукта.
В представленном Вами видеоролике с ссылкой на опыт А.А.Шалыто, я пообещал ему представить такой проект, над чем собственно сейчас и работаем.
Это уникальная возможность, о которой и Вы здесь упоминаете - "не абстрактный стенд, а реальное роботизированное решение", которое продемонстрирует весь потенциал автоматного программирования и предоставит дорожную карту к репликации на другие идеи автоматизации и робототехники.
Нам осталось совсем немного, масса времени и ресурсов уходит на мехатронику, на поиск оптимальных с точки зрения затрат на аппаратную часть и оптимизацию управления перемещениями.
Пришлось буквально изобретать колесо с нуля, т.к. многих механических решений в готовом исполнении не существует и это был мозговой штурм по созданию нашего дозатора, по динамике вспомогательных действий актуаторов, выбор между типами датчиков по их надежности и минимальном наборе.
Что важно, так это тот факт, что у меня нет сомнений, что та или иная часть управления, ограничит проект слабой или невыполнимой процессорной архитектурой, языковой репликацией сложного алгоритма под длинную цепочку сценария. Благодаря свитч технологии нашей IDE все эти проблемы, для меня не проблемы.
Таким образом рабочий прототип уже на 90% готов, ведутся процессы отладки, юстировки, работа над дизайном и эргономикой, включая и документирование, а как без него.

Re: Робот с логикой на основе автоматного программирования

smur » 23 мар 2024, 14:14

Стендик на небольшой роботележке сделан. Добавлена запись "Проект BiBi. Часть 9."

https://vzikblog.wordpress.com/

Текст размещенный в части 9:

Описание роботележки было дано в "Проект BiBi. Часть 7."
Автоматы реализованы в самом базовом варианте. Описание автоматов и программу для Arduino можно найти по ссылке:
https://cloud.mail.ru/public/pyF1/kFxFyXR7z

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

Проект можно считать успешным в базовом варианте.
Далее можно на имеющиеся автоматы "навешивать" дополнительный функционал, как то - одометры, дополнительные датчики расстояния и другие. Так же предусмотреть передачу обработанных показаний на более высокий уровень контроля движения. Можно по запросу отдавать показания датчиков. Дополнительный функционал будет несложно встроить в уже отлаженный вариант имеющихся автоматов. Так же будет довольно просто переделать программу с Arduino Atmega 328 варианта на любой другой контроллер и IDE так как логика задается на уровне программы сгенерированной на языке С и легко встраивается в другие языки программирования микроконтроллеров.

Re: Робот с логикой на основе автоматного программирования

beep_beam » 25 мар 2024, 00:39

Так же будет довольно просто переделать программу с Arduino Atmega 328 варианта на любой другой контроллер и IDE так как логика задается на уровне программы сгенерированной на языке С и легко встраивается в другие языки программирования микроконтроллеров.

Здесь честно говоря лично мне не понятно и не все так прозрачно с Вашим SDK для встраивания такого исходника на Си в качестве библиотечного? блока в том виде, в котором Вы его готовы раздавать если к примеру IDE, тот же ROS или нечто под Python, Matlab, LabView или какая либо SCADA... как понимаю Вам нужно под каждую IDE дать в разных языковых форматах представление регистровых значений (Object List) с их описаниями, или предложить какой то шлюз для декодирования Вашего исходника в другие языковые IDE.
Есть здесь еще одни грабли, в плане что при передаче кода на Си к высокоуровневым языковым компиляторам, код становится более требовательным к процессорной части, памяти, частоте, питанию и т.п. Проводили ли Вы для себя такие эксперименты с Atmega/STM/ESP/Texas Instrument и т.п.

Re: Робот с логикой на основе автоматного программирования

smur » 25 мар 2024, 10:06

Уважаемый Бип Бим, ни о каком моем SDK речи не шло. Если Вы внимательно ознакомились с подходом Автоматного программирования разработанного Шалыто Анатолием Абрамовичем и ссылки на который Вы даете постоянно из Вашего видео и проч. как на источник, Вы это должны прекрасно понимать. Целью данной активности было показать возможность использования подхода для программирования самодвижущихся роботележек чтобы упростить процесс разработки алгоритмов при использовании многочисленных датчиков. Сначала я пробовал самостоятельно писать программу придумывая разные там диспетчеры команд итп, но потом, когда при наличии нескольких датчиков время на отладку и поиск ошибок стало занимать очень много времени при любом несложном изменении логики системы, то стал искать разные вариант подходов к программированию систем со сложным поведением и о чудо! - нашел ресурс на ИТМО по Автоматному программированию. Далее, изучив теорию и просмотрев разные варианты реализации на том же ресурсе, стал применять подход на практике. Время разработки, поиска ошибок, трудоемкость при изменении логики поведения системы сократилась в разы! И я решил поделиться своим опытом с широкой аудиторией, чтобы люди могли ознакомиться с данным подходом если они о нем еще не знают.
По поводу реализации и других особенностей генерации кода нужно просто быть в теме, то есть изучить теорию. Я вообще не понимаю, как Вы могли ссылаться на труды мною глубоко уважаемого Шалыто А.А. если здесь Вы почему то мне задает вопросы прекрасно разобранные в многочисленных публикациях и трудах на ресурсе ИТМО. Советую Вам внимательно с ними ознакомиться, чтобы не обсуждать проблему беспредметно.
И да! Здесь показан процесс построения логики работы, отладки и реализации с записью итогового видео.
А теперь, уважаемый Бип Бим, перемещаемся на Ваш ресурс! Вы же просили от меня предоставить рабочий образец, вот он! Работает! Теперь уже от меня алаверды, так сказать, А где Ваш работающий образец и описание процесса построения алгоритма для него? И просьба, сюда не писать по Вашему IDE. Давайте про Ваше изделие общаться на Вашем ресурсе. И Вы там покажете, как Ваш продукт встраивается куда нибудь. Ну, если Вы упомянули ROS, ну пусть будет ROS, там удобно всякие интерфейсы взаимодействия между разными модулями строить. Ну а я потом в отдельной теме займусь (если время будет) встраиванием роботележки с процессором, эээ, ну пусть будет STM, с логикой написанной на парадигме Автоматного программирования, в более высокоуровневый контроллер движения под каким нибудь более мощным процессором. Хода за Вами! Бип Бим! Ждемс!

Re: Робот с логикой на основе автоматного программирования

beep_beam » 25 мар 2024, 15:44

Мой последний вопрос относился к Вашему утверждению и я не зря его процитировал. Что касается метода алгоритмизации по А. Шалыто, он красивый и по праву занимает свое место в теории построения алгоритма для языковой реализации, проблема в другом, на сегодня нет среды, которая даст разработчику его реализацию на уровне простой и понятной интерфейсной абстракции, все нужно строить в скрипт языковых IDE, а чтоб это уметь, нужно немало потереться о клавиатуру и отладку ошибок транскрипции или вылавливание ошибок в процессе компиляции, вот о чем и говорю, о чем собственно и сетует наш общий друг.
Что касается моей работы, там люди смотрят и вопросы не задаются, да и не нужен мне так уж сильно Ваш пост, переливание многократное из пустого в порожнее. Смотрел я ваши внешние ресурсы, порог вхождения высокий для интересующихся.

Re: Робот с логикой на основе автоматного программирования

smur » 25 мар 2024, 16:43

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

Re: Робот с логикой на основе автоматного программирования

beep_beam » 25 мар 2024, 19:37

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


Rambler\'s Top100 Mail.ru counter