Лекция
Привет, мой друг, тебе интересно узнать все про робототехнические языки программирования, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое робототехнические языки программирования , настоятельно рекомендую прочитать все из категории Робототехника.
Многие робототехнические контроллеры реализованы с использованием языков программирования специального назначения. Например, многие программы для обобщающей архитектуры были реализованы на языке поведения, который был определен Бруксом. Этот язык представляет собой язык управления в реальном времени на основе правил, результатом компиляции которого становятся контроллеры AFSM. Отдельные правила этого языка, заданные с помощью синтаксиса, подобногоLisp, компилируются в автоматы AFSM, а группы автоматов AFSM объединяются с помощью совокупности механизмов передачи локальных и глобальных сообщений.
Так же как и обобщающая архитектура, язык поведения является ограниченным, поскольку он нацелен на создание простых автоматов AFSM с относительно узким определением потока связи между модулями. Но в последнее время на базе этой идеи проведены новые исследования, которые привели к созданию целого ряда языков программирования, аналогичных по своему духу языку поведения, но более мощных и обеспечивающих более быстрое выполнение.
Одним из таких языков является универсальный робототехнический язык, или сокращенно GRL (Generic Robot Language). GRL— это функциональный язык программирования для создания больших модульных систем управления. Как и в языке поведения, в GRL в качестве основных конструктивных блоков используются конечные автоматы. Но в качестве настройки над этими автоматами язык GRL предлагает гораздо более широкий перечень конструкций для определения коммуникационного потока и синхронизации ограничений между различными модулями, чем язык поведения. Программы на языке GRL компилируются в эффективные программы на таких языках команд, как С.
Еще одним важным языком программирования (и связанной с ним архитектурой) для параллельного робототехнического программного обеспечения является система планирования реактивных действий, или сокращенно RAPS (Reactive Action Plan System). Об этом говорит сайт https://intellect.icu . Система RAPS позволяет программистам задавать цели, планы, связанные с этими целями (или частично определять политику), а также задавать условия, при которых эти планы по всей вероятности будут выполнены успешно.
Крайне важно то, что в системе RAPS предусмотрены также средства, позволяющие справиться с неизбежными отказами, которые возникают в реальных робототехнических системах. Программист может задавать процедуры обнаружения отказов различных типов и предусматривать процедуру устранения исключительной ситуации для каждого типа отказа. В трехуровневых архитектурах система RAPS часто используется на исполнительном уровне, что позволяет успешно справляться с непредвиденными ситуациями, не требующими перепланирования.
Существует также несколько других языков, которые обеспечивают использование в роботах средств формирования рассуждений и средств обучения. Например, Gologпредставляет собой язык программирования, позволяющий обеспечить безукоризненное взаимодействие средств алгоритмического решения задач (планирования) и средств реактивного управления, заданных непосредственно с помощью спецификации.
Программы на языке Golog формулируются в терминах ситуационного исчисления с учетом дополнительной возможности применения операторов недетерминированных действий. Кроме спецификации программы управления с возможностями недетерминированных действий, программист должен также предоставить полную модель робота и его среды.
Как только программа управления достигает точки недетерминированного выбора, вызывается планировщик (заданный в форме программы доказательства теорем) для определения того, что делать дальше. Таким образом программист может определять частично заданные контроллеры и опираться на использование встроенных планировщиков для принятия окончательного выбора плана управления.
Язык "JSk CES (сокращение от C++ for embedded systems — C++ для встроенных систем) — это языковое расширение C++, в котором объединяются вероятностные средства и средства обучения. В число типов данных CES входят распределения вероятностей, что позволяет программисту проводить расчеты с использованием неопределенной информации, не затрачивая тех усилий, которые обычно связаны с реализацией вероятностных методов.
Еще более важно то, что язык CES обеспечивает настройку робототехнического программного обеспечения с помощью обучения на основании примеров, во многом аналогично тому, что осуществляется в алгоритмах обучения. Язык CES позволяет программистам оставлять в коде "промежутки", которые заполняются обучающими функциями; обычно такими промежутками являются дифференцируемые параметрические представления, такие как нейронные сети. В дальнейшем на отдельных этапах обучения, для которых учитель должен задать требуемое выходное поведение, происходит индуктивное обучение с помощью этих функций. Практика показала, что язык CES может успешно применяться в проблемных областях, характерных для частично наблюдаемой и непрерывной среды.
Язык ALisp представляет собой расширение языка Lisp. Язык ALisp позволяет программистам задавать недетерминированные точки выбора, аналогичные точкам выбора в языке Golog. Но в языке ALisp для принятия решений применяется не программа доказательства теорем, а средства определения правильного действия с помощью индуктивного обучения, в которых используется обучение с подкреплением. Поэтому язык ALisp может рассматриваться как удобный способ внедрения знаний о проблемной области в процедуру обучения с подкреплением, особенно знаний об иерархической структуре "процедур" желаемого поведения. До сих пор язык ALispприменялся для решения задач робототехники только в имитационных исследованиях, но может стать основой многообещающей методологии создания роботов, способных к обучению в результате взаимодействия со своей средой.
Комментарии
Оставить комментарий
Робототехника
Термины: Робототехника