Satura rādītājs:

Nao robotu imitējošās kustības, izmantojot Kinect: 7 soļi
Nao robotu imitējošās kustības, izmantojot Kinect: 7 soļi

Video: Nao robotu imitējošās kustības, izmantojot Kinect: 7 soļi

Video: Nao robotu imitējošās kustības, izmantojot Kinect: 7 soļi
Video: Leap Motion SDK 2024, Jūnijs
Anonim
Nao robotu imitējošās kustības, izmantojot Kinect
Nao robotu imitējošās kustības, izmantojot Kinect

Šajā pamācībā es jums paskaidrošu, kā mēs ļaujam Nao robotam atdarināt mūsu kustības, izmantojot kinect sensoru. Projekta patiesais mērķis ir izglītojošs mērķis: skolotājam ir iespēja ierakstīt noteiktas kustību kopas (piemēram, deju), un viņš var izmantot šos ierakstus, lai ļautu bērniem klasē atdarināt robotu. Soli pa solim veicot visu šo pamācību, jums vajadzētu spēt pilnībā atjaunot šo projektu.

Šis ir ar skolu saistīts projekts (NMCT @ Howest, Kortrijk).

1. solis: pamatzināšanas

Lai atjaunotu šo projektu, jums ir jābūt pamatzināšanām:

- Python pamatzināšanas

- C# pamatzināšanas (WPF)

- pamatzināšanas par trigonometriju

- Zināšanas par to, kā iestatīt MQTT uz aveņu pi

2. darbība. Nepieciešamo materiālu iegūšana

Šim projektam nepieciešamie materiāli:

- Raspberry Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robots vai virutāls robots (Choregraph)

3. darbība. Kā tas darbojas

Image
Image
Kā tas strādā
Kā tas strādā

Kinect sensors ir pievienots datoram, kurā darbojas lietojumprogramma WPF. WPF lietojumprogramma nosūta datus uz Python lietojumprogrammu (robotu), izmantojot MQTT. Vietējie faili tiek saglabāti, ja lietotājs to izvēlas.

Detalizēts skaidrojums:

Pirms sākam ierakstīšanu, lietotājam ir jāievada MQTT brokera IP adrese. Turklāt mums ir nepieciešama arī tēma, par kuru mēs vēlamies publicēt datus. Pēc startēšanas nospiešanas lietojumprogramma pārbaudīs, vai ar brokeri var izveidot savienojumu, un sniegs mums atsauksmes. Pārbaudīt, vai tēma pastāv, nav iespējams, tāpēc jūs esat pilnībā atbildīgs par šo tēmu. Kad abas ievades ir kārtībā, lietojumprogramma sāks sūtīt datus (x, y & z koordinātas no katra savienojuma) no izsekotā skeleta uz tēmu MQTT brokerī.

Tā kā robots ir savienots ar to pašu MQTT brokeri un abonējis to pašu tēmu (arī tas ir jāievada python lietojumprogrammā), python lietojumprogramma tagad saņems datus no WPF lietojumprogrammas. Izmantojot trigonometriju un pašrakstītus algoritmus, mēs pārvēršam koordinātus leņķos un radiānos, kurus mēs izmantojam, lai reālā laikā pagrieztu motorus robota iekšpusē.

Kad lietotājs ir pabeidzis ierakstīšanu, viņš nospiež apturēšanas pogu. Tagad lietotājs saņem uznirstošo logu, kurā tiek jautāts, vai viņš vēlas saglabāt ierakstu. Kad lietotājs noklikšķina uz Atcelt, viss tiek atiestatīts (dati tiek zaudēti) un var sākt jaunu ierakstīšanu. Ja lietotājs vēlas saglabāt ierakstu, viņam jāievada nosaukums un jānoklikšķina uz “saglabāt”. Noklikšķinot uz "Saglabāt", visi iegūtie dati tiek ierakstīti vietējā failā, izmantojot faila nosaukumu kā nosaukuma ievadi. Fails tiek pievienots arī saraksta skatam ekrāna labajā pusē. Tādā veidā pēc dubultklikšķa uz jaunā ieraksta saraksta skatā fails tiek nolasīts un nosūtīts MQTT brokerim. Līdz ar to robots atskaņos ierakstu.

4. darbība. MQTT brokera iestatīšana

MQTT brokera iestatīšana
MQTT brokera iestatīšana

Saziņai starp kinect (WPF projekts) un robotu (Python projekts) mēs izmantojām MQTT. MQTT sastāv no brokera (Linux datora, kurā darbojas mqtt programmatūra (piemēram, Mosquitto)) un tēmas, par kuru klienti var abonēt (viņi saņem ziņojumu no tēmas) un publicēt (viņi ievieto ziņojumu par šo tēmu).

Lai iestatītu MQTT brokeri, vienkārši lejupielādējiet visu šo Džesijas attēlu. Šī ir tīra Raspberry Pi instalācija ar MQTT brokeri. Tēma ir "/Sandro".

5. darbība: Kinect SDK V1.8 instalēšana

Lai kinect darbotos jūsu datorā, jums jāinstalē Microsoft Kinect SDK.

Jūs to varat lejupielādēt šeit:

www.microsoft.com/en-us/download/details.a…

6. darbība: Python V2.7 instalēšana

Robots darbojas ar NaoQi ietvaru, šis ietvars ir pieejams tikai python 2.7 (NOT 3.x), tāpēc pārbaudiet, kādu python versiju esat instalējis.

Jūs varat lejupielādēt python 2.7 šeit:

www.python.org/downloads/release/python-27…

7. darbība: kodēšana

Kodēšana
Kodēšana
Kodēšana
Kodēšana
Kodēšana
Kodēšana

Github:

Piezīmes:

- Kodēšana ar kinect: vispirms meklējiet pievienoto kinect. Pēc saglabāšanas īpašumā mēs iespējojām krāsu un skeleta straumi kinect. Colorstream ir tiešraides video, savukārt skeleta straume nozīmē, ka tiks parādīts kameras priekšā esošās personas skelets. Colorstream nav īsti nepieciešams, lai šis projekts darbotos, mēs to vienkārši iespējojām, jo skeleta plūsmas bitkartēšana ar krāsu plūsmu izskatās slidena!

- Patiesībā to patiešām dara skeleta plūsma. Skeleta plūsmas iespējošana nozīmē, ka tiek izsekots personas skelets. No šī skeleta jūs saņemat visu veidu informāciju, piem. kaulu orientācija, kopīga informācija,… Mūsu projekta atslēga bija kopīgā informācija. Izmantojot katra izsekotā skeleta locītavas x-y & z koordinātas, mēs zinājām, ka varam likt robotam kustēties. Tātad, ik pēc 8 sekundēm (izmantojot taimeri) mēs publicējam mqtt brokerim katra savienojuma x, y & z koordinātas.

- Tā kā python projektam ir abonements mqtt brokerī, mēs tagad varam piekļūt šī projekta datiem. Katrā robota locītavā ir divi motori. Šos motorus nevar vienkārši vadīt, izmantojot tieši x, y & z koordinātas. Tātad, izmantojot trigonometriju un kādu veselo saprātu, mēs pārveidojām locītavu x, y & z koordinātas par leņķiem, kas nav stabili robotiem.

Tātad būtībā ik pēc 8 sekundēm WPF projekts publicē katra savienojuma x, y & z koordinātas. Līdz ar to pitona projektā šie koordināti tiek pārvērsti leņķos, kas pēc tam tiek nosūtīti uz atbilstošajiem robota motoriem.

Ieteicams: