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

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

Ключ

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


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

Модуль 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"


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

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


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

Блок кода
languagebash
{
	"parts": [{
		"arms": [{
			"command": "
left
right 50 
20
45 
30
0 
60
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 
20
0 
30
0 
60
0 0 0 0 0",
			"id": 4
		}, {
			"command": "left 50 0 0 0 0 0 0 0",
			"id": 
1
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": "
left 50 0 0 0 0 0 0 0"
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 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": 
50 100 50 0 50 70 0 0
[{"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": "
sleep 1
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 
	, {
		"
torso
neck": [{
			"command": "
sleep 2
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 
5000
20 
-15
20 0 0",
			"id": 
1
0
		}, {
			"command": "sleep 3.0
.7
",
			"id": 
2
1
		}, {
			"command": "angle 
5000
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
.7
",
			"id": 1
		}, {
			"command": "left 0.5",
			"id": 
4
2
		}, {
			"command": "
angle 5000 -15 0
sleep 1.0",
			"id": 3
		}]
	}
	# robot will move forward for 1 second, then will rotate counterclockwise for 1 second
	, {
		"eyes": [{
			"command": "pub heart.gif",
			"id": 0
		}, {
			"command": "sleep 3.0",
			"id": 
5
1
		}]
	}
	# hearts will appear on the robot's face
	, {
		"led": [{
			"command": "pub 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 
36
30",
			"id": 1
		}, {
			"command": "stop",
			"id": 2
		}]
	}
	# melody will start playing for 30 seconds
	, {
		"
neck
play_motion": [{
			"command": "
sleep
play 
4
script.yaml",
			"id": 0
		}, {
			"command": "
angle 30 100 0"
sleep 60.0",
			"id": 1
		}]
	}
	# MSS script will start and run for 60 seconds
	, {
		"promo": [{
			"command": "url Image.jpg",
			"id": 
4
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
	}]
}