Talaan ng mga Nilalaman:

Mga Kilusang Nao Robot na Ginagaya ang Paggamit ng Kinect: 7 Mga Hakbang
Mga Kilusang Nao Robot na Ginagaya ang Paggamit ng Kinect: 7 Mga Hakbang

Video: Mga Kilusang Nao Robot na Ginagaya ang Paggamit ng Kinect: 7 Mga Hakbang

Video: Mga Kilusang Nao Robot na Ginagaya ang Paggamit ng Kinect: 7 Mga Hakbang
Video: How To Move for ALL 3rd & 4th Ball Attacks 2024, Hunyo
Anonim
Mga Kilusang Nao Robot na Gumagaya Gamit ang Kinect
Mga Kilusang Nao Robot na Gumagaya Gamit ang Kinect

Sa itinuturo na ito ay ipapaliwanag ko sa iyo kung paano namin hinahayaan ang isang Nao robot na gayahin ang aming mga paggalaw gamit ang isang sensor ng kamag-anak. Ang tunay na layunin ng proyekto ay isang layuning pang-edukasyon: ang isang guro ay may kakayahang magtala ng ilang mga hanay ng mga galaw (hal. Isang sayaw) at maaaring gamitin ang mga pagrekord na ito upang hayaang gayahin ng mga bata ang mga bata. Sa pamamagitan ng pagdaan sa buong itinuturo na hakbang-hakbang na ito, dapat mong ganap na muling likhain ang proyektong ito.

Ito ay isang proyekto na kaugnay sa paaralan (NMCT @ Howest, Kortrijk).

Hakbang 1: Pangunahing Kaalaman

Upang muling likhain ang proyektong ito kailangan mong magtaglay ng ilang pangunahing kaalaman:

- Pangunahing kaalaman sa sawa

- Pangunahing kaalaman sa C # (WPF)

- Pangunahing kaalaman sa trigonometry

- Kaalaman sa kung paano i-set up ang MQTT sa isang raspberry pi

Hakbang 2: Pagkuha ng Mga Kinakailangan na Materyales

Mga kinakailangang materyal para sa proyektong ito:

- Raspberry Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robot o virutal robot (Choregraph)

Hakbang 3: Paano Ito Gumagana

Image
Image
Paano Ito Gumagana
Paano Ito Gumagana

Ang isang sensor ng kinect ay konektado sa isang computer na nagpapatakbo ng application na WPF. Ang application na WPF ay nagpapadala ng data sa application ng Python (robot) gamit ang MQTT. Ang mga lokal na file ay nai-save kung ang gumagamit ay napili.

Detalyadong paliwanag:

Bago kami magsimulang mag-record, kailangang ipasok ng gumagamit ang ip-address ng MQTT broker. Bukod doon, kailangan din namin ang paksa kung saan nais naming mai-publish ang data. Matapos ang pagpindot sa pagsisimula, susuriin ng application kung ang isang koneksyon ay maaaring maitaguyod sa broker at bibigyan kami ng puna. Hindi posible ang pagsuri kung mayroon ang isang paksa, kaya't responsable ka para sa isang ito. Kapag ang parehong mga input ay OK, magsisimula ang application sa pagpapadala ng data (form ng x, y & z ang bawat magkasanib) mula sa balangkas na sinusubaybayan sa paksa sa MQTT broker.

Dahil ang robot ay konektado sa parehong MQTT broker at nag-subscribe sa parehong paksa (kailangan itong ipasok sa application ng sawa din) ang application na sawa ay makakatanggap ngayon ng data mula sa aplikasyon ng WPF. Gamit ang trigonometry at sariling nakasulat na mga algorithm, binago namin ang mga coördinate sa mga anggulo at radian, na ginagamit namin upang paikutin ang mga motor sa loob ng robot nang real-time.

Kapag natapos ang pag-record ng gumagamit, pinindot niya ang stop button. Ngayon ang gumagamit ay nakakakuha ng isang pop-up na nagtatanong kung nais niyang i-save ang pag-record. Kapag ang pag-hit ng gumagamit ay nakansela, ang lahat ay na-reset (nawala ang data) at maaaring magsimula ng isang bagong pag-record. Kung nais ng gumagamit na i-save ang pag-record, dapat siyang maglagay ng isang pamagat at pindutin ang 'i-save'. Kapag ang pagpindot sa 'save' lahat ng nakuha data ay nakasulat sa isang lokal na file gamit ang pamagat na input bilang filename. Ang file ay idinagdag din sa listview sa kanang bahagi ng screen. Sa ganitong paraan, pagkatapos ng pag-double click sa bagong entry sa listview, ang file ay nabasa at ipinadala sa MQTT broker. Dahil dito, gagampanan ng robot ang pagrekord.

Hakbang 4: Pag-set up ng MQTT Broker

Pagse-set up ng MQTT Broker
Pagse-set up ng MQTT Broker

Para sa komunikasyon sa pagitan ng kamag-anak (proyekto ng WPF) at ng robot (proyekto sa Python) ginamit namin ang MQTT. Ang MQTT ay binubuo ng isang broker (isang linux computer kung saan ang mqtt software (hal. Mosquitto)) ay tumatakbo at isang paksa kung saan maaaring mag-subscribe ang mga kliyente (tinatanggap nila ang isang mensahe mula sa paksa) at nai-publish (nag-post sila ng isang mensahe sa paksa).

Upang mai-set up ang MQTT broker i-download lamang ang buong jessie image na ito. Ito ay isang malinis na pag-install para sa iyo ng Raspberry Pi na may isang MQTT broker dito. Ang paksa ay "/ Sandro".

Hakbang 5: Pag-install ng Kinect SDK V1.8

Upang gumana ang kamag-anak sa iyong computer kailangan mong i-install ang Microsoft Kinect SDK.

Maaari mo itong i-download dito:

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

Hakbang 6: Pag-install ng Python V2.7

Gumagana ang robot sa balangkas ng NaoQi, ang balangkas na ito ay magagamit lamang para sa python 2.7 (HINDI 3.x), kaya suriin kung anong bersyon ng sawa ang na-install mo.

Maaari mong i-download ang python 2.7 dito:

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

Hakbang 7: Pag-coding

Coding
Coding
Coding
Coding
Coding
Coding

Github:

Mga Tala:

- Pag-coding sa kamag-anak: unang tumingin ka para sa konektadong lahi. Matapos i-save ito sa loob ng isang pag-aari pinagana namin ang kulay- at skeletonstream sa kamag-anak. Ang Colorstream ay ang live na video, habang ang skeletonstream ay nangangahulugang isang balangkas ng tao sa harap ng camera ay ipapakita. Hindi talaga kinakailangan ang Colorstream upang gumana ang proyektong ito, pinagana lang namin ito dahil ang bitmapping ng skeletonstream sa colorstream ay mukhang makinis!

- Sa katotohanan ito talaga ang skeletonstream na gumagawa ng trabaho. Ang pagpapagana ng skeletonstream ay nangangahulugang ang balangkas ng tao ay sinusubaybayan. Mula sa balangkas na ito natanggap mo ang lahat ng mga uri ng impormasyon hal. mga orientation ng buto, pinagsamang impormasyon,… Ang susi sa aming proyekto ay ang pinagsamang impormasyon. Gamit ang koordinasyong x-y & z ng bawat kasukasuan mula sa sinusubaybayan na balangkas, alam namin na kaya naming ilipat ang robot. Kaya, tuwing

- Dahil ang proyekto sa python ay may isang subsripas sa mqtt broker maaari na nating ma-acces ang data sa loob ng proyektong ito. Sa loob ng bawat magkasanib na robot ay mayroong dalawang motor. Ang mga motor na ito ay hindi maaaring patnubayan gamit ang x, y & z coordinate nang direkta. Kaya, gamit ang trigonometry at ilang sentido komun, na-convert namin ang x, y & z na mga coordinate ng mga kasukasuan sa mga anggulo na hindi mailarawan sa mga robot.

Kaya karaniwang bawat.8 segundo ang proyekto ng WPF ay naglalathala ng x, y & z na mga coordinate ng bawat isa sa mga kasukasuan. Dahil dito, sa loob ng proyekto ng sawa ang mga coordiantes na ito ay nai-convert sa mga anggulo, na pagkatapos ay ipapadala sa mga kaukulang motor ng robot.

Inirerekumendang: