Daftar Isi:

Robot Nao Meniru Gerakan Menggunakan Kinect: 7 Langkah
Robot Nao Meniru Gerakan Menggunakan Kinect: 7 Langkah

Video: Robot Nao Meniru Gerakan Menggunakan Kinect: 7 Langkah

Video: Robot Nao Meniru Gerakan Menggunakan Kinect: 7 Langkah
Video: On-line teleoperation robot using Kinect sensor (trial 1) 2024, Juni
Anonim
Robot Nao Meniru Gerakan Menggunakan Kinect
Robot Nao Meniru Gerakan Menggunakan Kinect

Dalam instruksi ini saya akan menjelaskan kepada Anda bagaimana kami membiarkan robot Nao meniru gerakan kami menggunakan sensor kinect. Tujuan sebenarnya dari proyek ini adalah tujuan pendidikan: seorang guru memiliki kemampuan untuk merekam gerakan tertentu (misalnya tarian) dan dapat menggunakan rekaman ini untuk membiarkan anak-anak di kelas meniru robot. Dengan melalui seluruh langkah demi langkah yang dapat diinstruksikan ini, Anda harus dapat membuat ulang proyek ini sepenuhnya.

Ini adalah proyek yang berhubungan dengan sekolah (NMCT @ Howest, Kortrijk).

Langkah 1: Pengetahuan Dasar

Untuk membuat ulang proyek ini, Anda harus memiliki beberapa pengetahuan dasar:

- Pengetahuan dasar python

- Pengetahuan dasar C# (WPF)

- Pengetahuan trigonometri dasar

- Pengetahuan tentang cara mengatur MQTT pada raspberry pi

Langkah 2: Memperoleh Bahan yang Diperlukan

Bahan yang diperlukan untuk proyek ini:

- Raspberry Pi

- Sensor Kinect v1.8 (Xbox 360)

- Robot Nao atau robot virutal (Choregraph)

Langkah 3: Cara Kerjanya

Image
Image
Bagaimana itu bekerja
Bagaimana itu bekerja

Sensor kinect terhubung ke komputer yang menjalankan aplikasi WPF. Aplikasi WPF mengirimkan data ke aplikasi Python (robot) menggunakan MQTT. File lokal disimpan jika pengguna memilih demikian.

Penjelasan detail:

Sebelum kita mulai merekam, pengguna harus memasukkan alamat ip dari broker MQTT. Selain itu, kami juga membutuhkan topik yang ingin kami publikasikan datanya. Setelah menekan start, aplikasi akan memeriksa apakah koneksi dapat dibuat dengan broker dan itu akan memberi kami umpan balik. Memeriksa apakah suatu topik ada tidak mungkin, jadi Anda bertanggung jawab penuh untuk topik ini. Ketika kedua input OK, aplikasi akan mulai mengirim data (koordinat x, y & z dari setiap joint) dari kerangka yang sedang dilacak ke topik di broker MQTT.

Karena robot terhubung dengan broker MQTT yang sama dan berlangganan topik yang sama (ini juga harus dimasukkan dalam aplikasi python) aplikasi python sekarang akan menerima data dari aplikasi WPF. Menggunakan trigonometri dan algoritme yang ditulis sendiri, kami mengubah koordinat menjadi sudut dan radian, yang kami gunakan untuk memutar motor di dalam robot secara real-time.

Ketika pengguna selesai merekam, dia menekan tombol stop. Sekarang pengguna mendapat pop-up yang menanyakan apakah dia ingin menyimpan rekaman. Ketika pengguna menekan batal, semuanya diatur ulang (data hilang) dan rekaman baru dapat dimulai. Jika pengguna ingin menyimpan rekaman, ia harus memasukkan judul dan tekan 'simpan'. Saat menekan 'simpan' semua data yang diperoleh ditulis ke file lokal menggunakan input judul sebagai nama file. File juga ditambahkan ke tampilan daftar di sisi kanan layar. Dengan cara ini, setelah mengklik dua kali entri baru di tampilan daftar, file dibaca dan dikirim ke broker MQTT. Akibatnya, robot akan memutar rekaman.

Langkah 4: Menyiapkan Pialang MQTT

Menyiapkan Pialang MQTT
Menyiapkan Pialang MQTT

Untuk komunikasi antara kinect (proyek WPF) dan robot (proyek Python) kami menggunakan MQTT. MQTT terdiri dari broker (komputer linux di mana perangkat lunak mqtt (mis. Mosquitto)) berjalan dan topik di mana klien dapat berlangganan (mereka menerima pesan dari topik) dan mempublikasikan (mereka memposting pesan tentang topik tersebut).

Untuk mengatur broker MQTT cukup unduh seluruh gambar jessie ini. Ini adalah instalasi bersih untuk Anda Raspberry Pi dengan broker MQTT di dalamnya. Topiknya adalah "/Sandro".

Langkah 5: Memasang Kinect SDK V1.8

Agar kinect berfungsi di komputer Anda, Anda harus menginstal Microsoft Kinect SDK.

Anda dapat mengunduhnya di sini:

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

Langkah 6: Menginstal Python V2.7

Robot bekerja dengan kerangka kerja NaoQi, kerangka kerja ini hanya tersedia untuk python 2.7 (BUKAN 3.x), jadi periksa versi python yang telah Anda instal.

Anda dapat mengunduh python 2.7 di sini:

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

Langkah 7: Pengkodean

Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean
Pengkodean

Github:

Catatan:

- Coding dengan kinect: pertama Anda mencari kinect yang terhubung. Setelah menyimpan ini di dalam properti, kami mengaktifkan color- dan skeletonstream di kinect. Colorstream adalah video langsung, sedangkan skeletonstream berarti kerangka orang di depan kamera akan ditampilkan. Colorstream tidak benar-benar diperlukan untuk membuat proyek ini berfungsi, kami hanya mengaktifkannya karena bitmapping skeletonstream ke colorstream terlihat apik!

- Pada kenyataannya itu benar-benar skeletonstream yang melakukan pekerjaan itu. Mengaktifkan skeletonstream berarti kerangka orang tersebut sedang dilacak. Dari kerangka ini Anda menerima semua jenis informasi misalnya. orientasi tulang, informasi sendi, … Kunci proyek kami adalah informasi bersama. Menggunakan koordinat x-y & z dari masing-masing sambungan dari kerangka yang dilacak, kami tahu bahwa kami dapat membuat robot bergerak. Jadi, setiap 0,8 detik (menggunakan timer) kami mempublikasikan koordinat x, y & z dari masing-masing sambungan ke broker mqtt.

- Karena proyek python memiliki langganan di mqtt broker, kami sekarang dapat mengakses data di dalam proyek ini. Di dalam setiap sendi robot ada dua motor. Motor ini tidak bisa hanya dikemudikan menggunakan koordinat x, y & z secara langsung. Jadi, dengan menggunakan trigonometri dan akal sehat, kami mengonversi koordinat x, y & z dari sambungan menjadi sudut yang dapat dipahami menjadi robot.

Jadi pada dasarnya setiap.8 detik proyek WPF menerbitkan koordinat x, y & z dari masing-masing sambungan. Akibatnya, di dalam proyek python koordinat ini diubah menjadi sudut, yang kemudian dikirim ke motor robot yang sesuai.

Direkomendasikan: