SlideShare a Scribd company logo
1 of 24
Using Python in
Choregraphe
NAOqi Framework
1/ Създаване на New Box в Choreographe
Име на кутийката
Кратко обяснение на
кутийката
Избор на изображение
за кутийката
Прибавяне на нова променлива
Изтриване на избрана променлива
Редактиране на настройките на избрана променлива
2/ Създаване на нова библиотека
3/ Прибавяме новосъздадената кутийка в новата
библиотека.
4/ Прибавяне на променлива към кутийката
5/ Редактиране на Python script
Hello World 2 - using Python in
Choregraphe
Стартирай Choregraphe.
Кликни върху Connect to бутона и свържи Choregraphe с твоя робот.
С Кликане на десен бутон избери Create a new Box > Python...
Напиши име, например: My hello world, и кликни
върху OK.
Отвори Script editor прозореца.
MyClass е клас, който се генерира
автоматично и е наследник на
GeneratedClass
MyClass е съставен от предварително
дефинирани методи.
Тъй като е наследствен на
GeneratedClass дава възможност да се
ползват всички вградени функции.
Build-in-Functions
Add:Този ред създава обект tts.
self – дава възможност на tts да бъде достъпен
във всички части на кода, не само в конкретния
блок.
tts – името, което даваме на обекта
ALProxy – клас от обекти, който дава възможност
да се достъпят всички метози на модула.
ALTextToSpeech – името на модула на NAOqi,
който искаме да използваме.
Този ред използва обекта tts, за да изпрати
инструкции на NAOqi модула
self.tts – обекта, който използваме
Say() – метод
“Hello young Padawan” - параметър
Този код използва say метода на ALTextToSpeech модула.
ALTextToSpeech е модул на NAoqi отнасящ се за речта на робота.
Метода say кара робота да изрече стринга даден като параметър.
NAOqi Framework
NAOqi – Това е основният софтуер, който управлява НАО.
NAOqi Framework е програмния framework, който се използва за програмиране на
НАО.
Framework означава рамка за универсална (многократна употреба) софтуерна
среда, която осигурява специално функционалност като част от по-голяма
софтуерна платформа за улесняване на развитието на софтуерни приложения,
продукти и решения. Рамките могат да включват програми за подпомагане,
компилатори, библиотеки, инструменти комплекти, и приложни програмни
интерфейси (APIs), които обединяват всички различните компоненти да се даде
възможност за развитие на даден проект или решение.
NAOqi Framework е :
• cross-platform Windows, Linux or Mac.
• cross-language C++ and Python
• предоставя introspection, което означава че framework–а знае кои функции са
достъпни и в различните модули.
The NAOqi process
Изпълнението на NAOqi, което протича на робота се нарича брокер. Когато се стартира се зарежда файл с
предпочитания наречен autoload.ini
Този файл определя кои библиотеки трябва да се заредят. Всяка библиотека съдържа един или повече модули, които
използват брокера да рекламират своите методи.
Broker всъщност е посредник.
Брокерът е обект, който има две основни
роли:
• да осигурява справочни услуги: Като
ви позволява да намерите модули и
методи.
• да осигурява достъп до мрежата
През повечето време, не е нужно да се
мисли за брокерите. Те вършат своята
работа, което ви позволява да пишете
код, който ще бъде един и същ за
достъпване към “локални модули” (в
същия процес) или “отдалечени модули”
(в друг процес или на друга машина).
Proxy е обект, който се държи като модула, който представлява.
Например, ако създадете прокси към модула ALMotion, вие ще получите един
обект, съдържащ всички методи за ALMotion.
За да създадете прокси към модул съществуват две възможности:
• Просто използвайте името на модула. - В този случай, кодът, който
използвате и модула, към който искате да се свържете трябва да бъде в
същия broker.
• Използвайте името на модула, IP и port на broker-а. В този случай, модулът
трябва да бъде в съответния брокер.
За да научите как да се разшири API NAO, вие трябва да се научите как да
създадете нови модули.
Модули
Обикновено всеки модул е един клас в рамките на една библиотека. Когато библиотеката се зарежда от
autoload.ini, модула автоматично ще се инстанциира модул класа.
В конструктора на класа, който произтича от ALModule, може да се осъществи "обвързване" методи.
Модулът може да бъде или отдалечен или локален.
• Ако е отдалечен, се компилира като изпълним файл, и може да се управлява и извън робота.
Отдалечените модули са по-лесни за употреба и могат да им бъдат отстранени грешки лесно отвън,
но са по-малко ефективни по отношение на скоростта и използване на паметта.
• Ако е локален, се компилира като библиотека, и може да се използва само на робота.
Въпреки това, те са по-ефективни от отдалечения модул.
Всеки модул съдържа различни методи. Някои от методите са обвързани, което означава,
че може да се извикат извън модула, например в друг модул, от един изпълнител и т.н.
Начинът да извикваме тези обвързани функции не се променя, ако модулът е отдалечен или локален,
защото модулът автоматично се адаптира.
NAOqi е основния Python модул.
ALProxy обект, който позвонява да се създаде прокси на модул.
ALProxy(name, ip, port)
•name име на модула
•ip е IP на брокера, в който модула действа
•port е порта на брокера.
from naoqi import ALProxy
tts = ALProxy("ALTextToSpeech", "<IP of your robot>", 9559)
tts.say("Hello, world!")

