Saturday, March 28, 2015

Robot Navigation - The Wavefront Planner Algorithm

Hi, reader this report was written for the 'Autonomous Robots' labwork. It explains 'The Wavefront Planner Algorithm'. End of this post, you can see the Matlab codes and also the report itself.

1 - Introduction

The theories behind robot maze navigation is immense. It would take several books just to cover the basics. But this labwork only concentrate on the wavefront planner algorithm which is still powerful methods of intelligent robot navigation. The basic concepts and details of the algorithm are going to be explained in the next chapter. After that, we are going to see the results.

2 - The Algorithm

The wavefront algorithm finds a path from point S (start) to point G (goal) through a discretized workspace such as this (0 designates a cell of free space, 1 designates a cell fully occupied by an obstacle):

\[
\begin{bmatrix}
1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 2 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 0 & 0 & 0 & 1 \\
1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 0 & 0 & 0 & 0 & 1 \\
1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\
\end{bmatrix}
\]

Wednesday, January 21, 2015

Face Recognition

Chapter 1: Introduction

1. Preliminary

In this project, we implemented a face recognition system by using principal component analysis, which is known as PCA. PCA method provide a mathematical way to reduce the dimension of problem.

Since the most elements of a facial image are highly correlated, it is better to extract a set of interesting and discriminative feature of a facial image. Mathematically speaking, we transform the correlated data to independent data. To implement the transform, we employed some linear algebra method such as SVD (Chapter3). The main idea is to obtain Eigenfaces that every face can be regard as a linear combination of these eigenfaces (Chapter4). Then the face recognition problem convert to a mathematic problem: what is the linear combination of a face? In other words, it simplify a problem from 2D to 1D.

Friday, January 16, 2015

Introduction to Spectral Mesh Analysis Toward a simple implementation in C++

Hi reader, as I said before I want to share what I have done and learned from the Vision & Robotics master program. This post includes the our semester project. Actually, the code was given to all the students and the professor wanted us to improve his code and apply 'Spectral Mesh Analysis' on it. You can find more information from the project link that is end of the post. If you have any question free to shoot. I'm just putting here the graphical user interface and how to use the program that is already inside of the project report.

6.1 Framework choice

Because of the constraints that the project must be developed using C++ under Qt IDE, we used the Qt Widgets that are mature and feature rich user interface elements suitable for mostly static user interfaces. Besides, since Qt Widget are native C++ elements it is easier to merge UI with the application logic. The application UI is connected to all other parts of the application through the class Logic. The logic handles all the data interchange between the UI and algorithms. So it is possible to split the application in separate parts.

6.2 Basic elements of UI

The UI is straightforward and easy to use. There are two main parts – openGL screen and sidebar. It is possible to extract many cases of the application usage from the task:

  • Load of the file
  • Adjust the camera properties
  • Adjust the light properties
  • Adjust the displaying mode
  • Calculate Laplacian Matrix and set new colors according to it
  • Find the shortest path from one node to another

Friday, November 21, 2014

How Google ranks Web pages?

Google’s search algorithm combined precomputed PageRank scores with text matching scores to obtain an overall ranking score for each webpage. The PageRank algorithm assigns a PageRank score to each webpages. The algorithm models the behavior of an idealized random Web surfer [1, 2]. This Internet user randomly chooses a webpage to view from the listing of available webpages. Then, the surfer randomly selects a link from that webpage to another webpage.

The model the activity of the random Web surfer, the PageRank algorithm represents the link structure of the Web as a directed graph.


The process for determining PageRank begins by expressing the directed Web graph as the nxn hyperlink matrix, H, where n is the number of webpages.


Friday, November 14, 2014

Real Time Adaptive Shortest Path Navigation System - [Proje]

1 – PROJECT OVERVIEW

This document includes the project proposal for the RETINA(REal Time Adaptive Shortest Path Navigation System) that will be produced at end of fall semester. The schedule for this project starts in September 2012 and ends in January 2013. This project will be developed by the students who are taking CE 497 Senior Project 1 course. The members of this project are as follows:

  • Taner Güngör
  • Efe Sezer
  • Uğur Eryüzlü
  • Ulaş Göde

Project will be supervised by Asst. Prof. Süleyman Kondakçı and project coordinator is Taner Güngör who is elected by the project team.

