cart-icon Товаров: 0 Сумма: 0 руб.
г. Нижний Тагил
ул. Карла Маркса, 44
8 (902) 500-55-04

Программы роботы – Инструкция: как внедрить программного робота (и кому это действительно нужно)

Содержание

Исполнитель Робот

Для подготовки к ГИА умение писать программы для исполнителя Робот очень важно. Эти задания относятся к задачам с высоким уровнем сложности и позволяют заработать дополнительные 2 балла (при условии правильного решения). Изучением Робота мы и займемся.

Выпускник 9 класса должен иметь представление об алгоритмике, уметь написать простые алгоритмы. Для записи алгоритмов можно использовать языки программирования или формальные языки.  Исполнитель Робот может выполнять алгоритмы, при этом делает это очень наглядно. Робот — это так называемый ГРафический Учебный Исполнитель (ГРИС) потому, что результаты его работы представлены в графическом виде.

Кто такой исполнитель Робот?

Представьте себе клетчатое поле (как лист из тетради в клеточку) на котором находится некий объект, который мы назовем Робот. Используя специальные команды, мы можем этим Роботом управлять — перемещать его по клеткам, закрашивать клетки. И в большинстве случаев наша задача будет заключаться в том, чтобы написать такую программу для Робота, выполняя которую он будет закрашивать определенные клетки.

Исполнитель Робот входит в пакет КуМир (Комплект Учебных МИРов), который был разработан Научно-исследовательским институтом системных исследований Российской академии наук (НИИСИ РАН) как раз для обучения программированию в школе. Кроме Робота в системе КуМир есть и другие исполнители, но нас они пока не интересуют.

Скачать исполнитель Робот

Итак, для начала нам необходимо  скачать исполнитель Робот. Пусть вас не смущает то, что в названии указано 32-bit, программа отлично работает и в 64-разрядной Windows. Если же вы используете Linux, то можете скачать версию для этой ОС.

Далее необходимо установить скачанную программу. Здесь, я надеюсь, у вас не возникнет сложностей, процесс стандартный и интуитивно понятный. Если вдруг что-то не получится — пишите в комментариях, обязательно помогу. Единственное — рекомендую при установке отказаться от ненужных пунктов (все, кроме Среда Кумир)

Установка исполнителя Робот

После успешной установки, на вашем рабочем столе появится ярлык для запуска программы

Ярлык Кумир

А после запуска программы мы должны увидеть окно программы

Исполнитель Робот — окно программы

Предварительный этап завершен, далее мы рассмотрим как же управлять Роботом и в конечном итоге подготовимся к успешной сдаче ГИА

Продолжение в следующем уроке. До встречи!

Автор: Александр Чернышов

Оцените статью, это очень поможет развитию сайта.

Исполнитель Робот

Средняя оценка 4.3 (86.92%), голосов — 26

easyinformatics.ru

V-REP — бесплатный симулятор для программирования роботов

Роботы, особенно человекоподобные, не могут оставить равнодушными даже тех людей, которые мало интересуются современными технологиями. Наверное, программирование таких роботов очень интересное и увлекательное занятие. Так оно и есть, только вот мало кто знает, как трудно научить робота даже самым простым вещам, которые нам кажутся совершенно естественными. Вы бы и сами смогли в этом убедиться, если бы имели доступ к современной робототехнике.

Программирование роботов сегодня — прерогатива узких специалистов, а всем остальным, кто интересуется робототехникой, остаётся либо молча завидовать, либо удовлетворяться работой с симуляторами, например, V-REP — робосимулятором, разработанным швейцарской компанией Coppelia Robotics. Впрочем, почему бы и нет? Система V-REP обладает на удивление широким функционалом, поддерживается несколькими операционными системами, включая Windows, а самое главное — бесплатна для домашнего использования. А ещё в ней имеются библиотеки для программирования роботов с помощью

C/C++, Python, Java, Matlab и некоторых других языков.

V-REP поставляется с набором готовых моделей — стационарных и мобильных роботов, управлять которыми можно редактируя скрипты. Для управления некоторыми моделями имеются специальный набор ползунков. Все роботы уже имеют базовую программу и подчиняются реальным законам физического мира, той же гравитации. Распространяется платформа в трёх редакциях: EVAL, EDU и Player. Первая — полнофункциональная версия без ограничений, вторая — образовательная версия с лицензионными ограничениями, ориентированная на школьников старших классов, студентов и просто увлеченных пользователей. Плеер (Player) — это программа, предназначенная для запуска сцен, созданных в профессиональной версии. Возможность редактирования скриптов в ней отсутствует.

Для знакомства с платформой вполне подойдёт второй вариант — V-REP PRO EDU. Устанавливается робосимулятор как обычная программа. После запуска вы увидите окно, разделённое на три части.

Правая и самая большая область — это масштабируемая сцена, где и происходят все действия. У левого края размещается библиотека объектов — роботов, а также различных дополнительных элементов, что-то вроде реквизита. Средняя панель содержит иерархию объектов — сцены, камеры, фигуры, источники света, модели и управляющие ими скрипты.

Как работать с V-REP

На первый взгляд всё просто — перетаскиваем из библиотеки на сцену модель, жмём кнопку Play и наблюдаем за движениями подопечного. Некоторые модели довольно умны, например, «человек» Bill прекрасно понимает, как обходить препятствия, где находятся границы поверхности сцены и что нужно делать, чтобы не свалиться в

«пропасть».

А вот человекоподобный робот Ansi будет идти по прямой, пока не упадёт за край и не распрощается с жизнью.

Будучи предоставленными сами себе, роботы бродят вслепую, сталкиваются и падают, а упав на поверхность, неуклюже и беспомощно перебирают конечностями.

Ваша задача — обучить их, но для этого потребуется знание базовых основ программирования, в идеале — языка Lua, ведь именно на нём написаны внутренние скрипты V-REP. Открыть исходный код управляющего скрипта очень просто — нужно лишь дважды кликнуть по иконке «файл» в колонке иерархии объектов.

Ради интереса можете поэкспериментировать, изменяя значения параметров, а затем наблюдая за поведением роботов. Имеется в V-REP также неплохой набор готовых примеров — сцен в формате

ТТТ, получить доступ которым можно через главное меню File –> Open scenes.

Работая с системой, профессиональным программистом роботов вы, может быть, и не станете, зато представление о процессе программирования искусственного интеллекта получите гарантировано. Да ведь и надо с чего-то начинать. Так вот начните с V-REP, для этих целей он вполне подходит. По большому счёту, если вы знакомы с основными управляющими конструкциями языков программирования, разобраться с робосимулятором не составит для вас большого труда.

www.white-windows.ru

Программируем роботов — бесплатный робосимулятор V-REP. Первые шаги

Программирование роботов — это интересно.

Многие наверное видели японских гуманоидных роботов, или французский учебный робот NAO, интересным выглядит проект обучаемого робота-манипулятор Baxter. Промышленные манипуляторы KUKA из Германии — это классика. Кто-то программирует системы конвейерной обработки (фильтрации, сортировки). Дельта роботы. Есть целый пласт — управление квадрокоптером/алгоритмы стабилизации. И конечно же простые трудяги на складе — Line Follower.

Но всё это как правило — не дешевые игрушки, поэтому доступ к роботам есть в специализированных лабораториях или институтах/школах где получили финансирование и есть эти направления. Всем же остальным разработчикам (кому интересна робототехника) — остаётся завистливо смотреть.

Некоторое время назад я вышел на достаточно интересную систему — 3д робосимулятор V-REP, от швейцарской компании Coppelia Robotics.

К своему (приятному) удивлению я обнаружил, что эта система:

  • имеет большой функционал (система разрабатывается с марта 2010 года)
  • полностью open-source (выложена в открытый доступ в 2013 году)
  • кроссплатформенная — windows, mac, linux (работает на Qt)
  • имеет API и библиотеки для работы с роботами через C/C++, Python, Java, Lua, Matlab, Octave или Urbi
  • бесплатная для некоммерческого использования!

Все объекты, которые программируются в этой системе — «живут» в реальном с точки зрения физических законов мире — есть гравитация, можно захватывать предметы, столкновения, датчики расстояния, видео датчики и т.п.

Поработав некоторое время с этой системой, я решил рассказать про неё читателям хабра.

Да, и на картинке скриншот из V-REP, и модели роботов — которые вы можете программировать, и смотреть поведение, прямо на вашем компьютере.

Установка

Установим на компьютер эту систему, в разделе Download:

Видим три варианта: образовательный (EDU), триальный (EVAL), и плеер (player).

Плеер — это программа с помощью которой можно проиграть сцены созданные в полноценной версии (то есть нет возможности редактирования) — бесплатная.

Триальная — это полнофункциональная версия, в которой нет возможности сохранить. Нет лицензионных ограничений.

Образовательный — это полнофункциональный пакет, имеющий лицензионные ограничения, текст лицензии можно прочитать здесь. Суть его в том, что институты, школы, хоббисты — могут использовать бесплатно это программное обеспечение. При том, что использование не коммерческое (а образовательное).

Мы с вами вполне подходим под определение хоббистов (т.к. хотим образовательно по-программировать роботов), поэтому смело скачиваем версию EDU PRO для своей операционной системы.

В данный момент версия 3.2.0, вот прямая ссылка на windows вариант: V-REP_PRO_EDU_V3_2_0_Setup (98 Mb)

Старт

После установки, и старта мы увидим экран:

Здесь мы видим следующие объекты:

— сцена — здесь и происходит всё действо, на данный момент она пуста (есть только пол)
— слева видим блок с библиотекой моделей — сверху папки, и под ней — отображается содержимое выбранной папки (выбраны robots/non-mobile — то есть стационарные роботы — манипуляторы)
— далее отображается иерархия мира

Иерархия включает в себя — корневой объект (мир), в котором находятся все объекты.

В нашем примере это:

Видим источники света, видим объект для реализации пола (а это твердая поверхность, с текстурой), и группу для камер.

Есть главный объект скрипт, контролирующий сцену и всех объектов на ней, и у каждого объекта может быть свой скрипт — внутренние скрипты реализованы на языке Lua.

Вверху и слева мы видим toolbar — меню. Самой главной кнопкой является кнопка Play (Start Simulation) — после которой стартует симуляция сцены:

Сценарий работы следующий:
— мы перетаскиваем с помощью DragAndDrop объекты из библиотеки моделей.
— корректируем их местоположение
— настраиваем скрипты
— стартуем симулятор
— останавливаем симулятор

Попробуем что-нибудь на практике.

Быстрый старт

Попробуем оживить робота.

Для этого выбираем слева папку robots/mobile и в списке выбираем Ansi, захватываем, переносим на сцену и отпускаем, робот появляется на нашей сцене и появляется информация об авторе:

Теперь нажимаем на Start Simulation, и видим движение робота, и можем управлять положение головы, рук (реализовано через Custom User Interface), вот видео:

Далее останавливаем симуляцию:

Скрипт управления

Можем открыть и увидеть код, который научил робота идти (управляет автономным передвижением робота). Для этого на иерархии объектов, напротив модели Asti, дважды кликаем на иконке «файл»:

Вот Lua программа, которая осуществляет движение робота:

Скрипт управления движением робота Asti
if (sim_call_type==sim_childscriptcall_initialization) then 
	asti=simGetObjectHandle("Asti")
	lFoot=simGetObjectHandle("leftFootTarget")
	rFoot=simGetObjectHandle("rightFootTarget")
	lPath=simGetObjectHandle("leftFootPath")
	rPath=simGetObjectHandle("rightFootPath")
	lPathLength=simGetPathLength(lPath)
	rPathLength=simGetPathLength(rPath)
	ui=simGetUIHandle("astiUserInterface")
	simSetUIButtonLabel(ui,0,simGetObjectName(asti).." user interface")
	dist=0
	correction=0.0305
	
	minVal={0,			-- Step size
			0,			-- Walking speed
			-math.pi/2,	-- Neck 1
			-math.pi/8,	-- Neck 2
			-math.pi/2,	-- Left shoulder 1
			0,			-- Left shoulder 2
			-math.pi/2,	-- Left forearm
			-math.pi/2,	-- Right shoulder 1
			0,			-- Right shoulder 2
			-math.pi/2}	-- Right forearm
	rangeVal={	2,			-- Step size
				0.8,		-- Walking speed
				math.pi,	-- Neck 1
				math.pi/4,	-- Neck 2
				math.pi/2,	-- Left shoulder 1
				math.pi/2,	-- Left shoulder 2
				math.pi/2,	-- Left forearm
				math.pi/2,	-- Right shoulder 1
				math.pi/2,	-- Right shoulder 2
				math.pi/2}	-- Right forearm
	uiSliderIDs={3,4,5,6,7,8,9,10,11,12}

	relativeStepSize=1
	nominalVelocity=0.4
	neckJoints={simGetObjectHandle("neckJoint0"),simGetObjectHandle("neckJoint1")}
	leftArmJoints={simGetObjectHandle("leftArmJoint0"),simGetObjectHandle("leftArmJoint1"),simGetObjectHandle("leftArmJoint2")}
	rightArmJoints={simGetObjectHandle("rightArmJoint0"),simGetObjectHandle("rightArmJoint1"),simGetObjectHandle("rightArmJoint2")}
		
	-- Now apply current values to the user interface:
	simSetUISlider(ui,uiSliderIDs[1],(relativeStepSize-minVal[1])*1000/rangeVal[1])
	simSetUISlider(ui,uiSliderIDs[2],(nominalVelocity-minVal[2])*1000/rangeVal[2])
	simSetUISlider(ui,uiSliderIDs[3],(simGetJointPosition(neckJoints[1])-minVal[3])*1000/rangeVal[3])
	simSetUISlider(ui,uiSliderIDs[4],(simGetJointPosition(neckJoints[2])-minVal[4])*1000/rangeVal[4])
	simSetUISlider(ui,uiSliderIDs[5],(simGetJointPosition(leftArmJoints[1])-minVal[5])*1000/rangeVal[5])
	simSetUISlider(ui,uiSliderIDs[6],(simGetJointPosition(leftArmJoints[2])-minVal[6])*1000/rangeVal[6])
	simSetUISlider(ui,uiSliderIDs[7],(simGetJointPosition(leftArmJoints[3])-minVal[7])*1000/rangeVal[7])
	simSetUISlider(ui,uiSliderIDs[8],(simGetJointPosition(rightArmJoints[1])-minVal[8])*1000/rangeVal[8])
	simSetUISlider(ui,uiSliderIDs[9],(simGetJointPosition(rightArmJoints[2])-minVal[9])*1000/rangeVal[9])
	simSetUISlider(ui,uiSliderIDs[10],(simGetJointPosition(rightArmJoints[3])-minVal[10])*1000/rangeVal[10])
end 

if (sim_call_type==sim_childscriptcall_cleanup) then 
 
end 

