Robotlar için Matlab ve C++ ile Koordinat Sistemleri

Robotlar için Matematik Temelleri Dersinde anlatılan Koordinat Sistemleri konusu için hazırlanmış dokümanlar ve kodlar paylaşılmıştır.

 Robotlar için kullanılan Koordinat sistemlerini açıklayan doküman

Matlab ve C++ Eigen kütüphanesi

Önce Matlab ortamında sonrada C++ kullanarak aşağıdaki işlemi gerçekleştiriniz. Matlab ile elde ettiğiniz sonuçlarınızı C++ ile karşılaştırıp doğrulayınız.

1 tane mlx dosyasını ayrı, C++ için hazırladığınız klasörü sıkıştırıp ayrı olarak yükleyiniz.

https://yapbenzet.org.tr/visual-studio-ile-eigen-kutuphanesi-kullanma/ adresinden eigen kurulumu ile ilgili adımları takip edebilirsiniz. Fakat bu ödev için Eigen kullanmak zorunda değilsiniz. Eigen ile uygulamalar haftaya derste yapılacak ve ona göre ödev yapılması istenecektir.

Üç boyutlu uzayda robotun ve şekildeki 9 beyaz silindirin konumlarının verildiğini kabul edin. Her bir beyaz silindire bir isim veriniz. Robotun verilen bu 9 tane cisimden hangisine yakın olduğunu hesaplayıp ekrana robota en yakın silindirin ismini ve mesafesini mesaj olarak yazdırınız.

Beyaz silindirlerin konumlarının aşağıdaki şekilde verilmiş olsun. Robotun ise konumu rastgele olarak seçiniz.

xyz
-1.5-1.50
-0.5-1.50
1.5-1.50
-2.51.50
-0.51.50
1.51.50
-2.54.50
-0.54.50
1.54.50

 

Robota en yakin noktanın MATLAB Livescript çözüm dosyası 

 

silindir = [    -1.5   -1.5    0
                -0.5   -1.5    0
                 1.5   -1.5    0
                -2.5    1.5    0
                -0.5    1.5    0
                 1.5    1.5    0
                -2.5    4.5    0
                -0.5    4.5    0
                 1.5    4.5    0 ] ;
silindirIsimler = [ 
            "1. cisim" 
            "2. cisim" 
            "3. cisim" 
            "4. cisim" 
            "5. cisim" 
            "6. cisim" 
            "7. cisim" 
            "8. cisim" 
            "9. cisim"  ];
robotPOS = [ randi([-3 5],1,2) 0 ]

robotPOS =
4 5 0

mesafe = sqrt(sum((robotPOS(1,:)-silindir(:,:)).^2,2))

mesafe = 8.5147 7.9057 6.9642 7.3824 5.7009 4.3012 6.5192 4.5277 2.5495

enKucuk = find( mesafe == min(mesafe));
fprintf("Robota en yakın cisim = %s ve uzakligi = %5.3f \n", silindirIsimler(enKucuk), mesafe(enKucuk))

Robota en yakın cisim = 9. cisim ve uzakligi = 2.550

 

 

C++ Çözümü Eklenecektir.