Vladimir Kirilenko Software Developer

About

I’m interested in any projects related to programming. Especially the projects connected with programming of robots. I took place in many competitions both Russian and international level as a member of CTen and AlDragon teams. I specialize in programming of microcontrollers and computer vision. I prefer to use C++ and Python, but sometimes I create projects by Processing, HTML + JS and Java for Android when it's necessary.

Platforms

Raspberry Pi Arduino

Code

Arduino OpenCV

Tools

OpenCV
Fritzing

Featured Projects

Low-field NMR software

Kivi.NMR: Low-field NMR software

  • C++
  • NumPy
  • ImGUI
  • Armadillo
  • MySQL

  • Numerical optimization

[Commertial reasearch project] The project presents a software package and some necessary algorithms developed for the processing and analysis of spectra obtained with a low-field NMR spectrometer. Unlike the widely used high-field NMR spectroscopy, the low-field approach has only recently been theoretically developed and is currently neither technically worked up nor present on the market. The main drawback of the high-field approach is the incredibly high cost of such instruments, reaching up to tens of millions of dollars. This makes it impossible to be used by small and medium-sized companies, forcing them to turn to third-party laboratories. Nonetheless, development of commercial low-field spectrometers has recently begun. The development of low-field spectroscopy approach will complement the market with a much more affordable instrument, even though with lower resolution, but still enough for the majority of business cases.

portable nmr device

Portable NMR Device

  • Python
  • NumPy
  • SciPy
  • Plotly

  • STM32
  • Data compression
  • Networking

[Reasearch project, freelance] The main task was to develop software for a portable NMR device based on STM32 board. In addition, it was necessary to develop a data processor (spectrum, phase correction, spectral line search and calculation of its integral sum). There was also developed a user interface both for the built-in display of the device and for the data processor, there was designed a communication system linking several devices in a single network based on the hub. The device is intended for experimental confirmation of a theory of chemical water properties.

Check it out
wastebot

WasteBot

  • Python
  • OpenCV
  • Keras
  • PyTorch
  • SciPy

[Reasearch project, ongoing] This project presents an autonomous system that allows you to classify solid household waste into four categories: metal, plastic, glass and paper. The main idea of the project is to perform the classification process only with a visual representation of the waste using a usual web-camera. This project is now in developing. Despite the fact that the project is in developing now, it reaches ~90.3% accuracy according to the bACC metrics. This project is not an OpenSource one, so the check out button will open a youtube pre-demonstration video.

UPDATE: This project won a number of awards at the Baltic Science and Engineering Fair 2020 (1st place, business award) and was one of 6 representatives of Russia at Intel ISEF 2020 in California.

Check it out
wastebot

ICCET Manipulatir

  • Python
  • OpenCV
  • TensroFlow
  • SciPy

[Hackathon] ICCET is an international annual team hackathon. It includes two stages. The first one is a correspondence qualifying stage. Each team should select one of an introducted sections, develop own device according to the selected section task and record a video-presentation. Top-8 best teams go to the finals. The final round includes an additional task for the teams which should be done in 3 days. My team, KIVICode has chosen the task to develop a manipulator that should be able to automaticaly sort 8 deffernt types of objects (i.e. glass bottle, soft toy, banknotes and so on). I've developed a computer vision system based on SVM classification method that allowed us to win grand prix and 1.000.000₽ (about 16.000$).

meibomian glands

Meibomian Glands Detection

  • Python
  • OpenCV
  • Matplotlib
  • NumPy

[Freelance] I wrote a python code snippet for the needs of the client’s clinic. The snippet receives a photo of the meibomian glands as an input and returns the number of individual glands and the ratio of the area of the eyelid to the total area of ​​the glands. To solve the task I used python and such libs as OpenCV and Matplotlib. To highlight the target area was used OpenCV. To calculate the binary mask for the glands in the conditions of poor lighting and low-contrast input image, I used Matplotlib and line by line scanning of the ROI and building the mask from the peak values ​​of the resulting graphs.

Check it out
robot

BottleBot IEYI

  • Python
  • OpenCV
  • Libfreenect
  • Deep Neural Network
  • Arduino

[Competition] That's the software for the robot for the international competition IEYI 2018 that was in the Bali. The main task of the robot was an autonomous transportation of heavy objects including bottles for water coolers and vending machines. For this, I used the Kinect sensor and python lib libfreenect because it can give me the depth map of the environment. For the objects detection and recognition I used the deep nueral network. As the core of the system I used my Raspberry Pi 3B+ and Arduino Mega for control of actuating units. This project took the first place.

Check it out
robot

EuroBot 2019

  • Python
  • OpenCV
  • Arduino
  • Inverse Kinematics

[Competition] I wrote the code for our robots for the international competition EuroBot 2019. According to the competition regulations for the Proffecional section, one of the robots is bigger and the main one, and the other one is smaller, and it helps, but both are autonomous. The larger one had an omni-mecanum wheel and a 3-section manipulator for capturing and manipulating washers, but it was “blind” and used only a hard code and a few digital sensors for easy orientation. I used inverse kinematics to model the omni-mecanum wheels and calculate the speed based on a given total speed and angle alpha. The smaller one had more intelligence because he used the camera and my Raspberry Pi. On the Raspberry Pi, there was a python script that, using OpenCV, could autonomously find pucks on the field and capture them using a 5-chained manipulator.

Check it out