Სარჩევი:

ინერტული საზომი ერთეულის გამოყენების გზა?: 6 ნაბიჯი
ინერტული საზომი ერთეულის გამოყენების გზა?: 6 ნაბიჯი

ვიდეო: ინერტული საზომი ერთეულის გამოყენების გზა?: 6 ნაბიჯი

ვიდეო: ინერტული საზომი ერთეულის გამოყენების გზა?: 6 ნაბიჯი
ვიდეო: Pressure Testing | Hydrostatic Test | Pneumatic Test | Piping Mantra 2024, ნოემბერი
Anonim
ინერციული საზომი ერთეულის გამოყენების საშუალება?
ინერციული საზომი ერთეულის გამოყენების საშუალება?

Კონტექსტი:

გასართობად ვაშენებ რობოტს, რომლითაც მინდა ავტონომიურად გადავიდე სახლის შიგნით.

ეს გრძელი სამუშაოა და მე ვაკეთებ ეტაპობრივად.

მე უკვე გამოვაქვეყნე 2 ინსტრუქცია ამ თემაზე:

  • ერთი ბორბლის კოდირების დამზადების შესახებ
  • ერთი wifi კავშირის შესახებ

ჩემს რობოტს მართავს 2 DC ძრავა, ჩემი სახლის ბორბლის კოდირების დახმარებით.

მე ამჟამად ვაუმჯობესებ მოძრაობის კონტროლს და გარკვეული დრო გავატარე გიროსკოპით, აქსელერომეტრით და IMU– ით. სიამოვნებით გაგიზიარებ ამ გამოცდილებას.

გსურთ გაიგოთ მეტი ლოკალიზაციის შესახებ? აქ არის სტატია, თუ როგორ უნდა გაერთიანდეს ხელოვნური ინტელექტი და ულტრაბგერითი რობოტის ლოკალიზება

ნაბიჯი 1: რატომ გამოვიყენოთ ინერტული საზომი ერთეული?

რატომ გამოვიყენოთ ინერციული საზომი ერთეული?
რატომ გამოვიყენოთ ინერციული საზომი ერთეული?

მაშ რატომ გამოვიყენე IMU?

პირველი მიზეზი ის იყო, რომ თუ ბორბლის კოდირება არის საკმარისად ზუსტი იმისათვის, რომ გააკონტროლოს სწორი მოძრაობა, დარეგულირების შემდეგაც კი, მე ვერ მივიღე სიზუსტე ბრუნვისთვის +- 5 დეგრაზე ნაკლები და ეს არ არის საკმარისი.

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

მიუხედავად ამისა, მე დავინტერესდი, რომ რაიმე IMU ვცადო. მე ვირჩევ BNO055 კომპონენტს. გარკვეული დრო გავატარე ამ IMU– ს გასაგებად და შესამოწმებლად. ბოლოს გადავწყვიტე ამ სენსორის არჩევა შემდეგი მიზეზების გამო

  • მე შემიძლია გავაკონტროლო როტაცია, ისევე როგორც L3GD20
  • მე შემიძლია გამოვავლინო უმნიშვნელო ბრუნვა პირდაპირ მოძრაობისას
  • მე უნდა მივიღო ჩრდილოეთის ორიენტაცია რობოტის ლოკალიზაციისთვის და BNO055 კომპასის დაკალიბრება ძალიან მარტივია

ნაბიჯი 2: როგორ გამოვიყენოთ BNO055 2D ლოკალიზაციისთვის?

როგორ გამოვიყენოთ BNO055 2D ლოკალიზაციისთვის?
როგორ გამოვიყენოთ BNO055 2D ლოკალიზაციისთვის?

BNO055 IMU არის Bosch 9 ღერძი ინტელექტუალური სენსორი, რომელსაც შეუძლია აბსოლუტური ორიენტაციის უზრუნველყოფა.

მონაცემთა ცხრილში მოცემულია სრული დოკუმენტაცია. ეს არის მაღალტექნოლოგიური კომპონენტი, ეს არის საკმაოდ რთული პროდუქტი და რამდენიმე საათი გავატარე იმის შესასწავლად, თუ როგორ მუშაობს იგი და შევეცადე მისი გამოყენების სხვადასხვა ხერხი.

მე ვფიქრობ, რომ შეიძლება სასარგებლო იყოს ამ გამოცდილების გაზიარება.

პირველ რიგში გამოვიყენე ადაფრუტის ბიბლიოთეკა, რომელიც იძლევა კარგ ინსტრუმენტს სენსორის დაკალიბრებისა და აღმოსაჩენად.

დასასრულს და ბევრი ტესტის შემდეგ გადავწყვიტე

  • გამოიყენეთ ადაფრუტის ბიბლიოთეკა მხოლოდ კალიბრაციის შესანახად
  • გამოიყენეთ BNO055– ის ყველა შესაძლო რეჟიმიდან 3 (NDOF, IMU, Compss)
  • დაუთმეთ არდუინო ნანოს BNO055 ზომების საფუძველზე ლოკალიზაციის გამოთვლა

