програмуємо роботів

програмуємо роботів

Програмування роботів - це цікаво.

Багато напевно бачили японських гуманоїдних роботів, або французький навчальний робот NAO. цікавим виглядає проект учня робота-маніпулятор Baxter. Промислові маніпулятори KUKA з Німеччини - це класика. Хтось програмує системи конвеєрної обробки (фільтрації, сортування). Дельта роботи. Є цілий пласт - управління квадрокоптера / алгоритми стабілізації. І звичайно ж прості трудяги на складі - Line Follower.

Але все це як правило - не дешеві іграшки, тому доступ до роботам є в спеціалізованих лабораторіях або інститутах / школах де отримали фінансування і є ці напрямки. А всім іншим розробникам (кому цікава робототехніка) - залишається заздрісно дивитися.

Деякий час назад я вийшов на досить цікаву систему - 3д робосімулятор V-REP, від швейцарської компанії Coppelia Robotics.

До свого (приємному) подив я виявив, що ця система:

Попрацювавши деякий час з цією системою, я вирішив розповісти про неї читачам Хабра.

Так, і на зображенні скріншот з V-REP, і моделі роботів - які ви можете програмувати, і дивитися поведінку, прямо на вашому комп'ютері.

Встановимо на комп'ютер цю систему, в розділі Download:

програмуємо роботів

Бачимо три варіанти: освітній (EDU), тріальний (EVAL), і плеєр (player).

Плеєр - це програма за допомогою якої можна програти сцени створені в повноцінної версії (тобто немає можливості редагування) - безкоштовна.

Тріальна - це багата версія, в якій немає можливості зберегти. Ні ліцензійних обмежень.

Освітній - це повнофункціональний пакет, який має ліцензійні обмеження, текст ліцензії можна прочитати тут. Суть його в тому, що інститути, школи, хоббісти - можуть використовувати безкоштовно це програмне забезпечення. При тому, що використання не комерційне (а освітній).

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

Після установки, і старту ми побачимо екран:

програмуємо роботів

Тут ми бачимо такі об'єкти:

- сцена - тут і відбувається все дійство, на даний момент вона порожня (є тільки стать)
- зліва бачимо блок з бібліотекою моделей - зверху папки, і під нею - відображається вміст вибраної папки (обрані robots / non-mobile - тобто стаціонарні роботи - маніпулятори)
- далі відображається ієрархія світу

Ієрархія включає в себе - кореневої об'єкт (світ), в якому знаходяться всі об'єкти.

У нашому прикладі це:

програмуємо роботів

Бачимо джерела світла, бачимо об'єкт для реалізації статі (а це тверда поверхня, з текстурою), і групу для камер.

Є головний об'єкт скрипт, який контролює сцену і всіх об'єктів на ній, і у кожного об'єкта може бути свій скрипт - внутрішні скрипти реалізовані на мові Lua.

Вгорі і зліва ми бачимо toolbar - меню. Найголовнішою кнопкою є кнопка Play (Start Simulation) - після якої стартує симуляція сцени:

програмуємо роботів

Сценарій роботи наступний:
- ми перетягуємо з допомогою DragAndDrop об'єкти з бібліотеки моделей.
- коригуємо їх розташування
- налаштовуємо скрипти
- стартуємо симулятор
- зупиняємо симулятор

Спробуємо що-небудь на практиці.

Швидкий старт

Спробуємо оживити робота.

програмуємо роботів

Далі зупиняємо симуляцію:

програмуємо роботів

скрипт управління

Чи можемо відкрити і побачити код, який навчив робота йти (управляє автономним пересуванням робота). Для цього на ієрархії об'єктів, навпаки моделі Asti, двічі натискаємо на іконці «файл»:

програмуємо роботів

Ось Lua програма, яка здійснює рух робота:

Скрипт управління рухом робота Asti

інші моделі

Ви можете видалити модель - для цього треба її вибрати, і натиснути на 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 є хороший потенціал застосування в навчальних процесах. Якщо вас цікавить застосування системи в навчальному процесі - в школі, інституті, в клубі робототехніки і т.п. - то можете заповнити анкету. Може бути вийти консолідувати зусилля і зробити навчальні російськомовні матеріали.

Плани на майбутнє

Схожі статті