More Related Content

Similar to Python choreographe NAOqi Framework

Drupal course-plovdiv-week1-day-1
Drupal course-plovdiv-week1-day-1Drupal course-plovdiv-week1-day-1
Drupal course-plovdiv-week1-day-1Kalin Chernev
 
Google Cloud Natural Language for SEO
Google Cloud Natural Language for SEO  Google Cloud Natural Language for SEO
Google Cloud Natural Language for SEO Netpeak
 
Word Press за маниаци
Word Press за маниациWord Press за маниаци
Word Press за маниациKaloyan Tsvetkov
 
Какво ново в Joomla?- Joomla! Day 2013 Bulgaria
Какво ново в Joomla?- Joomla! Day 2013 BulgariaКакво ново в Joomla?- Joomla! Day 2013 Bulgaria
Какво ново в Joomla?- Joomla! Day 2013 BulgariaMihail Semerdzhiev
 
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...DAVID Academy
 
Rykowodstwo po programirane_na_bazata_na_ezika_java
Rykowodstwo po programirane_na_bazata_na_ezika_javaRykowodstwo po programirane_na_bazata_na_ezika_java
Rykowodstwo po programirane_na_bazata_na_ezika_javaSonia Lichkova
 
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
VarnaConf Blue/Green Deployments with Docker, HAProxy and ConsulVarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consulzeridon
 
SEO курс 2014, лекция 1 - Основи на търсенето
SEO курс 2014, лекция 1 - Основи на търсенетоSEO курс 2014, лекция 1 - Основи на търсенето
SEO курс 2014, лекция 1 - Основи на търсенетоLily Grozeva
 
Acceptance testing with Selenium 2 and PHPUnit
Acceptance testing with Selenium 2 and PHPUnitAcceptance testing with Selenium 2 and PHPUnit
Acceptance testing with Selenium 2 and PHPUnitBisser Todorov
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11DAVID Academy
 
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Lubomir Chorbadjiev
 
3. vb osnovni menuta
3. vb osnovni menuta3. vb osnovni menuta
3. vb osnovni menutadnaidenowa
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with JenkinsBorislav Traykov
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13DAVID Academy
 

Similar to Python choreographe NAOqi Framework (20)

B4 t4 include_files
B4 t4 include_filesB4 t4 include_files
B4 t4 include_files
 
B4 t4 include_files
B4 t4 include_filesB4 t4 include_files
B4 t4 include_files
 
Drupal course-plovdiv-week1-day-1
Drupal course-plovdiv-week1-day-1Drupal course-plovdiv-week1-day-1
Drupal course-plovdiv-week1-day-1
 
Google Cloud Natural Language for SEO
Google Cloud Natural Language for SEO  Google Cloud Natural Language for SEO
Google Cloud Natural Language for SEO
 
Word Press за маниаци
Word Press за маниациWord Press за маниаци
Word Press за маниаци
 