ნაბიჯი 3: აპარატურის წერტილი Vue

აპარატურის წერტილი Vue
აპარატურის წერტილი Vue
აპარატურის წერტილი Vue
აპარატურის წერტილი Vue
აპარატურის წერტილი Vue
აპარატურის წერტილი Vue

BNO055 არის I2C კომპონენტი. ასე რომ, მას სჭირდება კვების ბლოკი, SDA და SCL კომუნიკაციისთვის.

უბრალოდ გაუფრთხილდით Vdd ძაბვას თქვენი შეძენილი პროდუქტის მიხედვით. Bosch ჩიპი მუშაობს დიაპაზონში: 2.4V დან 3.6V და თქვენ ნახავთ 3.3v და 5v კომპონენტს.

არ არსებობს სირთულეები ნანოსა და BNO055– თან დასაკავშირებლად.

  • BNO055 იკვებება ნანოთი
  • SDA & SCL დაკავშირებულია 2 x 2k გამყვანი რეზისტენტებით.
  • 3 LED დაკავშირებული ნანოს დიაგნოზის დასადგენად (რეზისტენტებით)
  • 2 კონექტორი გამოიყენება ჩატვირთვის შემდეგ რეჟიმის დასადგენად
  • 1 კონექტორი BNO– სკენ (Gnd, Vdd, Sda, Scl, Int)
  • 1 კონექტორი რობოტის/მეგას მიმართულებით (+9V, Gnd, sda, Scl, Pin11, Pin12)

ცოტაოდენი შედუღება და ეს არის!

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

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

საკომუნიკაციო წერტილიდან:

  • ნანო არის I2C ავტობუსის ოსტატი
  • Robot/Mega და BNO055 არიან I2C მონები
  • ნანომ მუდმივად წაიკითხა BNO055 რეგისტრები
  • რობოტი/მეგა ამატებს ციფრულ სიგნალს, რომ მოითხოვოს სიტყვა ნანოდან

Vue გაანგარიშების ადგილიდან: ნანო BNO055- თან ერთად აწვდის

  • კომპასის სათაური (გამოიყენება ლოკალიზაციისთვის)
  • ნათესავი სათაური (გამოიყენება როტაციის გასაკონტროლებლად)
  • აბსოლუტური სათაური და პოზიცია (გამოიყენება მოძრაობების გასაკონტროლებლად)

Vue ფუნქციური თვალსაზრისით: ნანო:

  • მართავს BNO055 კალიბრაციას
  • მართავს BNO055 პარამეტრებსა და ბრძანებებს

ქვესისტემა Nano & BNO055:

  • თითოეული რობოტის ბორბლისთვის გამოთვალეთ აბსოლუტური სათაური და ლოკალიზაცია (მასშტაბის ფაქტორით)
  • გამოთვალეთ შეფარდებითი სათაური რობოტის როტაციის დროს

ნაბიჯი 5: არქიტექტურა და პროგრამული უზრუნველყოფა

არქიტექტურა და პროგრამული უზრუნველყოფა
არქიტექტურა და პროგრამული უზრუნველყოფა

ძირითადი პროგრამული უზრუნველყოფა მუშაობს Arduino Nano– ზე

  • არქიტექტურა ემყარება I2C კომუნიკაციას.
  • მე შევარჩიე ნანოს მიძღვნა იმის გამო, რომ ატმეგა, რომელიც რობოტს მართავს, უკვე დატვირთული იყო და ეს არქიტექტურა სხვაგან ხმარებას უადვილებს.
  • ნანო კითხულობს BNO055 რეგისტრებს, გამოთვლის და ინახავს სათაურს და ლოკალიზაციას საკუთარ რეესტრებში.
  • Arduino Atmega, რომელიც მართავს რობოტის კოდს, აგზავნის ბორბლებს კოდირების ინფორმაციას ნანოში და კითხულობს სათაურებს და ლოკალიზაციას ნანოს რეესტრებში.

იქ არის ქვესისტემის (ნანო) კოდი აქ GitHub– ზე

ადაფრუტის დაკალიბრების ინსტრუმენტი თუ აქ GitHub– ზე (დაკალიბრება შეინახება eeproom– ში)

ნაბიჯი 6: რა ვისწავლე?

რაც შეეხება I2C- ს

პირველ რიგში შევეცადე მყავდეს 2 ოსტატი (არდუინო) და 1 მონა (სენსორი) ერთ ავტობუსში, მაგრამ ბოლოს შესაძლებელია და უადვილესი იყოს მხოლოდ ნანოს ოსტატი და გამოვიყენო GPIO კავშირი ორ არდუინოს შორის "ნიშნის მოთხოვნისათვის" რა

რაც შეეხება BNO055 2D ორიენტაციას

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

კოდის ზომის შესამცირებლად და შენახვის შესაძლებლობის შესანარჩუნებლად BNO055 შეწყვეტით, მირჩევნია არ გამოვიყენო ადაფრუტის ბიბლიოთეკა და გავაკეთო ეს დამოუკიდებლად.

გირჩევთ: