Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Скрипты позволяют программировать робота на выполнение определенных действий. Путь к папке со скриптами: /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}]
ПараметрЗначение
x0anger.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
x3RGB цвет подсветкив формате 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:

Команда на запуск промо-материала:

"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
	}]
}

  • Нет меток
Написать комментарий...