if (sim_call_type==sim_childscriptcall_actuation) then 
	-- Read desired values from the user interface:
	relativeStepSize=minVal[1]+simGetUISlider(ui,uiSliderIDs[1])*rangeVal[1]/1000
	nominalVelocity=minVal[2]+simGetUISlider(ui,uiSliderIDs[2])*rangeVal[2]/1000
	simSetJointTargetPosition(neckJoints[1],minVal[3]+simGetUISlider(ui,uiSliderIDs[3])*rangeVal[3]/1000)
	simSetJointTargetPosition(neckJoints[2],minVal[4]+simGetUISlider(ui,uiSliderIDs[4])*rangeVal[4]/1000)
	simSetJointTargetPosition(leftArmJoints[1],minVal[5]+simGetUISlider(ui,uiSliderIDs[5])*rangeVal[5]/1000)
	simSetJointTargetPosition(leftArmJoints[2],minVal[6]+simGetUISlider(ui,uiSliderIDs[6])*rangeVal[6]/1000)
	simSetJointTargetPosition(leftArmJoints[3],minVal[7]+simGetUISlider(ui,uiSliderIDs[7])*rangeVal[7]/1000)
	simSetJointTargetPosition(rightArmJoints[1],minVal[8]+simGetUISlider(ui,uiSliderIDs[8])*rangeVal[8]/1000)
	simSetJointTargetPosition(rightArmJoints[2],minVal[9]+simGetUISlider(ui,uiSliderIDs[9])*rangeVal[9]/1000)
	simSetJointTargetPosition(rightArmJoints[3],minVal[10]+simGetUISlider(ui,uiSliderIDs[10])*rangeVal[10]/1000)
	
	
	-- Get the desired position and orientation of each foot from the paths (you can also use a table of values for that):
	t=simGetSimulationTimeStep()*nominalVelocity
	dist=dist+t
	lPos=simGetPositionOnPath(lPath,dist/lPathLength)
	lOr=simGetOrientationOnPath(lPath,dist/lPathLength)
	
	p=simGetPathPosition(rPath)
	rPos=simGetPositionOnPath(rPath,(dist+correction)/rPathLength)
	rOr=simGetOrientationOnPath(rPath,(dist+correction)/rPathLength)
	
	
	-- Now we have the desired absolute position and orientation for each foot.
	-- Now transform the absolute position/orientation to position/orientation relative to asimo
	-- Then modulate the movement forward/backward with the desired "step size"
	-- Then transform back into absolute position/orientation:
	astiM=simGetObjectMatrix(asti,-1)
	astiMInverse=simGetInvertedMatrix(astiM)
	
	m=simMultiplyMatrices(astiMInverse,simBuildMatrix(lPos,lOr))
	m[8]=m[8]*relativeStepSize
	m=simMultiplyMatrices(astiM,m)
	lPos={m[4],m[8],m[12]}
	lOr=simGetEulerAnglesFromMatrix(m)
	
	m=simMultiplyMatrices(astiMInverse,simBuildMatrix(rPos,rOr))
	m[8]=m[8]*relativeStepSize	
	m=simMultiplyMatrices(astiM,m)
	rPos={m[4],m[8],m[12]}
	rOr=simGetEulerAnglesFromMatrix(m)
	
	
	-- Finally apply the desired positions/orientations to each foot
	-- We simply apply them to two dummy objects that are then handled
	-- by the IK module to automatically calculate all leg joint desired values
	-- Since the leg joints operate in hybrid mode, the IK calculation results
	-- are then automatically applied as the desired values during dynamics calculation
	simSetObjectPosition(lFoot,-1,lPos)
	simSetObjectOrientation(lFoot,-1,lOr)
	
	simSetObjectPosition(rFoot,-1,rPos)
	simSetObjectOrientation(rFoot,-1,rOr)
	
end 
Другие модели

Вы можете удалить модель — для этого надо её выбрать, и нажать на Del. И можете попробовать посмотреть другие модели в работе, у некоторых есть скрипты для автономной работы.

Мобильные роботы

Стационарные роботы (манипуляторы)

Примеры сцен

Так же есть большое количество примеров (сцен), которые поставляются сразу с программой. Для этого надо выбрать в меню «File/Open scenes» и там перейти в папку: «V-REP3/V-REP_PRO_EDU/scenes».

Вот примеры сцен (файлы с расширением *.ttt):

Файлы сцен-примеров

2IndustrialRobots.ttt
3DoFHolonomicPathPlanning.ttt
6DoFHolonomicPathPlanning.ttt
BarrettHandPickAndPlace.ttt
blobDetectionWithPickAndPlace.ttt
ConstraintSolverExample.ttt
controlTypeExamples.ttt
e-puckDemo.ttt
environmentMapping.ttt
externalIkDemo.ttt
fabricationBlocks.ttt
fastClientServerCommunication.ttt
forwardAndInverseKinematics1.ttt
forwardAndInverseKinematics2.ttt
gearMechanism.ttt
genericDialogDemo.ttt
ghostDemo.ttt
ImageProcessingExample.ttt
inverseKinematicsOf144DofManipulator.ttt
jansenMechanism.ttt
katanaRobotWithCableSimulation.ttt
khepera3.ttt
LineTracer-threaded.ttt
millingMachine.ttt
millingRobot.ttt
motionPlanningAndGraspingDemo.ttt
motionPlanningDemo1.ttt
motionPlanningDemo2.ttt
motionPlanningDemo3.ttt
mouseTestScene.ttt
naturalSelectionAlgo.ttt
NonHolonomicPathPlanning.ttt
objectHandling.ttt
PaintingRobot.ttt
ParallelForwardAndInverseKinematics.ttt
practicalPathPlanningDemo.ttt
proximitySensorDemo.ttt
reflexxesMotionLibraryType4Demo.ttt
robotCollaboration1.ttt
robotCollaboration2.ttt
robotLanguageControl.ttt
rosTopicPublisherAndSubscriber.ttt
SocketAndTubeCommunicationExample.ttt
StripeScanner.ttt
weldingRobot.ttt
wirelessTransmission.ttt
youBotAndHanoiTower.ttt

Ссылки

* основной сайт V-REP
* руководство пользователя (на английском)
* большое количество видео, примеров из V-REP

Чтобы поддержать популяризацию этой интересной системы на русском языке — создана русскоязычная группа по V-REP.

Применение в учебном процессе

На мой взгляд, у V-REP есть хороший потенциал применения в учебных процессах. Если вас интересует применение системы в учебном процессе — в школе, институте, в клубе робототехники и т.п. — то можете заполнить анкету. Может быть получиться консолидировать усилия и сделать учебные русскоязычные материалы.
Планы на будущее


Конечно это лишь малая часть возможностей V-REP системы. В следующей публикации на примере рассмотрим создание задачи гоночного симулятора на робо-машинке от первого лица. Рассмотрим API. Создание объектов, настройка сцены и взаимодействие с пользователем.

habr.com

Среда программирования RobotON Studio

СКАЧАТЬ ПРОГРАММУ

Среда программирования RobotON Studio является графической и разработана специально для детей и взрослых, не имеющих начальных навыков программирования, но имеющих огромное желания заниматься робототехникой на Arduino. Данная программа была разработана программистами «RobotON» и используется как основной инструмент для программирования роботов в наших кружках.

Скриншот программы «RobotON Studio»

Зачем мы создали данный софт? Дело в том, что графическое ПО открывает двери в мир робототехники для студентов любого уровня (особенно для новичков!). Необходимость изучать синтаксис программного кода, искать мелкие ошибки в огромных программах, состоящих из страниц кода, – все это часто приводит к падению интереса у обучающихся, особенно у детей. Обратное происходит, если ребенок сразу видит результат своих действий, интерес в таком случае возрастает многократно!

Принцип работы RobotON Studio следующий: обучающиеся собирают разноцветные блоки в логическую цепочку, программный код, при этом, генерируется автоматически. Загрузка кода в плату Arduino происходит напрямую из программы. Таким образом, пользователи могут управлять различными устройствами, начиная светодиодами и заканчивая различными электромоторами и датчиками. С каждым обновлением мы расширяем базу поддерживаемых устройств, которые могут управляться с помощью среды программирования RobotON Studio.

Программирование Arduino и Arduino-совестимых плат в среде RobotON Studio подходит и для продвинутых пользователей, которые хотят перейти от простого графического программирования к реальному написанию кода. Изучать реальные команды можно, наблюдая за изменением кода в специальном окне RobotON Studio, во время любых взаимодействий с блоками (код генерируется в реальном времени!).

RobotON Studio в наших кружках робототехники

Все обучающиеся на наших курсах робототехники получают бесплатную лицензию на использование программы и могут пользоваться ей для домашних упражнений с роботами.

Что дает RobotON Studio
  • Возможность программирования Arduino без начальных знаний и навыков программирования
  • Возможность результативного использования детьми от 7 лет
  • Широкий спектр поддерживаемых плат, моторов, датчиков итд.
  • Бесплатное использование для наших учеников
  • Простой и понятный интерфейс
Установка RobotON Studio

Скачать RobotON Studio можно по ссылке. Программа сама устанавливает все необходимые драйвера и настраивает ваш компьютер на работу с любыми платами класса Arduino и китайскими аналогами.

По вопросам получения лицензии, обращайтесь в личные сообщения в группу в ВК или на почту [email protected]

Стоимость лицензии на использование ПО «RobotON Studio»:

robot-on.ru

Бесплатные торговые роботы

За годы трейдинга и алготрейдинга у нашей команды накопился гигантский и успешный багаж знаний в области алготрейдинга. И вот настала пора написать уберСтатью о том что ж мы думаем по этому поводу. Уже несколько лет наша команда делает торговых роботов. Для своего фонда, бесплатно, на заказ.

Попытался придать статье структуру Гайда, по которому можно получить целостное представление о мире алготрейдинга и выбрать правильный путь.

Кто за рулём: Алексей Ван Профессиональный программист. Последние несколько лет занимаюсь алготрейдингом. Закончил около 30ти коммерческих проектов, более 20ти для себя. Писал ботов, приводы, алерты, индикаторы, станции майнинга, оптимизаторы, коннекторы и т.д. Что можно придумать или написать программисту из этой области — я уже сделал. На сегодняшний момент являюсь хэдлайнером в разработке программного обеспечения для нашего фонда.Вот от сюда.

Простите за пафос, это не для самолюбования. А чтобы вы не решили пройти мимо. Ничего такого Вы больше нигде не найдёте. Я гарантирую.

План такой:

1. Трейдинг и его смысл

2. Торговые роботы- что такое?

3. Проблемы торговли «руками»

4. Как боты помогают трейдерам

5. Как искать закономерности

6. Пределы системной торговли

У нас будет далёкое начало, поскольку решил писать подробно. Чтобы многим читателям не приходилось бегать в википедию для изучения нюансов. Более того, в мире далёком от торговли на бирже встречал самые дикие и отвратительные формулировки того чем же я занимаюсь вместе со своими программами. Поэтому, сначала о важности спекуляций для каждого на планете земля, и только потом о роли МТС в этом бардаке.


Трейдинг, это — покупка и продажа ценных бумаг на бирже на основе прогноза, с целью извлечения прибыли. Прибыль соответственно возникает если вы покупаете дешевле и продаёте дороже.

Обычно сделки совершаются через «терминал», такую специальную программу, устанавливаемую на Вашем компьютере. Реже по телефону. Ещё совсем редко из «ямы», специального места на бирже.

Для прогнозирования используются десятки различных техник. Многие из них базируются на рассматривании графика цены, а затем попытки по нему определить, куда же дальше она пойдёт. Многие из них основываются на истинных знаниях, а какие-то нет, а значит ненаучны. Об этом мы поговорим ниже.

В контексте стабильности и эффективности ценообразования

Спекуляции, не просто канализатор любителей азартных игр (в народе гэмблеров). У этого рода деятельности есть весьма значительная, часто недооценённая функция.

А именно:

Трейдинг — делает рынки стабильными и сглаживает аномалии ценообразования

Для простого обывателя это выглядит так: Вы не можете встать утром и обнаружить что цена на сахар стала на 300 процентов дороже. Когда цену на товар формируют десятки тысяч человек, попытки занижать или завышать их — не возможны.

Ещё раз, как бы это глупо не звучало: Чем больше страна наполнена трейдерами, тем Вы более защищены от резких скачков валюты, акций, товаров/услуг и прочего.

Спекуляции — добро. Они помогают удерживать цены рядом со справедливыми значениями. Что улучшает качество жизни простых граждан.

Процесс поиска эффективной цены

Единственный способ прогнозировать поведение ценных бумаг на длительной перспективе, это «использование не эффективностей», или аномалий в движении цены. Большинство торговцев, так или иначе участвуют в процессе поиска, а затем устранения этих аномалий.

Всё что делают спекулянты во время прогнозирования это попытка найти брешь в эффективности рынка найти справедливую цену. А затем стать тем участником который поможет системе быть эффективнее, участвуя в торгах на нужной для этого стороне.

Если трейдер находит настоящую неэффективность (например, проблему в скорость распространения информации), а затем успешно её «закрывает», то он становиться важной частью по улучшению «эффективности» экономики. Он делает цены справедливее и прозрачнее. Он позволяет быстрее найти справедливую цену актива и как можно меньше от неё отклоняться.

Так, индустрия формируют «справедливые» цены на ценные бумаги. Это их глобальная задача и заслуга. Если не будет спекулянтов — цены будут диктоваться монополиями, что принесёт ущерб обывателям.

Торговые роботы (механические торговые системы(МТС), боты) — программные средства для торговли ценными бумагами вместо человека.

Обычно это оконное приложение, которое подключается к терминалу и само совершает сделки купли/продажи по ранее установленному алгоритму. Но не всегда. Существует несколько принципиально разных способов создания и эксплуатации таких систем.

2.1. Библиотеки для создания МТС

Самая сложная технология создания ботов. Самая быстрая. Обычно на выходе мы имеем оконное или консольное приложение. Это приложение подключается к терминалу или одному из интернет шлюзов доступных у брокера и осуществляет торговлю.

Эта технология никогда не была доступна массовому пользователю, т.к. для того чтобы писать ботов на библиотеке, нужно быть программистом.

Подобные технологии зародились в конце 20 века в банковской сфере, там где компании могли тратиться на большие команды программистов.

Лишь последние несколько десятилетий данные технологии распространяются среди обычных пользователей.

Для России это безусловно СтокШарп, пионеры, первооткрыватели данного направления в СНГ.

2.2. Торговые роботы встроенные в терминал

Во многих терминалах существует возможность создать МТС на скриптовом языке, прямо внутри терминала. Это может быть визуальный конструктор, места для вставки кода скриптового языка или полноценный редактор стратегий.

Когда-то давно это было прорывом для области алготрейдинга. Это самый заслуженный способ создания подобных программ. Он один из первых сделал доступным создание ботов для массового пользователя.

Конечно же, торговых роботов делали до того как появилась такая возможность, но тем не менее в своё время эта технология сделала прорыв.

Это очень простая технология. В большинстве случаев, на её изучение , достаточно нескольких недель.

Для России самый популярный терминал для написания МТС таким способом это Квик, благодаря нему, алготрейдинг пришёл в СНГ в начале двухтысячных.

На нашем сайте Вы можете бесплатно скачать торговых роботов созданных в терминале Квик, вот по этой ссылке.

2.3. Визуальные редакторы для создания торговых роботов

