Tsvetan Zhivkov Robot enthusiast and tinkerer

About Me

My name is Tsvetan Zhivkov. I am a postdoctoral researcher with Lincoln Agri-Robotics (LAR) at the University of Lincoln (UoL). My staff directory page. I started this position immediately after my PhD defense in May 2020.

My postdoctoral role is exclusively on research and development of agricultural-robotics. I am working on communication issues in agricultural-robotics along other exciting projects. I was lucky enough to acquire a certified commercial drone pilot license to help other projects, by gathering images for spatial and temporal crop growth, field mapping and analysis for crop care, etc.

Postgraduate

I received my PhD degree from King’s College London on October 2020. I was part of the Interaction Lab group. The group did research on a wide variety of topics (e.g. human-robot interaction, task allocation mechanisms, multi-robot communication and swarm robotics). My supervisor was Professor Elizabeth Sklar, she is a great mentor and scholar!

My PhD research focused on multi-robot system design and communication. I investigated how network quality can affect both explicit and implicit communication. More often in multi-robot domains, communication is imperative and in some operational environments it’s not possible to maintain/deploy network infrastructure. In these cases, robots with even minimal network capabilities can dynamically create an ad-hoc network infrastructure to continue communicating and performing tasks regardless of what happens to the remote (server/operator). My research looked at multi-robot communication and message-passing as a mission critical component. Creating redundancy of “critical” information on a local and global scale. Therefore even if a single robot communicates with the remote operator, complete knowledge of the mission is established.

Undergraduate

I received my MEng in Computer Science and Electronic Engineering from the University of Liverpool. In my final year at the university, I was part of a group project titled “Robot Object Search and Retrieval Team”. I was tasked with designing a human-computer interaction (HCI) user interface that would receive messages from a python server and translate them on screen to something meaningful. This allowed users to understand and interact with a robot team that was performing pre-given tasks.

In the summer between my third and fourth year I worked for the university as a vocational worker/researcher developing an iOS application. I was tasked with creating an intuitive text and image recording app, which would store data locally on its user and allow the data to be offloaded later to a server. The app was used in a multi-agency emergency response exercise (JESIP) in accordance with data protection acts (of that time) and with complete knowledge and acceptance of the end user.

Academic

My Google scholar.

To learn more about me please click/tap the link in top left corner!

Browser support

Please note that this website is built using Lanyon, which supports all major browsers but it is only compatible with Internet Explorer 9 and above!

Skills

For a formal and more complete review of my skills and experience please refer to my CV. This section is split into programming languages, software frameworks and operating systems that I am familiar with. I have split my level of expertise in 4 stages:

  • Beginner – I understand the fundamentals and have previously used/performed basic operations.
  • Intermediate – I understand some advanced concepts and feel comfortable using/performing daily tasks, while learning and advancing my knowledge.
  • Advanced – I understand advanced concepts, I can teach/assist others in the topic and I can work on novel concepts.
  • Expert – I understand a wide variaty of advanced concepts, I can teach others in the topic and I can work on novel concepts.

Programming Languages

Python (Expert)

I am self-taught in Python 2.7.X (since approx. 2015). After I finished my PhD (2020), I made a permanent switch to Python 3. I use Python daily for data visualisation, analysis and code development. Python is forever evolving at an unprecedented rate, even more than other popular programming languages. Therefore, it would be difficult for anyone to claim that they are truly an expert. I want to make it clear that I do not know everything there is to know about Python, however with the vast knowledge I do have of Python and the many cutting edge libraries I have used (and some that I have written), I believe that I am as close as one can be to an Expert.

C++ (Advanced)

I was taught C++ at the University of Liverpool and further developed my skills in my own time. C++ is my original daily programming language of choice. However, I do not use it as frequently as I used to and therefore I am not as up-to-date as I used to be with the state and advancements of the language. Moreover, I feel comfortable using and advancing in C++ if my job role requires it.

MATLAB (Advanced)

I was taught the fundamentals of MATLAB at the University of Liverpool. Furthermore, I specifically researched MATLAB application development, which I used in my 2nd year university project, and I taught a MATLAB based (Computer Vision) module at King’s College London University. I feel comfortable advancing my knowledge and teaching specific concepts in MATLAB.

JAVA (Intermediate)

I was taught JAVA at the University of Liverpool and I also taught it during my PhD at King’s College London University as a teaching assitant. I feel comfortable teaching the fundamentals and performing advanced programming. However, I do not use it frequently and I do not keep up-to-date with the state of the language.

Objective-C (Intermediate)

I am self-taught in Objective-C, mainly during a summer internship at the University of Liverpool. I have a good grasp of the fundamentals and some specific advanced programming techniques.

MYSQL (Intermediate)

I was taught MySQL and database techniques during my undergraduate degree. Moreover, I taught a databases module, that involved MySQL and SQLite, at King’s College London University.

JavaScript/HTML (Beginner)

Self-taught. I have good fundamental knowledge and can perform basic scripting.

Swift (Beginner)

Self-taught. As a tech hobbyist, I occasionally write basic iOS apps to test specific functions on the iPhone and Apple watch.

Software Frameworks

ROS (Expert)

The Robot Operating System is an open source framework that contains a collection of tools and packages that I learned to use on a daily bases for my PhD research. ROS is invaluable for the development and prototyping of robotic systems software.

Latex (Expert)

My choice of typesetting/word-processing tool for producing high-quality scientific research papers.

Git (Advanced/Expert)

As my programming projects’ complexity and size grew I choose to use version-control. Git was an obvious choice, as one of the industry standards when it comes to software development, engineering and management tool.

Operating Systems

Linux - Ubuntu (Expert)

The operating system I use daily for work and research. I have excellent understanding of the desktop environment, file system and terminal power user tools. I feel comfortable customising and expanding the OS to my personal requirements.

macOS X (Advanced)

The primary OS I use for writing my research documents and presentations. I have good understanding of the file system and knowledge of certain terminal power user tools. I feel comfortable customisng and expanding the OS to my personal requirements.

Windows 8/10 (Advanced)

The standard OS I use for occasional work and research that require specific GPU compute tasks, which are unsupported by Linux. I have good understanding of the file system and knowledge of certain command-line power user tools.

Debian (Intermediate)

Debian is a different flavour of Linux compared to Ubuntu. I have previously setup debian for a variaty of Raspberry Pi (mini-computer) models. My main use-case for debian is hobby projects.