Pioneer Bricks

Pioneer Bricks — это инструмент блочного программирования, предназначенный для создания программ управления квадрокоптерами серии «Пионер» без необходимости владения навыками текстового программирования. Использование блочного подхода позволяет упростить процесс разработки программ и способствует развитию логического мышления, необходимого для дальнейшего изучения языков программирования.

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

Подсказка

Для доступа в сервис Pioneer Bricks подключитесь к wifi сети устройства, откройте веб-браузер и перейдите по адресу: http://10.42.0.1:2020/

Описание блоков «Bricks»

Группа блоков предназначена для работы с текстовыми данными. Предоставляет блоки для создания, анализа и обработки текста.

Блок текста

Позволяет задать текстовое значение и использовать в других блоках программы.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image001.png

Создать текст из

Позволяет последовательно объединять фрагменты текста, заданные в ячейках блока. Можно использовать с блоками текста, переменными и такими же блоками создания текста.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image002.png

Например, после выполнения такой программы в сообщениях будет напечатано:

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image003.png

В настройках блока можно задать количество объединяемых фрагментов текста: для этого нужно перетащить блок «элемент» слева в блок «соединить» справа.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image004.png

К переменной добавить текст

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image005.png

Длина текста

Позволяет получить число символов (включая пробелы) фрагмента текста, заданного в ячейке блока.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image006.png

Пуст ли текст

Для проверки нужно перетащить переменную или фрагмент текста в ячейку блока. Возвращает истину или ложь, если блок пуст или нет, соответственно.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image007.png

В тексте найти первое/последнее вхождение текста

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image008.png

В тексте взять букву

Позволяет получить отдельный символ из текста. В первую ячейку нужно поместить текст, из которого хотим взять символ. Далее в поле «взять» из выпадающего списка нужно выбрать способ получения символа. Для способов, где задается номер, справа необходимо его указать. Для этого можно использовать переменные или блоки из раздела «Математика».

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image009.png

В тексте взять подстроку с буквы по букву

Позволяет получить подстроку – часть исходного текста, ограниченная заданным диапазоном букв. В ячейку «в тексте» нужно вставить текст, далее из выпадающих списков выбрать способ задания первой буквы и способ задания последней буквы подстроки. Для способов, где задается номер, справа необходимо его указать. Для этого можно использовать переменные или блоки из раздела «Математика».

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image010.png https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image011.png

Блок изменения регистра

Преобразует текст по выбранному правилу. В выпадающем списке можно выбрать одно из трёх правил. Справа нужно вставить текст для преобразования.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image012.png

Обрезать пробелы

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image013.png

Напечатать

Печатает в «Сообщения» вкладки «Отладка» указанные справа данные.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image014.png

Вывод текста в отладке будет выглядеть следующим образом:

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image015.png

Подсчитать количество строк в тексте

Считает, сколько раз один текст встречается внутри другого. В левой ячейке нужно указать фрагмент текста, который нужно искать внутри текста, задаваемого во второй ячейке.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image016.png

Заменить текст на другой текст в тексте

Выполняет замену текста. В первой ячейке задается текст, который нужно заменить. Во второй ячейке задается текст, на который нужно заменить. В третьей ячейке задается текст, в котором выполняется преобразование.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image017.png

Изменить порядок на обратный

Изменяет порядок символов в тексте на обратный, в ячейке нужно задать текст, который нужно преобразовать.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/01.Text/image018.png

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

Если

Проверяет заданное условие и при его выполнении запускает вложенные команды. В первой ячейке задается логическое выражение. Во второй ячейке задаются действия, которые нужно выполнить, если результат проверки «истина». Например, если переменная Х равна переменной Y, то напечатать «Условие выполнено». Если условие не выполняется, то есть переменная Х не равна переменной Y, то текст не будет напечатан.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image019.png

Блок имеет настройки, в которых можно добавлять дополнительные ветви: Иначе если – дополнительное условие, которое проверяется, если первое оказалось ложным. Иначе – выполняется, если ни одно из условий не оказалось истинным.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image020.png

Если – иначе

Блок является частным случаем блока «Если». Он также проверяет условие, но в отличие от обычного блока «Если», здесь ветвь «иначе» предусмотрена по умолчанию.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image021.png

Логическое «не»

Выполняет логическое отрицание указанного значения. В данном примере, переменной Y присваивается значение – не ложь, то есть истина.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image022.png

Ничто

Используется в ситуациях, когда требуется вставить значение, но передавать данные не нужно. Возвращает «ничто» - отсутствие данных.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image023.png

Логическое сравнение значений

Сравнивает два значения и возвращает логический результат – истина или ложь. В выпадающем списке можно выбрать тип сравнения. В ячейках блока задаются значения для сравнения.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image024.png

Логические операции и / или

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image025.png

Блок логического значения

Задает логическое значение истина или ложь. В выпадающем списке можно выбрать нужное логическое значение.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/02.logic/image026.png

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

Повторять n раз

Блок выполняет вложенные команды заданное количество раз. В ячейке «повторить» задается количество повторений другим блоком.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image027.png

Повторять несколько раз

В этом блоке, в отличие от предыдущего, количество повторений задается вручную – конкретным числом в поле блока.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image028.png

Повторять, пока

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image029.png https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image030.png

Цикл по

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

  • начальное значение – с какого числа начинается цикл;

  • конечное значение – на каком числе цикл завершается;

  • шаг цикла – на сколько увеличивается значение счетчика на каждом повторении цикла.

При значениях k = 1, n = 10 и шаге 1 переменная цикла i последовательно принимает значения от 1 до 10. Команда внутри цикла будет выполнена 10 раз и будет напечатана последовательность от 1 до 10.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image031.png

Для каждого элемента в списке

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image032.png

Блоки управления циклом

Внутри цикла можно использовать команды управления циклом, которые можно выбрать в выпадающем списке блока:

  • Выйти из цикла – немедленно прекращает работу текущего цикла.

  • Перейти к следующему шагу цикла – пропускает оставшиеся команды текущей итерации и переходит к следующему повторению цикла.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/03.loops/image033.png

Группа блоков предназначена для выполнения вычислений и работы с числовыми значениями. Предоставляет блоки математических операций и функций, преобразования чисел, обработки и генерации числовых данных.

Блок число

Используется, когда нужно ввести число. Блок можно подставлять в присваивание переменной, математические операции, циклы и условия.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image034.png

Арифметические операции

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image035.png

Математические функции

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image036.png

Блок математических констант

Предоставляет стандартные математические константы. В выпадающем списке можно выбрать нужную константу.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image037.png

Блок проверки числовых свойств

Выполняет проверку значения из ячейки на указанное свойство. Свойство можно выбрать в выпадающем списке.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image038.png

Блок округления

Выполняет округление значения из ячейки по заданному правилу. В выпадающем списке можно выбрать правило округления.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image039.png

Блок тригонометрических функций

Вычисляет выбранную в выпадающем списке тригонометрическую функцию от значения, заданного в ячейке блока.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image040.png

Блок работы со списком

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image041.png

Остаток от деления

Вычисляет остаток от деления числа в первой ячейке на число во второй ячейке.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image042.png

Блок ограничения значения

Ограничивает значение в первой ячейке диапазоном от нижнего до верхнего значения. Диапазон задаётся числовыми значениями в ячейках «снизу» и «сверху».

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image043.png

Случайное целое число

Генерирует случайное число в диапазоне, заданном в ячейках «от» и «до» включительно.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image044.png

Случайное число от 0.0 до 1.0

Генерирует случайное вещественное число в диапазоне от 0.0 до 1.0.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image045.png

Пример выполнения

Например, в результате выполнения скрипта приведенного выше, получим число 0.28795514403902933:

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/04.math/image046.png

Группа блоков предназначена для создания и использования пользовательских функций. Предоставляет блоки для определения функций, задания её параметров, описания выполняемых команд и возврата результата.

Функция, не возвращающая значение

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/05.functions/image047.png

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/05.functions/image048.png

Функция, возвращающая значение

Этот блок аналогичен предыдущему, но позволяет передать значение в блок, который вызывает функцию. Возвращаемое значение задается внутри функции ячейкой «вернуть».

В настройках имеет опцию «разрешить операторы», при отключении тело функции становится недоступно, а выражение для вычисления результата задается сразу в ячейке «вернуть».

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/05.functions/image049.png

Если истинно, вернуть

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/05.functions/image050.png

Вверху вкладки находится кнопка «Создать переменную». По нажатию на нее откроется окно создания переменной, где нужно ввести имя переменной. Рекомендуется осознанно подходить к выбору имени переменной.

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/06.variables/image051.png

Присвоить переменной значение

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

В выпадающем списке можно выбрать, какой переменной нужно присвоить значение, а также переименовать выбранную переменную или удалить её.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/06.variables/image052.png

Увеличить переменную на

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

Блок в ячейке можно заменить на любой другой блок, возвращающий числовое значение.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/06.variables/image053.png

Получение значения переменной

Позволяет получить значение, хранящееся в переменной, и передать его в блок, к которому он подключён.

Во вкладке переменных хранятся блоки для каждой созданной переменной. В выпадающем списке блока можно изменить выбранную переменную, а также переименовать или удалить её.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/06.variables/image054.png

Группа блоков предназначена для работы со списками. Предоставляет блоки для создания списков, доступа к их элементам и выполнения операций с ними.

Создать пустой список

Позволяет создать новый список без элементов и присвоить его переменной.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image055.png

Создать список из

Формирует новый список из элементов, заданных в ячейках блока. Можно вставлять значения, переменные и другие списки.

Блок имеет настройки, в которых можно задать количество ячеек.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image056.png

Создать список из элемента, повторяющегося n раз

Создает список, состоящий из одного элемента, повторяющегося указанное число раз.

Первая ячейка задает значение элемента, вторая определяет число элементов списка.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image057.png

Длина списка

Позволяет получить количество элементов в списке, заданном в ячейке блока.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image058.png

Пуст ли список

Проверяет, содержит ли список элементы. Возвращает логическое значение: истина, если список пуст, и ложь, если в нем есть хотя бы один элемент.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image059.png

В списке найти вхождение элемента

Позволяет получить номер элемента в списке. В выпадающем списке можно выбрать, какое вхождение элемента искать: первое или последнее.

Вхождение элемента – позиция в списке, на которой находится элемент с заданным значением.

В первой ячейке задается список, во второй — значение, которое нужно найти. Если элемент отсутствует, результатом будет 0.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image060.png

Операции с элементами списка

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image061.png https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image062.png

Изменение или добавление элемента

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image063.png https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image064.png

В списке взять подсписок

Создает новый список из элементов списка, заданного в первой ячейке. В первом выпадающем списке и соответствующей ему ячейке задается номер элемента в исходном списке, который станет первым элементом нового списка. Во втором выпадающем списке и соответствующей ему ячейке задается номер элемента в исходном списке, который станет последним элементом нового списка.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image065.png

Сортировка списка

Выполняет сортировку списка по выбранному правилу сортировки. В первом выпадающем списке можно выбрать способ сравнения элементов. Во втором списке можно выбрать направление сортировки. В ячейку нужно вставить список, по которому нужно выполнить сортировку.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image066.png

Конвертация списка и текста

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

Во вторую ячейку нужно вставить блок с разделителем. При разбиении по нему выделяются элементы в тексте, а при объединении он вставляется между элементами списка.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image067.png

Изменения порядка на обратный

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/07.arrays/image068.png

Группа блоков предназначена для выполнения полётных заданий и движения дрона. Предоставляет блоки для подготовки дрона к полёту, выполнения полётных заданий, задания перемещения, скоростей и угла поворота, а также отслеживания выполнения перемещений.

Предвзлетная подготовка

Выполняет запуск двигателей и переводит систему в состояние готовности к полету. Только после выполнения этого блока можно выполнять взлёт.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image069.png

Взлёт

Выполняет взлёт, после выполнения блока квадрокоптер будет удерживать высоту.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image070.png

Посадка

Выполняет снижение и посадку дрона.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image071.png

Заглушить двигатели

Выключает двигатели.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image072.png

Лететь в локальные координаты

Выполняет полёт дрона в указанную точку в системе локальных координат.

Значения в ячейках «X», «Y», «Z» определяют смещение (в метрах) по соответствующим осям относительно точки старта. Ось «Y» направлена вперёд, ось «X» направлена вправо относительно точки старта. Ячейка «Угол поворота» задаёт угол, на который нужно повернуться относительно стартового направления.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image073.png

Сместиться на локальные координаты

Выполняет полёт дрона в точку, координаты которой задаются относительно текущего положения и ориентации дрона. Ось «Y» направлена вперёд, ось «X» направлена вправо относительно дрона.

Значения в ячейках «X», «Y», «Z» определяют смещение (в метрах) по соответствующим осям относительно текущего положения дрона. Ячейка «Угол поворота» задаёт угол, на который нужно повернуться относительно текущего направления.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image074.png

Ожидать достижения точки

Блок выполняет ожидание достижения дроном точки, заданной предыдущей командой движения. Следующие команды начнут выполнятся только после достижения этой точки.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image075.png

Достигнута точка

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image076.png

Установить скорость относительно точки старта

Устанавливает скорость (м/с) дрона в системе координат, отсчитываемой от точки взлёта.

Значения в ячейках «X», «Y», «Z» задают скорость движения по соответствующим осям. Ячейка «Угловая скорость» устанавливает скорость поворота относительно вертикальной оси дрона.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image077.png

Установить скорость относительно позиции дрона

Устанавливает скорость дрона в системе координат, связанной с текущим положением и ориентацией дрона.

Значения в ячейках «X», «Y», «Z» задают скорость движения по соответствующим осям. Ячейка «Угловая скорость» устанавливает скорость поворота относительно вертикальной оси дрона.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image078.png

Установить угол

Устанавливает угол поворота дрона относительно вертикальной оси. (система координат зависит от прошивки автопилота)

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/08.flight/image079.png

Группа блоков предназначена для работы с дополнительными модулями. Предоставляет блоки для управления подключенными модулями и получения данных от них.

Задать поворот сервопривода

Позволяет установить угол поворота сервопривода камеры в диапазоне от -90 до 30 градусов. Задать угол можно вводом нужного значения или с помощью графического регулятора.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image080.png

Открыть захват со скоростью

Открывает захват с заданной скоростью. В ячейку блока нужно установить блок со значением нужной скорости в процентах.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image081.png

Закрыть захват со скоростью

Закрывает захват с заданной скоростью. В ячейку блока нужно установить блок со значением нужной скорости в процентах.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image082.png

Получить данные от модуля Ranger

Получает текущие измерение расстояний от модуля Ranger.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image083.png

Получить значение дальномера

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image084.png

Установить цвет на светодиод с номером

Устанавливает заданный в первой ячейке цвет на светодиод с номером, заданным во второй ячейке.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image085.png

Установить цвет всех светодиодов

Устанавливает заданный в ячейке цвет на все светодиоды.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/09.modules/image086.png

Группа блоков предназначена для работы с изображениями. Предоставляет блоки для получения, отображения, обработки и сохранения кадра.

Получить кадр с камеры

Позволяет получить кадр с камеры. В выпадающем списке можно выбрать, с какой камеры получить изображение.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image087.png

Демонстрация изображения из кадра в окно

Один раз отображает изображение в окне. В ячейку кадра нужно вставить блок, содержащий кадр. В ячейку окна указывается имя окна, используемое для отображения.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image088.png

При запущенной демонстрации изображения в окне «Просмотр изображений» вкладки «Отладка» появится кнопка для открытия окна с изображением.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image089.png

Сохранить кадр в файл

Сохраняет переданный кадр в файл с указанным именем. В ячейку кадра нужно вставить блок, содержащий кадр. В ячейку имени нужно вставить блок с текстовым названием создаваемого файла.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image090.png

Нарисовать объект на кадре

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image091.png https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image092.png

Пример для всех вариантов сразу

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image093.png

Получить размер изображения

Позволяет получить одно из измерений изображения. В ячейку нужно вставить блок, содержащий изображение, а в выпадающем списке выбрать нужное измерение.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image094.png

Изменить размер изображения

Позволяет обрезать кадр до указанных размеров. В первую ячейку нужно вставить блок с изображением. Значения в ячейках «ширина» и «высота» определяют размеры нового изображения.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image095.png

Повернуть изображение на угол

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image096.png

Отразить изображение вдоль оси

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image097.png

Обрезать изображение

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/10.camera/image098.png

Группа блоков предназначена для анализа изображений с использованием моделей искусственного интеллекта. Предоставляет блоки для инициализации моделей, выполнения распознавания объектов, поз и текста.

Инициализация ИИ модели

Перед использованием функций ИИ необходимо инициализировать нужную модель. Для этого перетащите блок «Инициализация ИИ модели» из вкладки «ИИ». Размещать его сразу под блоком «Начало программы» не обязательно — блок можно поставить в любое место программы, но выше тех блоков, которые используют ИИ-модель.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image099.png

В выпадающем списке блока доступны два варианта моделей:

Yolo — модель, предназначенная для детекции объектов на изображении. Позволяет находить на кадре различные предметы и определять, где именно они расположены.

YoloPose — модель, используемая для распознавания позы человека. Определяет положение рук и может анализировать жесты.

Тип модели следует выбирать в соответствии с задачами, решаемыми в программе.

Найти на кадре объект класса для детекции

Блок выполняет поиск заданного типа объекта на изображении с камеры.

Перед использованием этого блока необходимо создать переменную, в которую будет сохранён результат распознавания. Перетащите блок «присвоить» из вкладки «Переменные», в нем выберите нужную переменную. Блок «Найти на кадре объект класса для детекции» перетащите в правую часть блока присваивания.

В блок нужно передать переменную, хранящую кадр, на котором нужно найти объект. Для этого в ячейку «Найти на кадре» перетащите переменную из вкладки «Переменные», в которой хранится кадр.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image100.png

В выпадающем списке классов блока выберите тип объекта, который требуется обнаружить. После выполнения этого блока в переменной будут хранится сведения о найденном объекте.

Найти позу на кадре

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

