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

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

Ключ

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


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)

x1 - поворот головы влево / вправо (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": "
left
right 
x1
50 
x2
45 
x3
0 
x4
0 
x5
0 
x6
0 
x7
0 
x8
0",
			"id": 0
		}, {
			"command": "
right
left 
x1
50 
x2
0 
x3
0 
x4
0 
x5
45 
x6
0 
x7
0 
x8
0",
			"id": 1
		}, {
			"command": "sleep 
1
3.0",
			"id": 
2
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 
x1
20 
x2
0 
x3
20",
			"id": 0
		}, {
			"command": "sleep 
1
3.0",
			"id": 1
		}, {
			"command": "angle 20 0 0",
			"id": 2
		}]
	}
	#робот наклонит голову вниз, подождет 3 секунды, вернет в исходное положение
	, {
		"torso": [{
			"command": "angle 
x1
20 
x2
20 
x3
0 
x4
0",
			"id": 0
		}, {
			"command": "sleep 
1
3.0",
			"id": 1
		}, {
			"command": "angle 20 0 0 0",
			"id": 2
		}]
	}
	#робот наклонится вперед, подождет 3 секунды, вернется в исходное положение
	, {
		"
play
drive": [{
			"command": "
play
forward 
song
0.
mp3
5",
			"id": 0
		}, {
			"command": "sleep 
36
1.0",
			"id": 1
		}, {
			"command": "
stop
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 
#FFFFFF
#c51111 
3
0 false",
			"id": 0
		}, {
			"command": "sleep 3.0
.2
",
			"id": 1
		}]
	}
	#уши робота загорятся красным цветом на 3 секунды
	, {
		"play": [{
			"command": "
pub head sharp_on 65 1 #FFFFFF 6 false"
play song.mp3",
			"id": 0
		}, {
			"command": "sleep 30",
			"id": 1
		}, {
			"command": "stop",
			"id": 2
		}]
	}
	#начнет воспроизводиться мелодия в течение 30 секунд
	, {
		"play_motion": [{
			"command": "
sleep
play 
0
script.
2
yaml",
			"id": 
3
0
		}, {
			"command": "
pub head sharp_on 65 1 #FFFFFF 12 false"
sleep 60.0",
			"id": 1
		}]
	}
	#запустится скрипт MSS, который будет выполняться 60 секунд
	, {
		"promo": [{
			"command": "url Image.jpg",
			"id": 
4
0
		}, {
			"command": "sleep 
0.2
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 module:

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

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


A hand movement command is:

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


ParameterDescriptionValue
x0which hand to moveleft or right
x1speed of movementint
x2direction of movement of the arm along the body of the robotint
x3direction of movement of the arm from the body of the robotint
x4turn of the arm in the shoulderint
x5elbow flexionint
x6turn of the arm at the elbowint
x7hand movementint
x8finger movementint

Neck module:

A neck movement command is:


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


ParameterDescriptionValue
x0speed of movementint
x1head turning right / leftint
x2head turning up / downint

Torso module:

A torso movement command is:


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


ParameterDescriptionValue
x0speed of movementint
x1tilt forward / backwardint
x2tilt left / rightint
x3movement up / downint

Drive module:

A drive command is:

Блок кода
"drive": [{"command": "x0 x1", "id": 0}, {"command": "sleep x2", "id": 1}]


ParameterDescriptionValue
x0direction of movement

forward, back, right, left

(left, right - turn around its axis)

x1speed of movementint
x2time in secondsint


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

Linear velocity for forward and back commands is set in the range: 0 - 1.0

(where 0.5 is comparable to the speed with the B button held down on the controller (gamepad), and 1.0 is comparable to the speed with the A button held down).

The angular velocity for the left and right commands is set in the range: 0 - 5.0

(where 2.5 is comparable to the speed with the B button held down on the controller (gamepad), and 5.0 is comparable to the speed with the A button held down).

Eyes module:

An eyes command is:


Блок кода
"eyes": [{"command": "pub x0", "id": 0}]


ParameterDescription
x0anger.gif
default.gif
heart.gif
laugh.gif
sad_wave.gif
scan.gif
smile.gif
sorrow.gif
surprise.gif
wink.gif

Led module:

A led command is:


Блок кода
"led": [{"command": "pub head x0 x1 x2 x3 x4 x5", "id": 0}]


ParameterDescriptionValue
x0

sharp_blink

sharp_on

sharp_off

smooth_blink

smooth_on

smooth_off

x1switch-on / switch-off time (no more than 65 seconds)int
x2кол-во циклов (для sharp_blink и smooth_blink)int
x3RGB-color of illuminationHEX-format, e.g., #FFFFFF
x4

sector

(total 9 sectors available)

int

0 - all on

x5whether to keep the sector light on in the next iteration or notboolean

Play module:

A play command is:


Блок кода
"play": [{"command": "play x0", "id": 0}, {"command": "sleep x1", "id": 1}, {"command": "stop", "id": 2}]


ParameterDescriptionValue
x0audio file name with extensione.g., song.mp3
x1time in secondsint


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

For correct playback of the audio file, it must be located in /home/promobot/Music

Play_motion module:

A play_motion command is:

Блок кода
"play_motion": [{"command": "play x0", "id": 0}, {"command": "sleep x1", "id": 1}]


ParameterDescriptionValue
x0script name with the .yaml extensione.g., script.yaml
x1time in secondsint

Promo module:

A promo command is:

Блок кода
"promo": [{"command": "url x0", "id": 0}, {"command": "sleep x1", "id": 1}]


ParameterDescriptionValue
x0image name with extension, or a link to the site

e.g., image.jpg

x1time in secondsint


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

Promotional material will be displayed only if the robot is launched (Play button is pressed).

The image file must be located in /home/promobot/Pictures

Bash module:

A bash command is:


Блок кода
"bash": [{"command": x0, "id": 0}]


ParameterDescriptionValue
x0bash script pathe.g., "opt/promobot/share/promobot_scripts/scripts/3.1/UpVolume.sh"


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

Script must be executable

Example of using several modules in a script:

Блок кода
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
		}]
	}
	# left and right hands will take the preset position
	# robot will wait for 3 seconds, then return the arms to their original position 
	, {
		"neck": [{
			"command": "angle 20 0 20",
			"id": 0
		}, {
			"command": "sleep 3.0",
			"id": 1
		}, {
			"command": "angle 20 0 0",
			"id": 2
		}]
	}
	# robot will tilt its head down, wait for 3 seconds, then return to its original position
	, {
		"torso": [{
			"command": "angle 20 20 0 0",
			"id": 0
		}, {
			"command": "sleep 3.0",
			"id": 1
		}, {
			"command": "angle 20 0 0 0",
			"id": 2
		}]
	}
	# robot will tilt forward, wait 3 seconds, then return to its original position
	, {
		"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
		}]
	}
	# robot will move forward for 1 second, then will rotate counterclockwise for 1 second
	, {
		"
play_motion
eyes": [{
			"command": "
play
pub 
script
heart.
yaml
gif",
			"id": 0
		}, {
			"command": "sleep 
60
3.0",
			"id": 1
		}]
	}
	# hearts will appear on the robot's face
	, {
		"
eyes
led": [{
			"command": "pub 
heart.gif
head sharp_on 65 1 #c51111 0 false",
			"id": 0
		}, {
			"command": "sleep 3.0",
			"id": 1
		}]
	}
	# the ears of the robot will light up red for 3 seconds
	, {
		"play": [{
			"command": "play song.mp3",
			"id": 0
		}, {
			"command": "sleep 30",
			"id": 1
		}, {
			"command": "stop",
			"id": 2
		}]
	}
	# melody will start playing for 30 seconds
	, {
		"play_motion": [{
			"command": "play script.yaml",
			"id": 0
		}, {
			"command": "sleep 60.0",
			"id": 1
		}]
	}
	# MSS script will start and run for 60 seconds
	, {
		"promo": [{
			"command": "url Image.jpg",
			"id": 0
		}, {
			"command": "sleep 5",
			"id": 1
		}, {
			"command": "url https://google.com",
			"id": 2
		}, {
			"command": "sleep 5",
			"id": 3
		}]
	}
	# picture will be displayed on the screen and the website will be displayed 5 seconds later
	, {
		"bash": [{
			"command": "/opt/promobot/share/promobot_scripts/scripts/3.1/UpVolume.sh",
			"id": 0
		}]
	# UpVolume.sh script will run
	}]
}