Скрипты позволяют программировать робота на выполнение определенных действий. Путь к папке со скриптами: /opt/promobot/share/promobot_scripts/scripts/3.1/ Скрипт представляет собой текстовый файл json формата, который может содержать в себе следующие модули: - arms
- neck
- torso
- drive
- eyes
- led
- play
- play_motion
- promo
- bash
Подсказка |
---|
Запуск модулей происходит параллельно. У каждой команды (command) должен быть уникальный id в рамках одного модуля |
Модуль arms: Предупреждение |
---|
Модуль arms не имеет встроенного ограничения. При выполнении скрипта робот может ударить сам себя. Для выполнения скриптов с использованием рук рекомендуется использовать сервис MSS |
Команда на движение руки представляет собой: Блок кода |
---|
"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.0 (где 0.5 сопоставимо со скоростью с зажатой кнопкой B на джойстике, а 1.0 сопоставимо со скоростью с зажатой кнопкой A ). Угловая скорость для команд left и right задается в пределах: 0 - 5.0 (где 2.5 сопоставимо со скоростью с зажатой кнопкой B на джойстике, а 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 | сектор (всего 9 секторов доступно) | int при передаче 0 горят все
| 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:Команда на запуск скрипта MSS: Блок кода |
---|
"play_motion": [{"command": "play x0", "id": 0}, {"command": "sleep x1", "id": 1}] |
Параметр | Описание | Значение |
---|
x0 | название скрипта с расширением .yaml | например, script.yaml | x1 | время в секундах | int |
Команда на запуск промо-материала: Блок кода |
---|
"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": " | left203060500 0 0 0",
"id": 0
}, {
"command": " | right2030605045 0 0 0",
"id": 1
}, {
"command": "sleep | 223
}, {
"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": " | right 50 100 50 0 50 70 sleep 3.0",
"id": 1
}, {
"command": "angle 20 0 0",
"id": 2
}]
}
#робот наклонит голову вниз, подождет 3 секунды, вернет в исходное положение
, {
"torso": [{
"command": "angle 20 20 0 0",
"id": | 40
}, {
"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 секунды начнет крутиться против часовой стрелки
, {
" | necksleep 4pub heart.gif",
"id": 0
}, {
"command": "sleep 3.0",
"id": 1
}]
}
#на лице робота отобразятся сердечки
, {
"led": [{
"command": "pub head sharp_on 65 1 #c51111 0 false",
"id": 0
}, {
"command": " | angle 30 100 0"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": | 41
}]
}
#запустится скрипт 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 секунд отобразится сайт
, {
" | torsobash": [{
"command": "/opt/promobot/share/promobot_scripts/scripts/3.1/UpVolume.sh",
"id": 0
}]
#выполнится скрипт UpVolume.sh
}]
} |
|