On this page, you can find a few of the course projects that I've done during my B.Sc. and M.Sc. degrees. They are in chronological order. wherever possible, I have provided some related materials for each project. Some of the documents are in Persian. Please let me know if you are interested in any of them and I will provide you with more details.

Presenting my paper at ICROM2017

Machine Vision:

  • Implementation of different lens distortion correction methods in C++ using OpenCV library
  • Implementation of methods used for creating blended composite images and hybrid images in C++ using OpenCV library
  • Single view metrology, computing 3D affine measurements from a single perspective view of a scene given only minimal geometric information determined from the image
  • Implementation of Kanade-Lucas-Tomasi (KLT) tracker and Tomasi-Kanade method for extracting structure from motion in C++ using OpenCV library
  • A survey on visual attention control and its applications


Simulation and implementation of basic robotic applications such as forward and inverse kinematics and calibration in MATLAB environment and using Bioloid educational robot kit

Advanced Robotics:

  • Implementation of different collision checking and sampling strategies in motion planning methods (PRM and RRT) for a 3-DOF manipulator and its visualization in OpenCV library
  • Simulation of mobile robot localization using particle filter method in Webots and its implementation on e-puck

Distributed Artificial Intelligence:

  • Design and implementation of a behavior-based system for soccer player NAO humanoid robot
  • Evolution of MLP network using learning and evolution for a creature to navigate in a two dimensional task
  • Investigating the effect of knowledge transfer and in cooperative Q-Learning using a behavioral approach to estimate area of expertise
  • Proposing a learning methodology for an agent in the presence of multiple critics

Machine Learning:

Implementation of an adaptive tile coding for value function approximation, materials available here.

Pattern Recognition:

Implementation of different classifiers for classification of Persian hand-written letters including Bayes optimal classifier with parametric and non-parametric pdf estimates, K-nearest neighbor classifier, linear classifier, SVM classifier, MLP classifier and RBF classifier, including the use of optimization methods to find the optimal parameters and also using feature conditioning methodologies.

Bio-Inspired Computing:

A survey on Self-Reproduction, available here.

Asynchronous System Design:

History-Based Dynamic Voltage Scaling for Globally Asynchronous Locally Synchronous (GALS) Network On Chip (NoC):

A key concern in modern embedded systems is power consumption. Increasing demands for longer battery life and heating issues associated with power have led researchers to develop new ways to reduce power and energy consumption in embedded systems. Dynamic voltage and frequency scaling techniques are used to dynamically alter the voltage and frequency levels of the circuit to the lowest possible level to still yield high performance. In this research, we develop History-Base Dynamic Voltage Scaling (DVS) scheme for a GALS NOC in 45nm technology. This DVS architecture exploits the link utilization and adjusts the router voltages among few number of voltage modes.

summary available here.

VLSI System Design:

  • Simulating an Equality Comparator in PVT Corners of 0.18μ Technology
  • Layout Design of an Equality Comparator and Analyzing the Effect of Layout
  • Comparing Software Implementation versus Hardware Implementation of a System Using NIOS Soft-Core CPU
  • Implementation of a Triple DES Encryption Module using Verilog with Simulation, Analysis, Synthesis and Layout Overview

Computer Architecture Lab:

Design and implementation of a SRAM controller, USART, and a pipelined MIPS processor in Verilog on FPGA

Computer Network:

Implementation of a peer-to-peer network in Java

Computer Aided Design:

Hardware implementation of an image decompressor on Altera DE2 board

General Workshop:

Design and Implementation of a line tracking robot


Hardware Implementation of Proposed Architectures for Designing Systems in Electronic System Level | Supervisor: Prof. Z. Navabi

Download the full report here.



Wireless control of servo and DC motors of a robot using RF modules

Operating System:

Design and Implementation of a queue manager

Logic Design Lab:

Design and Implementation of a CPU on FPGA using Quartus

Design and Implementation of Compiler:

Design and implementation of a simple compiler using YACC

Computer Architecture:

Design and implementation of Single Cycle, Multi Cycle and Pipeline processor using Modelsim

Advanced Programming:

Design and implementation of a small strategic network game using C++ in Linux platform

Fundamentals of Computers and Programming:

Design and implementation of simple text editor (SMTE)