Სარჩევი:

ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით: 7 ნაბიჯი
ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით: 7 ნაბიჯი

ვიდეო: ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით: 7 ნაბიჯი

ვიდეო: ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით: 7 ნაბიჯი
ვიდეო: Robot mimics the powerful punch of the mantis shrimp 2024, ნოემბერი
Anonim
ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით
ნაო რობოტი მიბაძავს მოძრაობებს Kinect– ის გამოყენებით

ამ სასწავლო ინსტრუქციაში მე აგიხსნით, როგორ ვაძლევთ ნება რობოტს, რომ მიბაძოს ჩვენს მოძრაობებს კინექტის სენსორის გამოყენებით. პროექტის რეალური მიზანი საგანმანათლებლო მიზანია: მასწავლებელს აქვს უნარი ჩაწეროს გარკვეული ნაკრები (მაგ. ცეკვა) და შეუძლია გამოიყენოს ეს ჩანაწერები, რათა კლასში მყოფ ბავშვებს მიბაძონ რობოტს. მთელი ეს გასაგები ნაბიჯ -ნაბიჯ გავლით, თქვენ უნდა შეგეძლოთ სრულად ხელახლა შექმნათ ეს პროექტი.

ეს არის სკოლასთან დაკავშირებული პროექტი (NMCT @ Howest, Kortrijk).

ნაბიჯი 1: ძირითადი ცოდნა

ამ პროექტის ხელახლა შესაქმნელად თქვენ უნდა გქონდეთ ძირითადი ცოდნა:

- ძირითადი პითონის ცოდნა

- ძირითადი C# ცოდნა (WPF)

- ძირითადი ტრიგონომეტრიის ცოდნა

- ცოდნა, თუ როგორ უნდა შეიქმნას MQTT ჟოლოს პიზე

ნაბიჯი 2: საჭირო მასალების შეძენა

ამ პროექტისათვის საჭირო მასალები:

- ჟოლო პი

- Kinect Sensor v1.8 (Xbox 360)

- ნაო რობოტი ან ვირტუალური რობოტი (ქორეოგრაფი)

ნაბიჯი 3: როგორ მუშაობს

Image
Image
Როგორ მუშაობს
Როგორ მუშაობს

Kinect სენსორი უკავშირდება კომპიუტერს, რომელსაც აქვს WPF პროგრამა. WPF პროგრამა აგზავნის მონაცემებს პითონის აპლიკაციაში (რობოტში) MQTT გამოყენებით. ადგილობრივი ფაილები ინახება, თუ მომხმარებელი ამას ირჩევს.

დეტალური ახსნა:

სანამ ჩაწერას დავიწყებთ, მომხმარებელმა უნდა შეიყვანოს MQTT ბროკერის IP მისამართი. გარდა ამისა, ჩვენ ასევე გვჭირდება თემა, რომელზეც ჩვენ გვინდა მონაცემების გამოქვეყნება. დაწყების დაჭერის შემდეგ, პროგრამა შეამოწმებს შესაძლებელია თუ არა ბროკერთან კავშირის დამყარება და ის მოგვცემს გამოხმაურებას. თემის არსებობის შემოწმება შეუძლებელია, ასე რომ თქვენ სრულად ხართ პასუხისმგებელი ამაზე. როდესაც ორივე შეყვანა ნორმალურია, აპლიკაცია დაიწყებს მონაცემების გაგზავნას (x, y & z კოორდინატები თითოეული ერთობლივიდან) ჩონჩხიდან, რომელიც მიკვლეულია MQTT ბროკერის თემაზე.

იმის გამო, რომ რობოტი დაკავშირებულია იმავე MQTT ბროკერთან და არის გამოწერილი იმავე თემაზე (ეს ასევე უნდა იყოს შეტანილი პითონის პროგრამაში) პითონის პროგრამა ახლა მიიღებს მონაცემებს WPF აპლიკაციიდან. ტრიგონომეტრიისა და თვით დაწერილი ალგორითმების გამოყენებით, ჩვენ კოორდინატებს გადავაქცევთ კუთხეებად და რადიანებად, რომლებსაც ვიყენებთ რობოტის შიგნით ძრავების რეალურ დროში დასაბრუნებლად.

როდესაც მომხმარებელი ასრულებს ჩაწერას, ის დააჭირეთ გაჩერების ღილაკს. ახლა მომხმარებელი იღებს ამომხტარ ფანჯარას, რომელსაც ეკითხება სურს თუ არა ჩანაწერის შენახვა. როდესაც მომხმარებელი უქმდება გაუქმებას, ყველაფერი გადატვირთულია (მონაცემები იკარგება) და შესაძლებელია ახალი ჩაწერის დაწყება. თუ მომხმარებელს სურს ჩანაწერის შენახვა, მან უნდა შეიყვანოს სათაური და დააჭიროს 'შენახვა'. შენახვისას დაჭერისას ყველა შეძენილი მონაცემი იწერება ადგილობრივ ფაილში სათაურის შეყვანისას, როგორც ფაილის სახელი. ფაილი ასევე დაემატება სიის ხედს ეკრანის მარჯვენა მხარეს. ამ გზით, ჩამონათვალის ხელახლა დაწკაპუნების შემდეგ, ფაილი იკითხება და ეგზავნება MQTT ბროკერს. შესაბამისად, რობოტი ითამაშებს ჩანაწერს.