Перед использованием этого блока необходимо создать переменную, в которую будет сохранён результат. Перетащите блок «присвоить» из вкладки «Переменные», в нем выберите нужную переменную. Блок «Найти позу на кадре» перетащите в правую часть блока присваивания.

В блок также нужно передать переменную, хранящую кадр, на котором нужно найти позу. Для этого в ячейку «Найти позу на кадре» перетащите переменную из вкладки «Переменные», в которой хранится кадр.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image101.png

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

Поза в объекте соответствует позе

Блок проверяет, соответствует ли найденная поза выбранной.

Перед использованием этого блока необходимо создать переменную, в которую будет сохранён результат. Перетащите блок «присвоить» из вкладки «Переменные», в нем выберите нужную переменную. Блок «Поза в объекте соответствует позе» перетащите в правую часть блока присваивания.

В ячейку «Поза в объекте» перетащите переменную, полученную из предыдущего блока. Справа из выпадающего списка поз выберите нужную вам позу.

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

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image102.png

Распознать текст на изображении

Выполняет обработку переданного кадра и возвращает результат распознавания в виде структуры данных.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image103.png

Получить текст из результата распознавания

Извлекает текст из результата распознавания, полученного из предыдущего блока.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/11.ai/image104.png

Модуль предназначен для обработки и анализа изображений. Предоставляет блоки для выделения и анализа объектов и контуров, работы с маркерами, получения и обработки различных масок.

Найти маркеры ArUco на изображении

Выполняет поиск маркеров ArUco на заданном в ячейке кадре. В выпадающем списке можно выбрать нужный словарь маркеров, используемый для распознавания.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image105.png

Координаты объекта

Возвращает координаты выбранной точки объекта. В выпадающем списке можно выбрать, координаты какой точки объекта нужно получить. Значение в ячейке «ID/индекс» определяет объект, для которого извлекаются координаты.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image106.png

Размер объекта

Возвращает выбранную характеристику объекта. В выпадающем списке можно выбрать, какой параметр требуется получить. Значение в ячейке «ID/индекс» определяет объект, для которого извлекаются координаты.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image107.png

Определить форму контура

Выполняет анализ выбранного контура и возвращает тип его формы. В ячейку «контура» нужно передать набор контуров, а в ячейке «индекс» указать, форму какого контура нужно определить.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image108.png

Получить гауссово размытие изображения

Выполняет сглаживание кадра с использованием гауссова фильтра. В ячейку изображения нужно передать изображение, к которому применяется размытие. Значение в ячейке «размер ядра» задает размер ядра фильтра и должно быть нечетным.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image109.png

Получить маску Канни изображения

Выполняет обнаружение границ на изображении с использованием алгоритма Канни. В ячейку изображения нужно передать изображение, для которого вычисляется маска границ. В ячейки «нижняя граница» и «верхняя граница» задаются пороговые значения чувствительности, определяющие, какие перепады яркости будут считаться границами.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image110.png

Получить цветовую маску изображения

Выполняет выделение областей изображения по заданному цветовому диапазону. В ячейку изображения нужно передать изображение, для которого вычисляется цветовая маска. Значения цвета в ячейках «нижняя граница» и «верхняя граница» должны задавать непрерывный диапазон цвета, используемый для фильтрации. В итоговую маску попадут только те пиксели, цвет которых находится внутри указанного диапазона.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image111.png

Получить бинарную маску по порогу на изображении

Выполняет пороговую обработку изображения и формирует бинарную маску. В ячейку изображения нужно передать изображение, для которого вычисляется бинарная маска. Значение в ячейке «порог» задает граничное значение яркости, по которому выполняется разделение пикселей. Пиксели, значение которых превышает заданный порог, относятся к активной области маски, остальные – к неактивной.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image112.png

Получить контуры из маски

Выполняет поиск контуров в маске, заданной в ячейке, и возвращает данные контуров.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/12.ComputerVision/image113.png

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

Заснуть

Приостанавливает выполнение программы на указанное количество секунд. Значение времени задается числовым блоком в ячейке.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/13.other/image114.png

Цвет

Представляет значение цвета, выбранного из палитры. Может быть использован в других блоках, где требуется указать цветовое значение.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/13.other/image115.png

Угол

Представляет значение угла в градусах. Задать угол можно вводом нужного значения или с помощью графического регулятора.

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/13.other/image116.png

Точка

Представляет координату в двумерном пространстве. Значения в ячейках «X», «Y» задают положение точки относительно начала координат изображения (левый верхний угол).

https://storage.yandexcloud.net/pioneer-doc.geoscan.ru-static/images/PioneerOS/bricks/13.other/image117.png