Какво ново в Joomla?- Joomla! Day 2013 Bulgaria
Какво ново в Joomla?- Joomla! Day 2013 BulgariaКакво ново в Joomla?- Joomla! Day 2013 Bulgaria
Какво ново в Joomla?- Joomla! Day 2013 Bulgaria
 
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
Курс по програмиране за напреднали (2012) - 1. Обектно-ориентирано програмира...
 
Rykowodstwo po programirane_na_bazata_na_ezika_java
Rykowodstwo po programirane_na_bazata_na_ezika_javaRykowodstwo po programirane_na_bazata_na_ezika_java
Rykowodstwo po programirane_na_bazata_na_ezika_java
 
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
VarnaConf Blue/Green Deployments with Docker, HAProxy and ConsulVarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
VarnaConf Blue/Green Deployments with Docker, HAProxy and Consul
 
SEO курс 2014, лекция 1 - Основи на търсенето
SEO курс 2014, лекция 1 - Основи на търсенетоSEO курс 2014, лекция 1 - Основи на търсенето
SEO курс 2014, лекция 1 - Основи на търсенето
 
Acceptance testing with Selenium 2 and PHPUnit
Acceptance testing with Selenium 2 and PHPUnitAcceptance testing with Selenium 2 and PHPUnit
Acceptance testing with Selenium 2 and PHPUnit
 
Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11Училищен курс по програмиране на C# (2013/2014), занятие №11
Училищен курс по програмиране на C# (2013/2014), занятие №11
 
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
Enterprise Content Management with Nuxeo EP 5.3.0 (in bulgarian)
 
3. vb osnovni menuta
3. vb osnovni menuta3. vb osnovni menuta
3. vb osnovni menuta
 
6Plus4u Web Pro Edu DVD
6Plus4u Web Pro Edu DVD6Plus4u Web Pro Edu DVD
6Plus4u Web Pro Edu DVD
 
Using NAOqi
Using NAOqiUsing NAOqi
Using NAOqi
 
B8 t8 files
B8 t8 filesB8 t8 files
B8 t8 files
 
B8 t8 files
B8 t8 filesB8 t8 files
B8 t8 files
 