ნაბიჯი 4: MQTT ბროკერის დაყენება

MQTT ბროკერის დაყენება
MQTT ბროკერის დაყენება

Kinect (WPF პროექტი) და რობოტი (Python პროექტი) შორის კომუნიკაციისთვის ჩვენ გამოვიყენეთ MQTT. MQTT შედგება ბროკერისგან (ლინუქსის კომპიუტერი, რომელზეც მუშაობს mqtt პროგრამული უზრუნველყოფა (მაგ. Mosquitto)) და თემა, რომელზეც კლიენტებს შეუძლიათ გამოიწერონ (ისინი იღებენ შეტყობინებას თემიდან) და გამოაქვეყნონ (ისინი განათავსებენ შეტყობინებას თემაზე) რა

MQTT ბროკერის დასაყენებლად, უბრალოდ გადმოწერეთ ეს მთელი ჯესიის სურათი. ეს არის სუფთა ინსტალაცია თქვენთვის Raspberry Pi, რომელზეც MQTT ბროკერია. თემაა "/სანდრო".

ნაბიჯი 5: დააინსტალირეთ Kinect SDK V1.8

იმისათვის, რომ თქვენს კომპიუტერში იმუშაოს, თქვენ უნდა დააინსტალიროთ Microsoft Kinect SDK.

შეგიძლიათ გადმოწეროთ აქ:

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

ნაბიჯი 6: Python V2.7- ის ინსტალაცია

რობოტი მუშაობს NaoQi ჩარჩოებით, ეს ჩარჩო ხელმისაწვდომია მხოლოდ პითონის 2.7 -ისთვის (არა 3.x), ასე რომ შეამოწმეთ პითონის რომელი ვერსია გაქვთ დაინსტალირებული.

შეგიძლიათ ჩამოტვირთოთ პითონი 2.7 აქ:

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

ნაბიჯი 7: კოდირება

კოდირება
კოდირება
კოდირება
კოდირება
კოდირება
კოდირება

Github:

შენიშვნები:

- კოდირება კინექტით: პირველ რიგში თქვენ ეძებთ დაკავშირებულ კინექტს. მას შემდეგ რაც შევინახეთ ეს საკუთრების შიგნით ჩვენ ჩართეთ ფერი და ჩონჩხის ნაკადი კინექტზე. Colorstream არის ცოცხალი ვიდეო, ხოლო skeletonstream ნიშნავს, რომ ჩნდება ჩონჩხი პირის წინ კამერის წინ. Colorstream ნამდვილად არ არის აუცილებელი ამ პროექტის მუშაობისთვის, ჩვენ უბრალოდ გავაქტიურეთ ის, რადგან ჩონჩხის ნაკადის ფერები ნაკადზე ნაზად გამოიყურება!

- სინამდვილეში ეს არის ჩონჩხის ნაკადი, რომელიც ასრულებს საქმეს. ჩონჩხის ნაკადის ჩართვა ნიშნავს იმას, რომ ადამიანის ჩონჩხზე მიმდინარეობს თვალყურის დევნება. ამ ჩონჩხიდან იღებთ ყველა სახის ინფორმაციას მაგ. ძვლის ორიენტაცია, ერთობლივი ინფორმაცია,… ჩვენი პროექტის გასაღები იყო ერთობლივი ინფორმაცია. თითოეული სახსრის x-y & z კოორდინატების გამოყენებით თვალყური ადევნეთ ჩონჩხს, ჩვენ ვიცოდით, რომ შეგვეძლო რობოტის გადაადგილება. ასე რომ, ყოველ.8 წამში (ტაიმერის გამოყენებით) ჩვენ ვაქვეყნებთ თითოეული სახსრის x, y & z კოორდინატებს mqtt ბროკერთან.

- ვინაიდან პითონის პროექტს აქვს სუბსიდირება mqtt ბროკერზე, ჩვენ შეგვიძლია ახლა მივიღოთ მონაცემები ამ პროექტის შიგნით. რობოტის თითოეული სახსრის შიგნით არის ორი ძრავა. ამ ძრავების მართვა შეუძლებელია მხოლოდ x, y & z კოორდინატების გამოყენებით. ასე რომ, ტრიგონომეტრიისა და საღი აზრის გამოყენებით, ჩვენ სახსრების x, y & z კოორდინატები გადავაქციეთ რობოტებად გასაგებ კუთხეებად.

ძირითადად ყოველ.8 წამში WPF პროექტი აქვეყნებს თითოეული სახსრის x, y & z კოორდინატებს. შესაბამისად, პითონის პროექტის შიგნით ეს კოორდინატები გარდაიქმნება კუთხეებად, რომლებიც შემდეგ იგზავნება რობოტის შესაბამის ძრავებზე.

გირჩევთ: