Konstantin Tsaturyan

Using webcam control system of a KasperskyOS robot

The project is one of the winners of the MAI hackathon in 2022

1. Project goal

  • Implement remote connection work with the control program over TCP protocol in one local environment
  • Implement the functionality with engine control via GPIO ports
  • Implement the functionality of recognizing the robot and its targets
  • Create an algorithm for controlling the robot through an external camera
  • Precise move along predefined path (rectangle)
  • Use Case:

AlphaBot should follow predefined path (path consists of several line segments) and stop after that.

2. Project results

System architecture

Server folder — image recognition and bot control server implementation

Client folder — KasperskyOS based AlphaBot control program implementation

Repository structure:

Recognition and control software
  • Software repository is https://github.com/fanglores/KasperskyOS_Robot/tree/main/source_files/linux_server. It uses Linux, python, opencv and provides following features:
    • Finding contrasting stickers — implemented (selection of bias labels)
    • Determination of 2D sticker coordinates — implemented (homography)
    • Entering a route — not implemented
    • Formation of control commands for driving AlphaBot along the route — not implemented
    • Transfer of commands from the management server to AlphaBot via TCP — implemented
  • The program of control and recognition using a neural network (https://github.com/fanglores/KasperskyOS_Robot/tree/main/source_files/server_GUI) uses OpenCV 4.6, Tensorflow-CPU 2.9.1, Socket, Numpy, Sympy, Pydantic, Flask 2.0. This program provides:
    • AlphaBot recognition — implemented (neural network)
    • Finding contrasting stickers — implemented (neural network)
    • Definition of 2D coordinates of stickers — implemented (homography)
    • Entering a route — implemented
    • Formation of control commands for driving AlphaBot along the route — implemented
    • Transfer of commands from the management server to AlphaBot via TCP — not tested
    • Debugging and integration testing — not implemented
  • Alphabot management program for Raspbery PI 4 (https://github.com/fanglores/KasperskyOS_Robot/tree/main/source_files/KasperskyOS_client) uses KasperskyOS, C++. This program provides
    • Issuing control commands (forward, backward, stop, left, right) to AlphaBot motors by GPIO — implemented (implemented PWM functional for motor control)
    • Driving along a given route (rectangle) — implemented
    • Receiving commands over the network — not tested
    • Debugging and integration testing — not implemented

3. Solution operability checking

  • Problems in the project
    • Tasks involving GPIO and network sharing in Kaspersky are not debugged. Caused by errors when writing PSL policies.
  • Final tests in the project:
    • Travel along a given fixed route (rectangle) — completed
    • Driving along the route by commands from the recognition server — not completed

4. Supplementary project information

  • В рамках XLVIII Международной молодежной научной конференции «Гагаринские чтения — 2022» (https://gagarin.mai.ru/files/2022/abstracts2022.pdf) Цатурьян К. А. (автор проекта), Тимошенко А. В., Кострицына А. И. сделали доклад «Разработка прототипа системы управления автономным роботом на базе KasperskyOS», который занял 2-е место в секции «Робототехника» и вошел в сборник тезисов работ конференции: XLVIII Гагаринские чтения 2022. — М.: Издательство «Перо», 2022. — Мб. [Электронное издание]. ISBN 978-5-00204-326-2