PROJECTS
Below is a selection of projects I have worked on over the years, some during my Master's studies and others while working as a research assistant, visiting scholar or collaborator.
Python/PyTorch & MATLAB


PROFESSIONAL
Deep Learning Neural Networks AI Python/PyTorch Computer Vision RCM Optical Flow
Skin Cancer Detection FlowNet 2.0 Mosaic Real Time Healthcare
I was a Research Assistant at the Robust Systems Lab (RSL) at Northeastern University where we had this collaboration project with Memorial Sloan Kettering Cancer Center in New York City. We fully developed a Deep Learning-based algorithm using FlowNet 2.0 that is capable of creating a mosaic of the skin in real time (i.e. the mosaic is showed on the screen at the same time the doctor is scanning the patient's skin). The algorithm uses Optical Flow to compute the motion of individual pixels. In the videos above, it can be observed that the vector field prediction matches the ground truth.






C/C# & MATLAB [Code]

PROFESSIONAL
Electronics Arduino GUI Healthcare Cardiology Mechanical Engineering Fiber Optics
SolidWorks Design Stepper Motor Pulley-Based System Precise Diagnostics Sensors
Following rigorous theoretical and practical research, I completely developed – both hardware and software – an operative sensing unit that accurately measures the specific and subtle changes in blood coagulation time. The unit comprised of a pulley-based mechanical system actuated by a stepper motor and infrared sensors that were coupled to a fiber optics setup. Arduino boards were used to control the speed of the motors and the respective data acquisition from the sensors. The ultimate purpose of this prototype was to obtain a calibration method for blood coagulation responses that could minimize the run time of any experiment by adding a pro-coagulant factor, such as Thromboplastin (TP). TP activates the extrinsic coagulation pathway when is released into the blood stream. This led us to obtain the [TP]-time curve to individually characterize a patient’s clotting profile. The high precision and accuracy achieved through this prototype suggested that this metric could be used for personalized clotting diagnostics.

C++/ROS [Code]

UNIVERSITY
Mobile Robots Navigation Mapping Pose Estimation Localization Simulation Real Testing
Motion, Planning & Exploration ROS Rviz C++
For this project, a robot with a laser scanner located and navigated exploring its environment while generating a map, both in simulation and with a real environment.
The objective was to develop an exploration strategy that builds a complete map of the environment as efficient as possible, meaning traveling the shortest possible distance.
We had to start by developing our code for simulation, and if we finally succeeded, we would be able to test it on a real robot.
​
We used a Gravitation Search Algorithm (GSA), it is actually very easy to calculate and prioritizes exploring near frontiers. It is a nature inspired optimization algorithm, inspired by newton's law of gravity and law of motion. The exploration and exploitation capability of GSA is balanced by splitting the whole swarm into two groups. The search process is modified so that one group better exploits and one group becomes responsible for better exploration. The project was done in collaboration of two good friends of mine, Albert Suñé and David Luna.






MATLAB [Code]

UNIVERSITY
Computer Vision Integral Image OCR Algorithm Coarse Detection Fine Detection
Character Segmentation Bounding Box Heuristics Correlation Analysis Edge Detection
An algorithm was designed and developed which implemented the three main stages regarding Automatic License Plate Recognition: License Plate Localization (LPL), Char- acter Segmentation and Optical Character Recognition (OCR). The vertical edge method used for the LPL stage allowed considerably reducing computational time, and when the potential regions were extracted, the use of morphological operator eased the character segmentation process. Despite having a high accuracy for the LPL stage, we could not reach the outstanding accuracy value obtained by Peter Tarabek in his research, so further work was needed to improve the performance of our system. Despite this fact, it is interesting that we managed to reach a 0% FAR value, so no misplaced license plates were marked. However, the accuracy values from the character segmentation and OCR stages looked more promising. A 93% value still could be improved in future work, and a 98% value for the OCR showed that it was close to being completely operative.
​
This project was done in collaboration with a good friend of mine, Marc Mitjans.



Source: unknown.
C++/ROS

UNIVERSITY
ROS C++ Rviz Client Server Control Node Architecture Simulation Real Test Drone
One of the electives of my graduate studies was the course "Introduction to ROS", where we were asked to design and develop a control strategy that led a drone to count with a stable flight from point A to point B. Since we used ROS, we had a node architecture that can be seen in one of the pictures above, in combination with several actions that we communicated to the drone. Finally, our proposed controller was a combination of a bottom controller (for take-off and landing) and a front controller (for the flight).
​
Once again, this project was done in collaboration with two good friends of mine, Albert Suñé and David Luna.
RAPID (C-based language)

PROFESSIONAL
Robotics World's Best ABB Robotics Division Award YuMi Collaborative Robots (Cobots) Kivnon
IOT World Congress IFEMA Logistics Madrid AutoGuided Vehicle (AGV)
Me and my coworker were the first interns in ABB’s unit in Spain that were at programming robots. Our main job was to discover the new ABB’s collaborative robot capabilities by designing the software and developing the tools that allowed YuMi to work side-by-side with a technician and communicate with the outside environment. Some of our solutions were presented in IOT Solutions World Congress in Barcelona and IFEMA Logistics in Madrid, 2016.
​
The principal project I was leading at that time was to design the software that allowed YuMI to work and communicate with an AutoGuided Vehicle (AGV). YuMi worked in station #1 and was conveyed by the AGV to station #2. The project was a success and the new collaboration between ABB and KIVNON emerged!!
​
Finally, our efforts contributed to win the DMRO Spain Global Team Award for being the World's Best ABB Robotics Division!!
​
Psst! If you are curious to see me in the top left video above, I'm in minute 0:28 ;P




MATLAB & Python


PROFESSIONAL
Deep Learning AI Signal Processing Hidden Markov Model (HMM) Healthcare Cardiology
Heart Rate Variability Nonlinear Dynamics Symbolic Dynamics CREB
Before coming to MIT, I decided to begin my training into the cardiology field by facing the problem of studying the nonlinear dynamics of the Heart Rate Variability of patients suffering from idiopathic dilated cardiomyopathy by applying some techniques such as Symbolic Dynamics in combination with a Deep Learning-based technique called Hidden Markov Models (HMM). In the pictures above, it can be observed how the three signals (control group, semi-healthy group and risk group) generally overlap together for each group (green, yellow and red, respectively). However, after running our algorithm, the three signals get shifted one another and their different natures and parameters can be used for classification. We needed further work to be able to corroborate our results due to lack of extensive data. What we observed was that we only needed a few hidden states to be able to classify the signals sufficiently accurate. Additionally, we detected that the number of runs/epochs (i.e., the number of times the algorithm had to be run to achieve a low classification error) was significantly low.