Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: Форматирование


Russian

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

...

Предупреждение

Модуль

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

...

neck:

Команда на движение головы представляет собой:

Блок кода
"neck": [{"command": "angle x0 x1 x2", "id": 0}]

x0 - скорость движения (int)

...


ПараметрОписаниеЗначение
x0скорость движенияint
x1поворот головы вправо / влево

...

int

...

x2

...

поворот головы вверх /

...

внизint

...

Модуль torso:

Команда на движение торсом представляет собой:

Блок кода
"torso": [{"command": "angle x0 x1 x2 x3", "id": 0}]

x0 - скорость движения (int)

...


ПараметрОписаниеЗначение
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

...

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:

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

Блок кода
"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"


Предупреждение

Скрипт должен быть исполняемым


Пример использования нескольких модулей в скрипте:

Блок кода
languagebash
{
	"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
	}]
}



English

Pagetitle
Robot scripts
Robot scripts

Scripts allow you to program a robot to perform specific actions. Scripts folder path: /opt/promobot/share/promobot_scripts/scripts/3.1/

The script is a json text file that can contain the following modules:

  • arms
  • neck
  • torso
  • drive
  • eyes
  • led
  • play
  • play_motion
  • promo
  • bash
Подсказка

The launch of modules happens in parallel. Each command should have a unique id in module scope.

Модуль arms:

A hand movement command is:


Блок кода
"arms": [{"command": "x0 x1 x2 x3 x4 x5 x6 x7 x8", "id": 0}]