[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins[Dev.bg] CI from scratch with Jenkins
[Dev.bg] CI from scratch with Jenkins
 
Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13Училищен курс по програмиране на C# (2013/2014), занятие №13
Училищен курс по програмиране на C# (2013/2014), занятие №13
 

More from Atelier for robotics

More from Atelier for robotics (6)

Основни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процесОсновни структури за управление на изчислителния процес
Основни структури за управление на изчислителния процес
 
Въведение в Python
Въведение в PythonВъведение в Python
Въведение в Python
 
NAOqi framework
NAOqi frameworkNAOqi framework
NAOqi framework
 
DCM
DCMDCM
DCM
 
Cross compiling
Cross compilingCross compiling
Cross compiling
 
C++ datatypes
C++ datatypesC++ datatypes
C++ datatypes
 

Python choreographe NAOqi Framework

  • 2. 1/ Създаване на New Box в Choreographe
  • 3. Име на кутийката Кратко обяснение на кутийката Избор на изображение за кутийката Прибавяне на нова променлива Изтриване на избрана променлива Редактиране на настройките на избрана променлива
  • 4.
  • 5. 2/ Създаване на нова библиотека
  • 6. 3/ Прибавяме новосъздадената кутийка в новата библиотека.
  • 7. 4/ Прибавяне на променлива към кутийката
  • 8.
  • 9.
  • 11. Hello World 2 - using Python in Choregraphe Стартирай Choregraphe. Кликни върху Connect to бутона и свържи Choregraphe с твоя робот.
  • 12. С Кликане на десен бутон избери Create a new Box > Python...
  • 13. Напиши име, например: My hello world, и кликни върху OK.
  • 14. Отвори Script editor прозореца. MyClass е клас, който се генерира автоматично и е наследник на GeneratedClass MyClass е съставен от предварително дефинирани методи. Тъй като е наследствен на GeneratedClass дава възможност да се ползват всички вградени функции. Build-in-Functions
  • 15. Add:Този ред създава обект tts. self – дава възможност на tts да бъде достъпен във всички части на кода, не само в конкретния блок. tts – името, което даваме на обекта ALProxy – клас от обекти, който дава възможност да се достъпят всички метози на модула. ALTextToSpeech – името на модула на NAOqi, който искаме да използваме. Този ред използва обекта tts, за да изпрати инструкции на NAOqi модула self.tts – обекта, който използваме Say() – метод “Hello young Padawan” - параметър Този код използва say метода на ALTextToSpeech модула. ALTextToSpeech е модул на NAoqi отнасящ се за речта на робота. Метода say кара робота да изрече стринга даден като параметър.
  • 16.
  • 17. NAOqi Framework NAOqi – Това е основният софтуер, който управлява НАО. NAOqi Framework е програмния framework, който се използва за програмиране на НАО. Framework означава рамка за универсална (многократна употреба) софтуерна среда, която осигурява специално функционалност като част от по-голяма софтуерна платформа за улесняване на развитието на софтуерни приложения, продукти и решения. Рамките могат да включват програми за подпомагане, компилатори, библиотеки, инструменти комплекти, и приложни програмни интерфейси (APIs), които обединяват всички различните компоненти да се даде възможност за развитие на даден проект или решение. NAOqi Framework е : • cross-platform Windows, Linux or Mac. • cross-language C++ and Python • предоставя introspection, което означава че framework–а знае кои функции са достъпни и в различните модули.
  • 18. The NAOqi process Изпълнението на NAOqi, което протича на робота се нарича брокер. Когато се стартира се зарежда файл с предпочитания наречен autoload.ini Този файл определя кои библиотеки трябва да се заредят. Всяка библиотека съдържа един или повече модули, които използват брокера да рекламират своите методи.
  • 19. Broker всъщност е посредник. Брокерът е обект, който има две основни роли: • да осигурява справочни услуги: Като ви позволява да намерите модули и методи. • да осигурява достъп до мрежата През повечето време, не е нужно да се мисли за брокерите. Те вършат своята работа, което ви позволява да пишете код, който ще бъде един и същ за достъпване към “локални модули” (в същия процес) или “отдалечени модули” (в друг процес или на друга машина).
  • 20. Proxy е обект, който се държи като модула, който представлява. Например, ако създадете прокси към модула ALMotion, вие ще получите един обект, съдържащ всички методи за ALMotion. За да създадете прокси към модул съществуват две възможности: • Просто използвайте името на модула. - В този случай, кодът, който използвате и модула, към който искате да се свържете трябва да бъде в същия broker. • Използвайте името на модула, IP и port на broker-а. В този случай, модулът трябва да бъде в съответния брокер. За да научите как да се разшири API NAO, вие трябва да се научите как да създадете нови модули.
  • 21. Модули Обикновено всеки модул е един клас в рамките на една библиотека. Когато библиотеката се зарежда от autoload.ini, модула автоматично ще се инстанциира модул класа. В конструктора на класа, който произтича от ALModule, може да се осъществи "обвързване" методи. Модулът може да бъде или отдалечен или локален. • Ако е отдалечен, се компилира като изпълним файл, и може да се управлява и извън робота. Отдалечените модули са по-лесни за употреба и могат да им бъдат отстранени грешки лесно отвън, но са по-малко ефективни по отношение на скоростта и използване на паметта. • Ако е локален, се компилира като библиотека, и може да се използва само на робота. Въпреки това, те са по-ефективни от отдалечения модул. Всеки модул съдържа различни методи. Някои от методите са обвързани, което означава, че може да се извикат извън модула, например в друг модул, от един изпълнител и т.н. Начинът да извикваме тези обвързани функции не се променя, ако модулът е отдалечен или локален, защото модулът автоматично се адаптира.
  • 22.
  • 23.
  • 24. NAOqi е основния Python модул. ALProxy обект, който позвонява да се създаде прокси на модул. ALProxy(name, ip, port) •name име на модула •ip е IP на брокера, в който модула действа •port е порта на брокера. from naoqi import ALProxy tts = ALProxy("ALTextToSpeech", "<IP of your robot>", 9559) tts.say("Hello, world!")