Real Time Adaptive Shortest Path Navigation System provides a package that is combination of the software and hardware. It performs a shortest path for the agents (who are using this system in their vehicles) in the traffic. The system finds that shortest path according to the specified parameters, such as instantaneous flow, throughput, weather conditions, (rain, humidity, snow) illumination of the roads. The oriented customers for this product are personal and commercial vehicle drivers and commercial transportation companies.

The project scope for the Real Time Adaptive Shortest Path Navigation System will be included embedded boards which are Arduino and ARM. These boards will perform the software operations via sensors which are attached on the Arduino board and show up the shortest path on the screen.

Wednesday, October 29, 2014

Yaban - Yakup Kadri Karaosmanoğlu [Bam Teli]

Uzun bir süredir aklımda olan fakat hayata geçiremediğim bir başka eylemi bu yazı ile gerçekleştiriyorum. Yeni dizinin adı "Bam Teli". Okuduğunuz kitaplarda kimi bölümler vardır hani, onları okuduğunuz vakit o kitaptan daha fazlasını alamayacağınızı bildiğiniz noktalar. Hem büyük bir sevinç hem de büyük bir hüzündür okuyucu için. Büyük bir sevinçtir çünkü merakla okumaya başladığınız o kitaptan istediğinizi almışsınızdır, büyük bir hüzündür çünkü kitabın geri kalanını okuyacak iştahınızı söndürebilir. İşte bu noktalar o eserin bam telidir. Bu ilk yazıda Yakup Kadri Karaosmanoğlu'nun yazdığı Türk edebiyatında aydın-halk arasındaki uçurumu açık ve kaygıdan uzak şekilde ele alan nadir romanlardan biridir. Bu romanın bam teli olduğunu düşündüğüm noktaları aşağıdaki pasajlar:

Wednesday, October 22, 2014

"Light's Out" Game and Its Solution with Linear Algebra

Hi reader, this is my first article that is written in English here. Why I am writing in English? Actually, I want to share my reports and projects that I found interesting during the master. All reports and projects are of course in English. So, I don't want to translate these subject to Turkish. If you don't know English but want to learn more about. You can ask everything about the related subject. Today, I am going to talk about "Light's Out" game and its solution with "Linear Algebra". If you know Linear Algebra and how to apply it to the game, then it is just 10-15 lines of code. I am also going to share the MATLAB solution end of the article.

Chapter 1: Abstract

1. Preliminary

Light out is a game introduced by tiger electronics, an American toy manufacturer, on a 5 by grid matrix, where each matrix can have either on or off status? The game begins with some of the matrices turned on randomly. Pressing a single buttons will affect the status of itself and its neighbors. The game of the game is to systematically press as much as possible less number of times and making every matrices become off.[1][2]


The goal of the game is to turn all of the lights off. The goal of the puzzle is to switch all the lights off, preferably in as few button presses as possible. Every time a button is pressed, the state of that button as well as the state of the buttons above, below and to the left and right are changed. For example, if all buttons are turned off and a button is pressed, the resulting outcome could result in three, four, or five buttons lighting up depending upon where the original button was located on the game board.[4]

Thursday, August 28, 2014

Disket Sürücüsü ile Müzik Çalmak

Herkese merhaba, ilk defa üniversite son sınıftayken youtube üzerinde gördüğüm floopy diskler(disket sürücü) ile müzik çalma işlemini uzun zamandır yapmak istiyordum. Bugün bahsedeceğim konu bu. Hatta yaklaşık 3 ay gibi bir süre Hermes İletişim'de part-time çalıştığım vakit, bu konuyu anlattığım ve aramızda ilk önce kim yapacak diye ufak bir iddiaya tutuştuğum Aşkın Yollu'ya armağan ediyorum bu yazıyı. Öncelikle ihtiyacımız olan malzemelerin listesini vereyim.

1 - Arduino UNO

2 - Kullanılmayan Bir Disket Sürücüsü (Yazıda 3.25 inchlik 34-pine sahip sürücü kullanıyorum, birden fazla kullanabilirsiniz)

3 - Kullanılmayan Bir ATX Güç Kaynağı (Şart değil, gereken akımı Arduino üzerinden de alabilirsiniz)

4 - CAT5 UTP Kablolar (Sürücü ve Arduino arasındaki bağlantılar için)

5 - Breadboard

Yukarıdaki malzemelerimiz tam ise, sürücümüzü müzik çalar hale getirmeye başlayabiliriz. Öncelikle eğer güç kaynağı kullanacaksanız, güç kaynağımızın aşağıdaki resimde görüldüğü gibi yeşil ve herhangi bir siyah kablosunu kısa devre yaptırıyoruz. Bu sayede güç kaynağımız sabit 5 voltluk bir enerji verecektir. Bu enerji ise disket sürücüsünü çalıştırmak için yeterlidir.

