Скрипты позволяют программировать робота на выполнение определенных действий. Путь к папке со скриптами: Скрипт представляет собой текстовый файл json формата, который может содержать в себе следующие модули: Запуск модулей происходит параллельно. У каждой команды (command) должен быть уникальный id в рамках одного модуля Модуль arms не имеет встроенного ограничения. При выполнении скрипта робот может ударить сам себя. Для выполнения скриптов с использованием рук рекомендуется использовать сервис MSS Команда на движение руки представляет собой: Команда на движение головы представляет собой: Команда на движение торсом представляет собой: Команда на езду представляет собой: ( Линейная скорость для команд (где 0.5 сопоставимо со скоростью с зажатой кнопкой Угловая скорость для команд (где 2.5 сопоставимо со скоростью с зажатой кнопкой Команда на изменение подсветки представляет собой: сектор (всего 9 секторов доступно) int при передаче 0 горят все Команда на воспроизведение аудиофайла представляет собой: Для корректного воспроизведения аудиофайла он должен находиться в Команда на запуск скрипта MSS: Команда на запуск промо-материала: например, Промо-материал отобразится, если робот будет запущен (нажата кнопка Команда на запуск сторонних скриптов: Скрипт должен быть исполняемым/opt/promobot/share/promobot_scripts/scripts/3.1/
Модуль arms:
"arms": [{"command": "x0 x1 x2 x3 x4 x5 x6 x7 x8", "id": 0}]
Параметр Описание Значение x0
какая рука будет двигаться left
или right
x1
скорость движения int x2
направление движения руки вдоль туловища робота int x3
направление движения руки от туловища робота int x4
разворот руки в плече int x5
сгибание локтя int x6
разворот руки в локте int x7
движение кисти int x8
движение пальцев int Модуль neck:
"neck": [{"command": "angle x0 x1 x2", "id": 0}]
Параметр Описание Значение x0
скорость движения int x1
поворот головы вправо / влево int x2
поворот головы вверх / вниз int Модуль torso:
"torso": [{"command": "angle x0 x1 x2 x3", "id": 0}]
Параметр Описание Значение x0
скорость движения int x1
наклон вперед / назад int x2
наклон влево / вправо int x3
движение вверх / вниз int Модуль drive:
"drive": [{"command": "x0 x1", "id": 0}, {"command": "sleep x2", "id": 1}]
Параметр Описание Значение x0
направление движения forward
, back
, right
, left
left
, right
- поворот вокруг своей оси)x1
скорость движения int x2
время в секундах int forward
и back
задаются в пределах от 0 - 1.0B
на джойстике, а 1.0 сопоставимо со скоростью с зажатой кнопкой A
).left
и right
задаются в пределах от 0 - 5.0B
на джойстике, а 5.0 сопоставимо со скоростью с зажатой кнопкой A
).Модуль eyes:
Команда на отправку эмоции представляет собой:
"eyes": [{"command": "pub x0", "id": 0}]
Параметр Значение x0
anger.gif default.gif heart.gif laugh.gif sad_wave.gif scan.gif smile.gif sorrow.gif surprise.gif wink.gif Модуль led:
"led": [{"command": "pub head x0 x1 x2 x3 x4 x5", "id": 0}]
Параметр Описание Значение x0
sharp_blink
– резкое миганиеsharp_on
– резкое зажечьsharp_off
– резкое погаситьsmooth_blink
– плавное миганиеsmooth_on
– плавно зажечьsmooth_off
– плавно погаситьx1
время включения / отключения (не более 65 секунд) int x2
кол-во циклов (для sharp_blink
и smooth_blink
)int x3
RGB цвет подсветки в формате HEX, например, #FFFFFF x4
x5
сохранять сектор подсвеченным в следующей итерации, или нет boolean Модуль play:
"play": [{"command": "play x0", "id": 0}, {"command": "sleep x1", "id": 1}, {"command": "stop", "id": 2}]
Параметр Описание Значение x0
название аудиофайла с расширением например, song.mp3 x1
время воспроизведения в секундах int /home/promobot/Music
Модуль play_motion:
"play_motion": [{"command": "play x0", "id": 0}, {"command": "sleep x1", "id": 1}]
Параметр Описание Значение x0
название скрипта с расширением .yaml например, script.yaml
x1
время в секундах int Модуль promo:
"promo": [{"command": "url x0", "id": 0}, {"command": "sleep x1", "id": 1}]
Параметр Описание Значение x0
название изображения с расширением (image.jpg), либо ссылка на сайт (https://google.com) image.jpg
x1
время в секундах int Play
). Файл с изображением должен находиться в /home/promobot/Pictures
Модуль bash:
"bash": [{"command": x0, "id": 0}]
Параметр Описание Значение x0
путь к bash скрипту например, "opt/promobot/share/promobot_scripts/scripts/3.1/UpVolume.sh"
Пример использования нескольких модулей в скрипте:
{
"parts": [{
"arms": [{
"command": "right 50 45 0 0 0 0 0 0",
"id": 0
}, {
"command": "left 50 0 0 0 45 0 0 0",
"id": 1
}, {
"command": "sleep 3.0",
"id": 3
}, {
"command": "right 50 0 0 0 0 0 0 0",
"id": 4
}, {
"command": "left 50 0 0 0 0 0 0 0",
"id": 5
}]
}
#левая и правая руки примут заданное положение
# робот подождет 3 секунды, вернет руки в исходное положение
, {
"neck": [{
"command": "angle 20 0 20",
"id": 0
}, {
"command": "sleep 3.0",
"id": 1
}, {
"command": "angle 20 0 0",
"id": 2
}]
}
#робот наклонит голову вниз, подождет 3 секунды, вернет в исходное положение
, {
"torso": [{
"command": "angle 20 20 0 0",
"id": 0
}, {
"command": "sleep 3.0",
"id": 1
}, {
"command": "angle 20 0 0 0",
"id": 2
}]
}
#робот наклонится вперед, подождет 3 секунды, вернется в исходное положение
, {
"drive": [{
"command": "forward 0.5",
"id": 0
}, {
"command": "sleep 1.0",
"id": 1
}, {
"command": "left 0.5",
"id": 2
}, {
"command": "sleep 1.0",
"id": 3
}]
}
#робот поедет вперед в течение 1 секунды, в течение 1 секунды начнет крутиться против часовой стрелки
, {
"eyes": [{
"command": "pub heart.gif",
"id": 0
}, {
"command": "sleep 3.0",
"id": 1
}]
}
#на лице робота отобразятся сердечки
, {
"led": [{
"command": "pub head sharp_on 65 1 #c51111 0 false",
"id": 0
}, {
"command": "sleep 3.0",
"id": 1
}]
}
#уши робота загорятся красным цветом на 3 секунды
, {
"play": [{
"command": "play song.mp3",
"id": 0
}, {
"command": "sleep 30",
"id": 1
}, {
"command": "stop",
"id": 2
}]
}
#начнет воспроизводиться мелодия в течение 30 секунд
, {
"play_motion": [{
"command": "play script.yaml",
"id": 0
}, {
"command": "sleep 60.0",
"id": 1
}]
}
#запустится скрипт MSS, который будет выполняться 60 секунд
, {
"promo": [{
"command": "url Image.jpg",
"id": 0
}, {
"command": "sleep 5",
"id": 1
}, {
"command": "url https://google.com",
"id": 2
}, {
"command": "sleep 5",
"id": 3
}]
}
#на экране отобразится картинка, через 5 секунд отобразится сайт
, {
"bash": [{
"command": "/opt/promobot/share/promobot_scripts/scripts/3.1/UpVolume.sh",
"id": 0
}]
#выполнится скрипт UpVolume.sh
}]
}
Обзор
Инструменты контента