During my University Career I’ve done several interesting projects that I’m going to summarise in this page.

SOFTWARE ENGINEERING – Java management tool Condomini@ndo

As part of the software engineering course I created a management system called Condomini@ndo. The goal was to develop a management system for a condominium administrator.

This was the logo of the Web App:

It was written in Java and I used the framework Apache Wicket. Fot the data persistence I managed to create a small database. I was interfacing with the database thanks to Hibernate. Hibernate has a layered architecture which helps the user to operate without having to know the underlying APIs. Hibernate makes use of the database and configuration data to provide persistence services (and persistent objects) to the application.

BACHELOR’S DEGREE THESIS – Implementation and tuning of a DC-Motor control system for robotic applications

For my Bachelor’s degree thesis I managed to implement a control system for a small robot which was crafted in the Computer Engineering department of the University. This is a picture of the small robot:

Our small robot.

The robot was controlled by a Raspberry Pi 3 with a real time operative system called Xenomai. The source code was written in C. The control system implemented was basically a PID controller. In the video below you can see the robot moving:

The base turns 360 degrees while the arm about 160 degrees. The robot stops in the correct position and the movement is fluid. The controller calibration is quite good, there’s no overshooting or undershooting.

Time on x axis – Position (in radiant) on y axis.

As you can see in the picture the base of the robot turns 360 degrees in about 2 seconds.

OPERATIONS RESEARCH – Bike sharing project

The aim of the project was to calculate a minimum route. A pickup truck leaves from a warehouse and takes care of redistributing the bikes of the bike sharing in the appropriate parking lots. To do this, you can opt for different routes, which is the best one?

AMPL logo.

The project was developed using AMPL. AMPL is a computer language for describing production, distribution, blending, scheduling and many other kinds of problems known generally as large-scale optimization or mathematical programming.

Download Source Code

ARTIFICIAL INTELLIGENCE – Textual Classification with Graph Convolutional Network (GCN)

In this project I used Graph Convolutional Network (GCN) for textual classification. GCNs are a very powerful neural network architecture for machine learning on graphs. In fact, they are so powerful that even a randomly initiated 2-layer GCN can produce useful feature representations of nodes in networks. The figure below illustrates a 2-dimensional representation of each node in a network produced by such a GCN. Notice that the relative nearness of nodes in the network is preserved in the 2-dimensional representation even without any training.

gcn ia

I had a dataset of 10000 reviews of movies. 5000 of them were positive reviews while the other 5000 were negative.

The aim of the project was to compare the results obtained using a traditional classifier, like Naive Bayes, with the result of the GCN. I developed a tool that preprocessed the dataset and created the input for the GCN. The source code was writte in Python which is the perfect language for data analysis.

DISTRIBUTED SYSTEMS – Development of a multiprocess tool for textual classification with GCN

The tool created for AI was later transformed in a multi-process tool for the Distributed Systems project.

MASTER’S DEGREE THESIS – Development of an industrial robotic system for high-speed automatic machines

For my Master’s degree thesis i carried out an interesting project in the R&D department of OCME (PR). OCME is a company that deals with industrial automation. It’s business is about the production of automatic machines, palletizers, depalletizers and complete systems for different sectors.

My project was to find an extraction algorithm for boxes placed arbitrarily on a transfer belt. The packages contained fragile material, for this reason they could not be lifted by the manipulators placed on the sides of the line but only hooked and extracted in tracking.

The production line with the manipulators on its sides.

The position and orientation of the packages was obtained thanks to a special artificial vision sensor while the line was managed by a PLC made by B&R (model X20CP1584). The robot are FANUC R-1000 iA/80H. The algorithm was written in Structured Text (ST) one of the five languages approved by IEC.

Below you can see a simulation of the extraction algorithm made with a graphic environment written in Visual Basic for Applications (VBA).

Microsoft Excel graphic environment – VBA.

When a box can be rotated without hitting the adjacent packs, a circumference is drawn around it. The circumference represents the envelope of the package. Rotation is one of the slowest movements of the robot and should be started as soon as possible.

Below you can see another simulation created with Roboguide, the simulation software made by FANUC.

I can’t reveal anything else because of non-disclosure agreement.