Sunday, June 15, 2014

AdobeHDS(Adobe HTTP Dynamic Streaming) ve Video İndirme

Uzunca bir süredir Mete Çubukçu'nun NTV'de yayınlanan Pasaport adlı programını izliyorum. Çubukçu, “Pasaport”ta Ortadoğu’dan Avrupa’ya, Kafkasya’dan Amerika’ya uzanan geniş bir coğrafyada siyasi, sosyal, toplumsal gelişmeleri ve hayatları ekrana getiriyor. Çubukçu aynı zamanda dünya liderleriyle röportajlar yaparak programı renklendiriyor. Programın her bölümü ayrı bir keyif olmaKla beraber internet üzerinden izlenebiliyor. Buradaki linkten programın tüm bölümlerine ulaşabilirsiniz.

Benim bu yazıda değinmek istediğim nokta ise, internet ortamında bulunan bu videoları nasıl bilgisayarımıza indirebileceğimiz ile alakalı. Başlangıçta normal bir flash oynatıcı üzerinden stream yapıldığını düşünüyordum. Biraz uğraşsam dosyanın server üzerindeki yolunu bulup, videoyu bilgisayarıma indirebilecektim. Ancak daha sonra videoların "AdobeHDS" denen bir yöntemle stream edildiğini anladım. Peki nedir bu AdobeHDS?

AdobeHDS(Adobe HTTP Dynamic Streaming) normal HTTP bağlantıları üzerinden MP4 standartlarına uygun naklen video yayını yapılabilen bir yöntem. Ayrıca varolan önbellek altyapısını kullanarak iş akışı içerisine içerik hazırlamanızı sağlayan bir arayüz de sunmaktadır. Bu yazıda avantaj ve dezantajlarından bahsetmeyeceğim. Daha fazla bilgi almak isterseniz bu linkte fazlasıyla mevcut.

Friday, May 23, 2014

TTNET IEEE Build Up 2014 Etkinliği

Uzun bir süredir iş dolayısı ile katılmak istediğim etkinliklere katılamıyordum. Bunlardan birisi İzmir Ekonomi Üniversitesi tarafından düzenlenen GGJ Ege 2014 idi. Bu etkinliğe katılamasam da sunumların yapıldığı son gün alana gittim ve oyun sunumlarını izledim. Daha önceki GGJ'lerde ekip arkadaşım Alper Yeşil'in dereceye girdiğine de şahit oldum. Hatta şakayla karışık sanırım sorun bizdeymiş bile dedim.

Aradan yaklaşık 2-3 ay geçtikten sonra Alper'den telefon aldım. GGJ kıvamında İzmir Yüksek Teknoloji Enstitüsü tarafından düzenlenen TTNET'in sponsorluğunda gerçekleştirilecek olan BuildUp Etkinliğinden bahsedip katılıp katılamayacağımı iki tasarımcı arkadaşının boşta olduğunu söyledi. Kısaca etkinlikten bahsetmek gerekirse, 48 saat içerisinde verilen temaya uygun bir oyun maratonu diyebiliriz. Yani GGJ'den isim dışında pek farkı yok. Alper'in bu teklifi üzerine üniversitede pek çok projede birlikte olduğumuz bazı arkadaşlara durumu anlattım. Tabii ki efsane isim Efe Sezer'den olumlu yanıt dönünce oluru verdik bizde. Ayrıca o gün etkinliğe katılım için son gündü, hemen hızlıca ekip arkadaşları Maya Bora ve Ayışığı Gülsel ile tanışılıp grup adı belirendi. Tek bir çatı altında toplandık mottosu ile grubun ismini "Roof" koyduk ve acele bir şekilde kayıt işlemlerini yaptık. Yaklaşık 3-4 gün sonra bize olumsuz bir yanıt geldi, zira gruptan hiç kimsenin CV'sini veya portfolyosunu göndermemiştik. Akabinde etkinliğin yetkililerinden Onur Temizkan ile iletişime geçip bu etkinliğe ne kadar çok katılmak istediğimizi anlattım. Gerekli belgeleride yolladık. Etkinlik ekibi tarafından yapılan yeni bir görüşme ile katılımımız onaylandı. Biraz sorunlu bir süreç oldu ama değdi doğrusu.