AnalizGenelGündem

OTONOM ARAÇ -2 (/w ROS)

Geçen yazımda projeye nasıl başladığımızdan, neden ROS’u tercih ettiğimizden, ROS’un ne gibi kolaylıklar sağladığından ve nasıl çalıştığından bahsetmiştik. Bu yazımda da projenin başından şu ana dek neler yaptığımızdan ve nasıl yaptığımızdan bahsedeceğim.

Bir hevesle ROS’u öğrenmeye başladık ve sonsuz deryaya kendimizi bıraktık. İlk önce halihazırda bilgisayarlarımızda kurulu olan bir GNU/Linux distrosu olan Ubuntu’ya ROS’u kolay bir şekilde kurduk. Wiki üzerinden adım adım çalıştık ve sonunda node yazacak bilgiye sahip olduğumuzda afalladığımız ilk yer bunu nasıl kullanacağımız olduğuydu. ROS ile beraber Gazebo’nun (ROS ile entegre çalışan simülasyon programı) geldiğini biliyorduk ama nasıl kullanacağımızdan bihaberdik.

Yine uzunca bir süre Gazebo üzerinde yoğunlaştık. Neyin nerede olduğunu anlamak biraz zaman alsa da Gazebo’da yere bir araba koymayı başardık ve yazdığımız node’lar ile arabanın üç eksende verisini alıp ekrana bastırabiliyorduk. İnsanlık için küçük, bizim için oldukça büyük bir adımdı.

Sonraki adımımız bu arabayı hareket ettirmekti. Zaten projenin en çok da bu kısmında takıldık. Hatta o kadar takıldık ki vazgeçmeyi bile düşündüğüm oldu. O seneki mezun dönemimizden ROS ile uğraşan tüm tanıdıklarıma durumu anlattım. Tüm önerilerini dinledim ama yine de bir sonuca ulaşamadım. Yine sabahına dek bir arabayı yürütmeye uğraştığımız bir günün ilk mesajını bu durumla alakalı danıştığım birinden aldım.

Mesaj beni mavrosla inşa edilmiş bir arabaya yönlendirdi. Mavros nedir derseniz ROS’un hava araçları için özelleştirilmiş bir türevi. Başlarda bir kara aracını mavrosla inşa etmek konusunda kararsız da olsak bu arabayı yürütmekte kararlıydık ve sonu ne olursa olsun bu arabayı kullanmaya karar verdik.

Gerekli adımları uygulayarak mavrosu bilgisayarlarımıza kurduk. Arabayı edindik ve çalıştırmak için birkaç program daha kurduktan sonra nihayet arabamız gazebo ekranındaydı. Bu arabaya geçişimizle beraber QGroundControl isminde bir program daha indirmiştik. Bu programla bir rota çizerek arabayı gazeboda hareket ettirebiliyorduk ama bizim Otonom Aracımız için ilk aşamada istediğimiz el ile yönetebilmekti.

QGroundControl’ü biraz karıştırdığımızda bir joystick bağlanarak kontrole izin verdiğini gördük. Github üzerinden bir joystick simülasyonu bulduk ve arabamıza entegre ettik. Artık arabamız klavye tuşları ile kontrol edilebiliyordu.

Bundan sonra yeni hedefimiz bir de hayalet ekran eklemekti. Elektrikli bir otonom araç hayalet ekransız olmazdı çünkü. Bunu QT5 ile yapmaya karar verdik. QT Creator ile hazır gelen hayalet ekranlardan birini kopyaladık ve node’umuza bunu çalıştırma emrini de ekledik. Ve sonunda istediğimiz olmuştu. Hayalet ekrana sahip, el ile kontrol edilebilen bir arabamız vardı artık.

Bu aşamadan sonra birtakım aksilikler yüzünden hevesimiz kırıldı ve projeye sonra devam etmek üzere ara verdik.

Bu yazımda sizlere projenin aşamalarından fotoğraflar alıntılayarak anlatmaya çalıştım. Yazı içinde kod veya yönteme yer vermememin sebebi kafa karıştırmayı istememem.

Herkese okuduğu için teşekkür ederim, yeni yazılarda yeni hedeflerle görüşmek dileğiyle.

Zeki Ahmet Bayar

Bilgisayar Mühendisliği Lisans Öğrencisi

Yorum Ekle