Две предыдущие технологии не могли в полной мере охватить всех желающих делать ботов, т.к. оставались в какой-то степени сложны. Но при этом огромное количество людей хотелось это делать не прикладывая к этому вообще никаких усилий. И вот, на заре 21 века в мир начали выходить редакторы.

Визуальный редактор — оконное приложение для создания ботов. Позволяет это делать неподготовленным людям, далёким от программирования. Время входа — несколько дней.

Визуальные редакторы позволяют путём несокльких манипуляций с кубиками, внутри логической схемы, создавать полноценные приложения для торговли.

Конечно же до сих пор популярные редакторы имеют ряд ограничений по сравнению с библиотеками и встроенными языками. В число таких ограничений входит невозможность проводить тестирование на стакане и во многих, отсутствие портфельной торговли.

Для России самый популярный визуальный редактор стратегий — ТсЛаб.

Прежде чем будем говорить о плюсах использования ботов, пройдёмся по тем проблемам которые подстерегают трейдера который хочет торговать по старинке — руками.

В торговле руками есть плюсы и минусы. Прошу прощения за снобизм, но здесь мы будем обсуждать лишь минусы. Если нужны «неоспоримые» плюсы этого вида трейдинга, go в кухню на семинар. Я же никаких плюсов в сравнении с алгоритмической, к сожалению не вижу.

3.1. Не правильное понимание механики рынка

Думается мне, что до 95% всех кто торгует руками не понимает как долгосрочно быть в выигрыше. Как на длительном периоде быть на нужной стороне графика.

Писал об этом обширнейшую статью: ссылка. Почитайте, не поленитесь. Будет весело.

Из этого возникает вопрос: почему люди имеют не правильные представления о спекуляциях? Остановимся на этом.

НеНаучность литературы

Большинство трудов по трейдингу написаны людьми далёкими от точных дисциплин, методологий верификаций знаний. Поэтому эти книги содержат ненаучные, или даже антинаучные знания. Знания которые вводят читателя в заблуждение.

Начиная свой путь в эту сферу, люди становятся заложниками этих фантазий — торгуют основываясь на ложных рыночных парадигмах.

Сектантство и идолопоклонничество

Как нигде в другой области, в трейдинге распространено идолопоклонничество, сектантство, даже культ личности. Ведь как и в любом деле в котором часто сама жизнь зависит от принимаемых решений, слабые всегда стремятся переложить ответственность на другого человека.

Очень часто это становиться причиной неправильных представлений о рынке. Попадая в «околорыночную секту», человек утрачивает способность трезво мыслить. Толпа «верующих» захлёстывает разум, после чего человек начинает входить в позиции на основе знаний и прогнозов «ГУРУ».

Это смешно читать если Вы не сталкивались с этим. Но если Вы понимаете как функционируют форумы «Эллиотчиков», «Свечных аналитиков» или «следящих за куклом(трейдерское божество)», то это становиться грустно. Ибо таких людей очень и очень немало. Специальных исследований никто не проводит, но мне на глазок кажется что это несколько десятков процентов.

Отсутствие научной базы

В абсолютном большинстве источников(литературных, курсы обучения, видео-гайдах), которые претендуют на обучение человека нашему ремеслу, его не учат искать не Эффективности. Человеку не предлагается универсальный способ работы с информацией. В общем случае обучение сводиться к зазубриванию некоторых правил торговли, зная которые человек будет всегда на правильной стороне.

Подобный подход к обучению новичков плодит людей неспособных реагировать на новые обстоятельства и изучать предмет самостоятельно.

Как результат всего вышеперечисленного, имеем у большинства торговцев проблемы с восприятием реальности. Как если бы водители на дорогах ездили с завязанными глазами или могли поворачивать только на лево.

3.2. Психология

Если в предыдущем главе мы рассматривали неспособность людей выработать план. То в текущей мы поговорим о не способности человека следовать своим правилам.

Иными словами, даже когда у Вас на руках будет готовая и проверенная рыночная аномалия, или не эффективность, Вы всё равно не сможете её правильно использовать. Человеческая психология создаёт здесь множество рисков.

Углубляться подробно в это не будем. Для того чтобы более менее сносно об этом писать, нужно отучиться много лет на соответствующей кафедре и разбираться в поведении человека.

Однако факт такой есть: люди системно не способны следовать своему же плану. Т.е. ошибки неизбежны и значимы. Человеческий фактор в огромен.

3.3. Обучение через депозит

Людям приходящим в спекуляции и решающим начать с торговли руками свойственно верить в «накапливание» опыта. В то что созерцание графика или совершение операций на реальные деньги их чему то научит. В любой другой сфере деятельности это было бы нормально. Но только если бы речь шла не о статистически значимых выборках. Ведь для того чтобы увидеть и оттестировать какие-то виды стратегий одному человеку, без помощи технических средств, понадобиться несколько жизней.

Например спекулянт увидел повторяющуюся формацию 50 раз, и решил её торговать. Но! Это наблюдение не является статистически значимым. И человек начинает терять деньги. Ведь он не знает что нужно увидеть формацию 1500 раз и более, чтобы считать её стабильной(это утверждение легко проверяется форвардными тестами). В итоге подобные эксперименты оканчиваются одинаково — потерей денег и/или обнулением депозита.

Одна из основополагающих мантр трейдинга гласит — «Входите в сделки — теряйте деньги, и в этом процессе вы научитесь торговать. Чтобы научиться вставать, нужно научиться падать.»

Это пошло из популярнейшей книги среди трейдеров: «История биржевого спекулянта» Эдвина Лафевра. Эта первая книга которую читает любой любой спекулянт. Она рекомендуется абсолютным большинством трейдеров к прочтению.

Год за годом, люди идут по этому пути но не могут найти стабильных закономерностей и прибыльных стратегий. Их опыт не даёт им возможность получать прибыль.

Отказ от использования технических средств — приводит в тупик от 95 до 99 % всех трейдеров.

В предыдущей главе, мы посмотрели на основные проблемы спекуляций «руками». Теперь разберёмся с тем, как же можно нивелировать их при помощи алгоритмизации торговли.

Представим что мы уже алготрейдер, и выясним, как мы справляемся с проблемами понимания механики рынка и «психологией».

4.1. Прозрачное, научное, истинное понимание механики рынка

У алготрейдеров есть ясное представление о движениях цены акций на рынке. После нескольких лет исследований наково человека нельзя сбить с пути псевдонаучной литературой и демагогией. Боты — не верят в харизматических лидеров.

Научный подход к исследованию рынка гарантирует Вам истинные представления о функционировании рынка. Это гарантируется использованием технических средств а также статистически значимыми выборками во время поиска неэффективностей.

4.2. Проблемы психологии «нет»

В общем случае проблемы психологии перестают существовать. Вместе с человеческим фактором. Ничего такого бот сам генерировать не может.

Торговые роботы не станут паниковать, не передумают через пару минут после того как вошли в позицию. Их нельзя напугать новостными передачами или выступлением всем известного «Гуру».

Однако, взял слово НЕТ в кавычки, т.к. в некотором роде человеческий фактор таки есть. Но немного в изменённом формате. Всегда, в любой момент времени существует искушение отключить программу, частично или полностью. Вмешаться в работу. От этого никуда не деться…

4.3. Исследование рынка техническими средствами

Алготрейдеру не нужно тратить свои деньги на исследование рынка или десятилетие учиться торговать разглядывая графики. Исследование рынка для него — это использование специальных программ, которые делают за него всю работу.

А это уже прямая экономия денег и времени.

Конечно же, изучение подобных программ требует времени. Иногда это занимает несколько лет. Но итоговые плюсы очевидны.

Кроме того, подобный подход позволяет постоянно оставаться на «острие кинжала». Иметь в комплекте только рабочие, оттестированные стратегии. Своевременно перетряхивайте портфель ботов и меняйте аномалии которые они используют. Это максимизирует время которое Вы будете в плюсе.

В этой главе поговорим о технических средствах и методологиях исследования рынка на предмет не эффективностей, которые помогут нам заработать.

Начнём с ГРААЛЯ. Внимательно читайте эту главу! Она сэкономит Вам очень много времени!

5.0. Что искать?

Стратегии

Глобально, за 5ть лет исследований я понял одно: на рынке есть несколько типов стратегий которые зарабатывают. Надо начинать с самых простых не выдумывая велосипеды:

1) ТРЕНД. Алгоритмы направленные на поиск формаций которые сигнализируют о начале большого движения. В процессе нужно сосредоточиться на поиске выхода из консолидации и как можно долгом удержании позиции. Без резких выходов, тем более без коротких стопов.

2) АРБИТРАЖ. Алгоритмы основанные на возврате к среднему.

И то и другое работает. Причём Арбитраж работает на Форекс, что, с его супер Эффективным рынком — невероятно. Что может означать, что на ММВБ он будет работать ещё очень долго.

Не ищите больше ничего. Сосредоточьтесь на этих двух типах стратегий. Если появиться понимание как это работает — Вы станете богом рынка, сможете двигаться дальше. Если Вы не найдёте ничего Трендового и Арбитражного на ММВБ — смело идите на завод, Вам никогда не следует заниматься трейдингом.

Стопы и выходы

В трендовых алгоритмах выход важнее чем вход. Надо обратить на это особое внимание.

В арбитражных я такого не заметил. В них важно сосредоточиться на точке входа.

Волатильность

Следите за волатильностью рынка. Без этого любой алгоритм скатиться в УГ за пару лет. Всегда привязывайте логику к волатильности. Это индикаторы ADX и ATR и т.д. Торговые роботы не смотрящие за волатильностью — мёртвые при рождении.

Управление капиталом и портфели

Никогда не запускайте бота одного. В реальных торгах должно принимать участие от 5ти разных алгоритмов. Только так можно хоть немного сделать эквити гладкой. Это очень Важно, т.к. после нескольких месяцев просадки или боковика появиться желание отключить прогрмму. Чтобы этого не было, включайте комплект стратегий.

Не торговые часы

Не торгуйте в определённое время. Это связано с «пределами алгоритмической торговли», о чём мы поговорим немного позже. Пока скажу лишь что МТС нужны люди чтобы их «отжимать» — если люди перестали нажимать на кнопки, они перестают зарабатывать. А это топливо имеет свойство уставать, спать, работать и праздновать праздники. Торгуйте только в самые активные часы.

5.1. Программы для тестирования и исследований

Теперь настала пора поговорить об инвентаре.

Существуют специальные программы, обычно это оконные приложения, которые помогают алготрейдерам тестировать свои идеи и искать закономерности. Это тестеры, майнеры, оптимизаторы, много их…

Я не буду здесь расписывать их подробно. Их существует несколько десятков и многие из них хороши. Остановимся лишь на тех, которые лично мне нравятся.

5.1.1 ВелсЛаб

Познакомился с этой программой сравнительно недавно, около года назад. Прекрасная платформа для тестирования! До того момента всё удивлялся прозорливости отечественных разработчиков похожих платформ. После знакомства с ней я понял где они это позаимствовали.

Несколько режимов написания стратегий: в виде кода, правил и в виде визуального редактора. На любой вкус.

Это разработка западных программистов, представляющая обширнейший арсенал для исследования рынка.

Плохо в этой программе лишь то, что она заточена только под западные площадки. Поэтому для СНГ это просто станция для тестирования.

5.1.2. ТсЛаб

Российский аналог предыдущего продукта, с отсутствием последнего недостатка. Этой программой можно как вести исл, так и торговать.

В арсенале у нас так же несколько видов написания ботов, как в виде блок-схем, так и в виде кода. Богатый оптимизатор и прекрасная, русская поддержка с огромным форумом.

Единственной проблемой, по моему мнению, является не возможность паралельно тестировать комплект стратегий. Надо «заталкивать» всех в один скрипт.

5.1.3. Самописные библиотеки

Это то с чего я начинал…

Для начала нужно стать программистом. Затем открываем новый проект в компиляторе — пишем сами.

Можно попробовать пойти по этому пути. Займёт это примерно два года до первого нормального тестера. Когда я говорил о том, что я сделал так в 2010, на меня смотрели как на дурачка. Ведь вокруг очень много способов тестировать своих торговых роботов не тратя на это нескольких лет жизни.

Всё что захочется можно реализовать в коде. Единственная проблема — время. Вы потратите на это очень и очень много времени.

Также, это единственный способ тестировать торговых роботов которые в логике используют ордер лог или снепШот стакана.

И да, это единственный способ сделать по настоящему быстрый HFT алгоритм.

5.2. Методология тестирования стратегий

Во время тестирования торговых роботов нужно придерживаться нескольких простых правил. Они когда-то помогли мне, а значит обязательно помогут Вам.

Количество входов имеет значение

Если кол-во входов во время тестирования меньше 1000, то в 70-90% вероятность что такой алгоритм не будет работать в будущем.

Отнеситесь к этому моменту серьёзно. Если не получается добрать до этой цифры в одном инструменте — берите несколько, берите данные не за три, а за пять лет. Делайте что хотите, но количество входов должно быть большим. 1000, 2000, 5000. Только так форвардные тесты могут быть положительны.

Всегда делайте Форвардные тесты

Необходимо проводить форвардные тесты. Оставляйте небольшое кол-во данных для того чтобы на них потом проверить готовую стратегию.

Это правило тесно связано с предыдущим. В ходе своих исследований наша команда заметила что между количеством входов на основном интервале тестирования и успешностью форвардных тестов есть прямая зависимость. Которую можно представить следующим графиком:

Группируйте инструменты

Инструменты представленные на рынке — разные. Какие-то трендовые, другие подходят для арбитража. Ни в коем случае не рассчитывайте что тенденция измениться.

Вы поймёте какие из них для чего подходят во время своих первых тестов. Там вещи довольно очевидные. Далее тестируйте и торгуйте трендовые алгоритмы на трендовых инструментах, арбитражные на арбитражных

Здесь никаких особых советов и техник нет. Всё вроде бы очевидно, но таки напишу об этом.

Тестируем стратегию не меньше месяца на учебном счете

Почти у любого брокера есть возможность заказать тестовый сервер. Не торопитесь. Ошибки обязательно будут. Как логические так и технические. Нужно их устранить до начала торгов.

Не запускайте программу с Вашего домашнего ПК

Всегда пользуйтесь услугами VDS. Запускайте ботов на удалённых серверах Виндовс. Так Вы сможете гарантировать программе постоянный доступ в интернет а также стабильное соединение с биржей. (Перебрал их не менее 10, сейчас пользуюсь https://ruvds.com)

В заключении охота пожелать Вам удачи на поприще изучения алготрейдинга. Мы постарались сделать удобный сервис для быстрого старта. Надеемся он оказался для Вас полезен.

Торгуйте алгоритмически! Пишите роботов, тестируйте свои идеи!

Удачных алгоритмов!

o-s-a.net

Программирование роботов. Разработка робототехники

Программист-разработчик андроидов, работающий на стыке кибернетики, психологии и бихевиоризма (науки о поведении), и инженер, составляющий алгоритмы для промышленных роботизированных комплексов, среди основных инструментов которого — высшая математика и мехатроника, работают в самой перспективной отрасли ближайших лет — робототехнике. Роботы, несмотря на сравнительную новизну термина, издавна знакомы человечеству. Вот лишь несколько фактов из истории развития умных механизмов.

Железные люди Анри Дро

Еще в мифах Древней Греции упоминались механические рабы, созданные Гефестом для выполнения тяжелых и однообразных работ. А первым изобретателем и разработчиком человекоподобного робота стал легендарный Леонардо да Винчи. До наших дней сохранились подробнейшие чертежи итальянского гения, описывающие механического рыцаря, способного имитировать человеческие движения руками, ногами, головой.

Созданию первых автоматических механизмов с программным управлением положили начало в конце XVΙΙΙ века европейские часовые мастера. Наиболее преуспели на этом поприще швейцарские специалисты отец и сын Пьер-Жак и Анри Дро. Ими создана целая серия человекоподобных роботов («пишущий мальчик», «рисовальщик», «музыкантша») в основе управления которыми лежали часовые механизмы. Именно в честь Анри Дро в дальнейшем все программируемые человекоподобные автоматы стали называть «андроидами».

У истоков программирования

Основы программирования промышленных роботов были заложены на заре XIX века во Франции. Здесь же и были разработаны первые программы для автоматических текстильных станков (прядильных и ткацких). Стремительно растущая армия Наполеона остро нуждалась в обмундировании и, следовательно, тканях. Изобретатель из Лиона Жозеф Жаккар предложил способ быстрой перенастройки ткацкого станка для производства различных видов продукции. Нередко эта процедура требовала огромного количества времени, колоссальных усилий и внимания целого коллектива. Суть нововведения сводилась к использованию картонных карточек с перфорированными отверстиями. Иглы, попадая в просеченные места, необходимым образом смещали нити. Смена карт быстро проводилась оператором станка: новая перфокарта — новая программа — новый тип ткани или узора. Французская разработка стала прообразом современных автоматизированных комплексов, роботов с возможностью программирования.

Идею, предложенную Жаккаром, с восторгом использовали в своих автоматических устройствах многие изобретатели:

  • Начальник статистического управления С. Н. Корсаков (Россия, 1832 г.) — в механизме для сравнивания и анализа идей.
  • Математик Чарльз Бэббидж (Англия, 1834 г.) — в аналитической машине для решения широкого круга математических задач.
  • Инженер Герман Холлерит (США, 1890 г.) — в устройстве для хранения и обработки статистических данных (табуляторе). Для заметки: в 1911 году компания. Холлерита получила название IBM (International Business Machines).

Перфокарты были основными носителями информации вплоть до 60-х годов прошлого века.

Своим названием интеллектуальные машины обязаны чешскому драматургу Карелу Чапеку. В пьесе «R.U.R.», увидевшей свет в 1920 году, писатель назвал роботом искусственного человека, созданного для тяжелых и опасных участков производства (robota (чешск.) — каторга). А что отличает робота от механизмов и автоматических устройств? В отличие от последних, робот не только выполняет определенные действия, слепо следуя заложенному алгоритму, но и способен более тесно взаимодействовать с окружающей средой и человеком (оператором), адаптировать свои функции при изменении внешних сигналов и условий.

Принято считать, что первый действующий робот был сконструирован и реализован в 1928 году американским инженером Р. Уэнсли. Человекоподобный «железный интеллектуал» получил имя Герберт Телевокс. На лавры пионеров претендуют также ученый-биолог Макото Нисимура (Япония, 1929 г.) и английский военнослужащий Уильям Ричардс (1928 г.). Созданные изобретателями антропоморфные механизмы имели схожий функционал: способны были двигать конечностями и головой, выполнять голосовые и звуковые команды, отвечать на простые вопросы. Основным предназначением устройств была демонстрация научно-технических достижений. Очередной виток в развитии технологий позволил в скором времени создать и первых индустриальных роботов.

Поколение за поколением

Разработка робототехники представляет собой непрерывный, поступательный процесс. К настоящему моменту сформировались три ярко выраженных поколения «умных» машин. Каждое характеризуется определенными показателями и сферами применения.

Первое поколение роботов создавалось для узкого вида деятельности. Машины способны выполнять только определенную запрограммированную последовательность операций. Устройства управления роботами, схемотехника и программирование практически исключают автономное функционирование и требуют создания специального технологического пространства с необходимым дополнительным оборудованием и информационно-измерительными системами.

Машины второго поколения называют очувствленными, или адаптивными. Программирование роботов осуществляется с учетом большого набора внешних и внутренних сенсоров. На основе анализа информации, поступающей с датчиков, вырабатываются необходимые управляющие воздействия.

И наконец, третье поколение — интеллектуальные роботы, которые способны:

  • Обобщать и анализировать информацию,
  • Совершенствоваться и самообучаться, накапливать навыки и знания,
  • Распознавать образы и изменения ситуации, и в соответствии с этим выстраивать работу своей исполнительной системы.

В основе искусственного интеллекта лежит алгоритмическое и программное обеспечение.

Общая классификация

На любой представительной современной выставке роботов многообразие «умных» машин способно поразить не только простых обывателей, но и специалистов. А какие бывают роботы? Наиболее общую и содержательную классификацию предложил советский ученый А. Е. Кобринский.

По назначению и выполняемым функциям роботов подразделяют на производственно-промышленные и исследовательские. Первые, в соответствии с характером выполняемых работ, могут быть технологическими, подъемно-транспортными, универсальными или специализированными. Исследовательские предназначены для изучения областей и сфер, опасных или недоступных для человека (космическое пространство, земные недра и вулканы, глубоководные слои мирового океана).

По типу управления можно выделить биотехнические (копирующие, командные, киборги, интерактивные и автоматические), по принципу — жестко программируемые, адаптивные и гибко программируемые. Бурное развитие современной микропроцессорной техники предоставляет разработчикам практически безграничные возможности при проектировании интеллектуальных машин. Но отличное схемное и конструктивное решение будет служить лишь дорогостоящей оболочкой без соответствующего программного и алгоритмического обеспечения.

Основы программирования роботов

Чтобы кремний микропроцессора смог взять на себя функции мозга робота, необходимо «залить» в кристалл соответствующую программу. Обычный человеческий язык не способен обеспечить четкую формализацию задач, точность и надежность их логической оценки. Поэтому требуемая информация представляется в определенном виде с помощью языков программирования роботов.

В соответствии с решаемыми задачами управления выделяют четыре уровня такого специально созданного языка:

  • Низший уровень используется для управления исполнительными приводами в виде точных значений линейного или углового перемещения отдельных звеньев интеллектуальной системы,
  • Уровень манипулятора позволяет осуществлять общее управление всей системой, позиционируя рабочий орган робота в координатном пространстве,
  • Уровень операций служит для формирования рабочей программы, путем указания последовательности необходимых действий для достижения конкретного результата.
  • На высшем уровне — заданий — программа без детализации указывает что надо сделать.

Робототехники стремятся свести программирование роботов к общению с ними на языках высшего уровня. В идеале оператор ставит задачу: «Произвести сборку двигателя внутреннего сгорания автомобиля» и ожидает от робота полного выполнения задания.

Языковые нюансы

В современной робототехнике программирование роботов развивается по двум векторам: роботоориентированное и проблемно ориентированное программирование.

Наиболее распространенные роботоориентированные языки — AML и AL. Первый разработан фирмой IBM только для управления интеллектуальными механизмами собственного производства. Второй — продукт специалистов Стэндфордского университета (США) — активно развивается и оказывает существенное влияние на формирование новых языков этого класса. Профессионал легко разглядит в языке характерные черты Паскаля и Алгола. Все языки, ориентированные на роботов, описывают алгоритм, как последовательность действий «умного» механизма. В связи с этим программа зачастую выходит очень громоздкой и неудобной в практической реализации.

При программировании роботов на проблемно ориентированных языках, в программе указывается последовательность не действий, а целей или промежуточных позиций объекта. Наиболее популярным в этом сегменте является язык AUTOPASS (IBM), в котором состояние рабочей среды представлено в виде графов (вершины — объекты, дуги — связи).

Обучение роботов

Любой современный робот представляет собой обучаемую и адаптивную систему. Вся необходимая информация, включающая знания и умения, передается ей в процессе обучения. Это осуществляется, как непосредственным занесением в память процессора соответствующих данных (детальное программирование — семплинг), так и с использованием сенсоров робота (методом наглядной демонстрации) — все движения и перемещения механизмов робота заносятся в память и затем воспроизводятся в рабочем цикле. Обучаясь, система перестраивает свои параметры и структуру, формирует информационную модель внешнего мира. Это и есть основное отличие роботов от автоматизированных линий, промышленных автоматов с жесткой структурой и других традиционных средств автоматизации. Перечисленные методы обучения обладают существенными недостатками. Например, при семплинге перенастройка требует определенного времени и труда квалифицированного специалиста.

Весьма перспективной выглядит программа для программирования роботов, представленная разработчиками Лаборатории информационных технологий при Массачусетском технологическом институте (CSAIL MIT) на международной конференции промышленной автоматизации и робототехники ICRA-2017 (Сингапур). Созданная ими платформа C-LEARN обладает достоинствами обоих методов. Она предоставляет роботу библиотеку элементарных движений с заданными ограничениями (например, усилие хвата для манипулятора в соответствии с формой и жесткостью детали). В то же время, оператор демонстрирует роботу ключевые движения в трехмерном интерфейсе. Система, исходя из поставленной задачи, формирует последовательность операций для выполнения рабочего цикла. C-LEARN позволяет переписать существующую программу для робота другой конструкции. Оператору при этом не требуются углубленные знания в области программирования.

Робототехника и искусственный интеллект

Специалисты Оксфордского университета предупреждают, что в ближайшие два десятилетия машинные технологии заменят более половины сегодняшних рабочих мест. Действительно, роботы давно уже трудятся не только на опасных и трудных участках. Например, программирование торговых роботов значительно потеснило брокеров-людей на мировых биржах. Несколько слов об искусственном интеллекте.

В представлении обывателя это антропоморфный робот, способный заменить человека во многих сферах жизни. Отчасти так и есть, но в большей степени искусственный интеллект — это самостоятельная отрасль науки и технологии, с помощью компьютерных программ, моделирующая мышление «Homo sapiens», работу его мозга. На сегодняшнем этапе развития ИИ больше помогает людям, развлекает их. Но, по прогнозам экспертов, дальнейший прогресс в области робототехники и искусственного интеллекта может поставить перед человечеством целый ряд морально-этических и юридических вопросов.

В этом году на выставке роботов в Женеве самый совершенный андроид София заявила, что учится быть человеком. В октябре София впервые в истории искусственного интеллекта была признана гражданкой Саудовской Аравии с полноценными правами. Первая ласточка?

Основные тенденции робототехники

В 2017 году специалисты цифровой индустрии отметили несколько выдающихся решений в области технологий виртуальной реальности. Не осталась в стороне и робототехника. Очень перспективным выглядит направление совершенствующее управление сложным робомеханизмом через виртуальный шлем (VR). Эксперты пророчат востребованность такой технологии в бизнесе и промышленности. Вероятные сценарии использования:

  • Управление беспилотной техникой (складскими погрузчиками и манипуляторами, дронами, трейлерами),
  • Проведение медицинских исследований и хирургических операций,
  • Освоение труднодоступных объектов и областей (дно океана, полярные области). Кроме того, программирование роботов позволяет им осуществлять и автономную работу.

Еще один популярный тренд — connected car. Совсем недавно представители гиганта Apple заявили о старте разработок собственного «беспилотника». Все больше фирм выражают свою заинтересованность в создании машин, способных самостоятельно перемещаться по пересеченным трассам, сохраняя грузы и оборудование.

Возрастающая сложность алгоритмов программирования роботов и машинного обучения предъявляет повышенные требования к вычислительным ресурсам и, следовательно, к «железу». По-видимому, оптимальным выходом в этом случае будет подключение устройств к облачной инфраструктуре.

Важное направление — когнитивная робототехника. Стремительный рост количества «умных» машин заставляет разработчиков все чаще задумываться о том, как научить роботов слаженно взаимодействовать.

fb.ru

Робот (программа) Википедия

Ро́бот, или бот(мн.ч. Бóты), а также интернет-бот, www-бот и тому подобное (англ. bot, сокращение от чеш. robot) — специальная программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.

При обсуждении компьютерных программ слово употребляется в основном в применении к Интернету.

Общая информация[ | ]

Обычно боты предназначаются для выполнения работы, однообразной и повторяемой, с максимально возможной скоростью (очевидно, намного выше возможностей человека). Лицо, обслуживающее серверы, может поместить на сервере файл robots.txt, содержащий ограничения, которым обязаны подчиняться боты[1].

Боты находят также применение в условиях, когда требуется лучшая реакция по сравнению с возможностями человека (например, игровые боты, боты для интернет-аукционов и тому подобное) или, реже, для имитации действий человека (например, боты для чатов и тому подобное).

Чат-бот может выдать достаточно адекватный ответ на вопрос, сформулированный на правильном русском языке (или любом другом, работа с которым поддерживается). Такие боты часто применяются для сообщения прогноза погоды, результатов спортивных соревнований, курсов валют, биржевых котировок и тому подобное Они находят применение, например, в системе SmarterChild в AOL Instant Messenger и MSN messenger.

В IRC боты применяются для «удержания» канала, комментирования определённых фраз, отправленных пользователями (по сопоставлению с образцом). Это достаточно полезное средство для помощи новичкам или борьбы с крепкими выражениями.

Чат-боты[ | ]

Чат-бот — это программа, работающая внутри мессенджера. Такая программа способна отвечать на вопросы а также самостоятельно задавать их. Чат-боты используются в разных сферах для решения типовых задач.

По прогнозам Business Insider, уже к 2020 году 80 % компаний будет пользоваться чат-ботами[2].

Чат-боты могут использоваться в службах поддержки, помогая решить простые вопросы, например, такие как смена пароля.

Чат-боты можно использовать для поиска информации. Например, прогноз погоды, афиша мероприятий. В мессенджере Telegram можно найти десятки тысяч ботов, способных рассказать о погоде или помочь выбрать подарок[3].

Сфера путешествий стали одними из самых первых использовать чат-боты. Чат-бот может предложить направления/рейсы/рестораны — на основании поисковых запросов и предпочтений пользователя. После покупки программа обеспечивает клиентскую поддержку, предоставляя ответы на часто задаваемые вопросы[4].

Чат-боты помогают работодателям и соискателям в процессе поиска работы и подбора кадров[5]. Летом 2016 года агентство по поиску работы FirstJob выпустило чат-бота Мия, который не только предлагает подходящие вакансии, но и проводит с кандидатом на вакансию собеседование. В России собеседования проводил чат-бот от компании Superjob для компании «Связной»[5].

Маркетолог Эстер Краудфорд создала чат-бота EtherBot, который рассказывает представителям hr-департаментов о карьере хозяйки, её способностях и хобби[5].

Чат-боты можно использовать как персональных помощников. Изобретатель хештега

ru-wiki.ru

Добавить комментарий

Ваш адрес email не будет опубликован.