İçindekiler:
- Adım 1: Ekipman
- Adım 2: MATLAB Kurulumu
- Adım 3: İşlev: Hareket
- Adım 4: İşlev: Görüntü İşleme
- Adım 5: İşlev: Haritalama
- 6. Adım: Yan yana yerleştirme
- 7. Adım: Test Etme
- Adım 8: Sonuç
Video: Roomba İzci Gezgini: 8 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
En çok beklenen ve en çok araştırılan Amerikan projelerinden biri olan Mars gezici projeleri, yalnızca arkasındaki kızıl gezegenin kara kütlelerini ve yüzeylerini araştırmak ve yorumlamak amacıyla sürekli gelişen yüksek teknolojili otonom sistemlerin üretiminde insan başarıları haline geldi. Dünya. Mars misyonlarına saygı duruşunda bulunan daha kişisel bir projenin parçası olarak amacımız, belirli bir zaman diliminde otonom olarak hareket edebilen ve çevresinde belirli kriterlere göre tepki verebilen bir roomba robotu yaratmaktı.
Benzersizliğe gelince, robotun kökeninden aldığı her yolu gösteren bir diyagram oluşturmaya odaklandık. Ayrıca robot, çevresindeki nesnelerin sayısını panoramik bir tarzda sayabilecek.
Adım 1: Ekipman
-Roomba w/ Takılabilir Kamera (belirli adı bilinen)
-Bağlı Sunucu
-İnternet bağlantısı olan Windows 10 / Mac
-Parlak platform
-Karanlık zemin
-Tek renkli tasarıma sahip başıboş nesneler
Adım 2: MATLAB Kurulumu
Roomba'nız için görevler ve işlevler oluşturmak için, roomba komutlarını içeren özel kodlara ve araç setlerine sahip olmanız gerekir.
MATLAB 2016a ve sonrası indirildiğinde, bu robot dosyalarını içerecek bir klasör oluşturun ve aşağıdaki MATLAB dosyasını klasöre ekleyin ve kalan gerekli roomba dosyalarını yüklemek için çalıştırın.
Bundan sonra, Geçerli Klasör penceresine sağ tıklayın, farenizi "Bir Yol Ekle" üzerine getirin ve "Geçerli Klasör" üzerine tıklayın. Şimdi, bu dosyaların her birinin roomba'yı etkinleştirmek için kullanılacağı şekilde bir yol oluşturulmalıdır.
Şimdi, roomba'yı kurmak için komut penceresinde aşağıdaki komutu kullanın:
r=odaba(#).
# sembolü, belirtilen oda numarasının 'sayısıdır'; ancak, yalnızca roomba simülatörü istiyorsanız, aşağıdaki komutu yazmanız yeterlidir:
r=odaba(0).
Hareket modellerini test etmek için simülasyon tavsiye edilir.
Roomba'nın hangi komutları takip edebileceğini merak ediyorsanız, komut penceresine aşağıdakileri yazın:
doktor odası.
Daha fazla ayrıntı için aşağıdaki web sitesini ziyaret edin:
ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php
Adım 3: İşlev: Hareket
Hareketle ilgili olarak, roomba girişlerde verilen belirli bir süre boyunca otomatik olarak hareket etmelidir. Robotun hareketinin amacı, çeşitli engellerin varlığında sensörleri (tamponlar, hafif tamponlar ve uçurum sensörleri) değiştiğinde düzgün tepki vermektir. Bu kısım, daha sonra koda daha fazla özellik eklendiğinden, tüm roomba komutları için temel görevi görecektir. Bazı spesifikasyonlar gerekliydi:
- Hasarı azaltmak için robotun hızı daha düşük bir hıza düşürmesi gerekir.
-Bir uçuruma veya duvara yaklaşırken, robot ters yönde hareket edecek ve çarpma noktasına bağlı olarak açısını değiştirecektir.
-Bir süre araba kullandıktan sonra, oda sonunda duracak ve çevredeki alanın fotoğraflarını çekecektir.
Kullanılan değerlerin simülatörle ilgili olduğuna dikkat edin; dönüş açıları dönüş hızları ve robot sensör ön ayarları gibi değerler, ekipman hatası için stabilite ve muhasebe sağlamak için gerçek robot kullanılırken değiştirilmelidir.
Adım 4: İşlev: Görüntü İşleme
İsteğe göre, robotun kamerası tarafından alınan bir görüntünün (veya birkaç görüntünün) verilerini değiştirmekle görevlendirildik ve odayı görüntüde gördüğü nesnelerin sayısını "saymaya" karar verdik.
MATLAB'ın beyaz bir arka planla kontrast oluşturan karartılmış nesnelerin çevresine sınırlar çizmesi tekniğini izledik. Bununla birlikte, kamera tarafından algılanan farklı şekiller ve renkler nedeniyle bu işlev açık bir alanda zorluk çekmeye eğilimlidir ve bu da alışılmadık derecede yüksek sayımlara neden olur.
Bir kamera sağlanmadığından bu işlevin simülatörde çalışamayacağını unutmayın; denenirse, yalnızca bir (:,:, 3) matrisinin kullanılabileceğini bildiren bir hata oluşacaktır.
Adım 5: İşlev: Haritalama
Robotun sahip olmasını istediğimiz ek bir özellik, çevreyle doğrudan etkileşime girdiği için konumlarının haritasını çıkarmaktı. Bu nedenle, aşağıdaki kod bir harita açmayı ve robotun tampon sensörlerine basıldığı her konumu detaylandıran bir koordinat sistemi kurmayı amaçlamaktadır. Bu, ayrı ayrı test edilecek üç parçanın en uzun kısmı olduğunu kanıtladı, ancak son komut dosyasına uygulandığında çok daha basit olduğunu kanıtladı.
Fonksiyonun çalışma süresinin uzunluğuna bir limit eklemek için, test amacıyla while döngüsündeki n<20 limiti kullanıldı.
Kodun karmaşıklığı nedeniyle, kod segmenti uzun süre çalıştığında daha fazla hata oluştuğunu unutmayın; önceki testlerden, on tümsek, önemli hatalar meydana gelmeden önceki puan sayısı gibi görünmektedir.
6. Adım: Yan yana yerleştirme
Bütün bunlar tek bir dosyaya yerleştirileceğinden, önceki iki adımın her birini alt fonksiyonları olarak kullanarak bir fonksiyon yarattık. "recon" adı verilen redux işlevinde yapılan aşağıdaki değişiklikle son bir taslak yapıldı. MATLAB için karışıklığı önlemek için, "counter" ve "rombplot3" komut dosyaları sırasıyla "CountR" ve "plotr" gömülü işlevler olarak yeniden adlandırıldı.
Önceki komut dosyalarının aksine, son sürümde birkaç değişiklik yapılması gerekiyordu:
- Başlangıç noktası her zaman kırmızı bir daire ile işaretlenecektir.
- Roomba tamponlarından her durduğunda, konum siyah bir daire ile işaretlenir
- Roomba uçurum sensörlerinden her durduğunda, konum mavi bir daire ile işaretlenir
- Roomba'nın alanı incelemesi her durduğunda, konum yeşil bir daire ile işaretlenir
-Görüntüler, sonuçlara potansiyel olarak müdahale eden zaman damgası nedeniyle üst kısmı kaldırılacak şekilde değiştirildi
-Sınırlar, elde edilen oldukça yüksek sayılar nedeniyle bir nesne olarak sayılmayacaktır.
-Birkaç değişken değiştirildi, bu nedenle karışıklığı önlemek için referans olarak yukarıdaki sürümleri kullanın.
7. Adım: Test Etme
Her bir bileşen için yapılan testler zaman zaman oldukça karışık olduğunu kanıtladı, bu nedenle belirli önceden ayarlanmış değerlerde değişiklik yapılması gerekliydi. Robotun yeteneklerini kapalı bir alanda test etmek istediğimiz tematik arka plan, çok daha koyu bir zemine yerleştirilmiş bir beyaz tahtadan ibaretti. Nesneleri alanın etrafına dağıtabilirsiniz; çarpılacak nesneler veya robotun hareket alanından uzaktaki nesneler gibi davranmalarını sağlayın.
Regüle edilmiş zamanını ve temel hızını ayarladıktan sonra, roomba çarptığı her bir "uçurumdan" veya nesneden durarak ve gerileyerek ve yakınlarda bir şey algıladığında yavaşlayarak yeterli hareket davranışı sergiledi. İstenen üç metrelik hareket mesafesine ulaşıldığında robot durup alanı değerlendirerek her 45 derecelik bölgenin görüntüsünü alır ve zaman kalırsa ilerlemeye devam ederdi. Ancak dönüşleri istenenden daha büyük göründü, bu da koordinat verilerinin gizleneceği anlamına geliyordu.
Her durduğunda, konumunun koordinat sistemi üzerindeki yaklaşık bölgesine yeni bir nokta yerleştirildi; bununla birlikte, roomba'nın başladığı ilk yönün, haritanın tasarımında çok önemli bir rol oynadığı belirtilmektedir. Bir pusula özelliği uygulanabilseydi, harita tasarımının çok önemli bir parçası olarak kullanılmış olurdu.
İşlevin tam olarak çalışması için gereken gerçek süre her zaman istenen sürenin üzerine çıkar; bu, kurtarmalarından birinin ortasında duramayacağı düşünüldüğünde mantıklıdır. Ne yazık ki, görüntü sayımının bu versiyonunun, özellikle de çoğunlukla tek renkli veya parlaklığın değişken olduğu alanlarda bazı sorunları vardır; iki tonu birbirinden ayırmaya çalıştığı için, istenmeyen nesneleri algılamaya meyillidir, bu nedenle her zaman delicesine yüksek sayılara kadar sayar.
Adım 8: Sonuç
Bu görev, rahatlama sevincini getiren çok maceralı ve yaratıcı bir çalışma olsa da, kişisel gözlemlerime göre, hem kodda hem de robotun davranışında sorun yaratabilecek çok sayıda hata görebiliyordum.
while döngüsünde zaman belirtimini kullanma sınırlaması, toplam sürenin istenenden daha uzun olmasına neden olur; Panorama tekniği ve görüntü işleme süreci, yavaş bir bilgisayar tarafından çalıştırılırsa veya önceden kullanılmadıysa, aslında daha uzun sürebilir. Ayrıca sunumumuzda kullanılan roomba, simülatöre göre özellikle hareket konusunda çok sayıda hata ile hareket etti. Kullanılan robot ne yazık ki düz giderken ve istenilenden daha büyük dönüşler yaptığı için biraz sola eğilme eğilimindeydi. Bu ve daha pek çok nedenden dolayı, bu hataları telafi etmek için dönüş açılarında değişiklik yapılması şiddetle tavsiye edilir.
Bununla birlikte, bu, gerçek bir robotun davranışını doğrudan etkilemek için kodları ve komutları uygulamak için ilginç bir öğrenme deneyimi olarak hareket eden uzun ama entelektüel olarak teşvik edici bir projedir.
Önerilen:
Roomba'nızı Mars Gezgini'ne Dönüştürmek: 5 Adım
Roomba'nızı Mars Gezgini'ne Dönüştürmek:
Raspberry Pi Kullanan Mars Gezgini: 5 Adım
Raspberry Pi Kullanan Mars Gezgini: Sevgili tüm Büyük Öğreniciler, Mars'ın tüm yüzeyine gidebilen ve Dünya'dan bir şeyler keşfedebilen 6 tekerleğe sahip olan mars gezgini hakkında her zaman merak ediyorum. Ben de dizüstü bilgisayarımda oturarak bir şeyler keşfetmek istiyorum. Şimdi bunu yapmak için doğru zamanı düşünüyorum ve
Raspberry Pi - OpenCV Nesne Takibi ile Otonom Mars Gezgini: 7 Adım (Resimlerle)
Raspberry Pi - OpenCV Nesne Takipli Otonom Mars Gezgini: Bir Raspberry Pi 3, Açık CV nesne tanıma, Ultrasonik sensörler ve dişli DC motorlar ile güçlendirilmiştir. Bu gezici, eğitildiği herhangi bir nesneyi takip edebilir ve herhangi bir arazide hareket edebilir
Sualtı Gezgini: 3 Adım
Underwater Rover: Bu projede, keşfedilmemiş okyanuslarımızın problemini bir sualtı gezgini oluşturarak çözüyoruz. Bu gezici, okyanusun büyük derinliklerini araştırabilecek ve yakın çevresinde veri toplayabilecek. Bulunan birçok firma
Akıllı İnsan Gezgini: 6 Adım
Smart Human Rover: Merhaba arkadaşlar.. Bu HIND-RO ve benim tarafımdan yapılmıştır (Manish Kumar), Diwakar Pal, Deepak Gupta.Özellikler….. El Sarsıntısı (Giriş ile) Yüz Algılama Nesne Algılama Duygu Analizi Text to SpeechUpcoming Özellikler…. Gazete Okuma Y