Tomáš Kot

Programmer and researcher in the field of robotics

About me

Education

Current employment

Professional interests and skills

Projects

RoboEngine

RoboEngine is a framework used by the Department of Robotics for visualization and control applications. It is not a full-fledged engine with a graphical scene editor and scripting functions (such as Unity or Unreal Engine), but rather a simple framework that can be customized to meet specific needs.

Basic features

  • C++, Direct3D 11, Windows-only,
  • Windows messages, custom event system,
  • scenes, Entity Component System (ECS).
  • resource management (textures, models),
  • flexible materials and shaders,
  • immediate GUI,
  • support for GPU calculations (Compute Shaders),
  • Physically-Based Rendering (PBR),
  • High Dynamic Range (HDR), tonemapping, bloom,
  • shadow mapping,
  • post-process effect pipeline,
  • particle systems.
RoboEngine screenshot

Dynamic obstacle avoidance for collaborative robots

A research project focused on developing, implementing, and testing an algorithm for dynamic obstacle avoidance by a collaborative robot.

Basic info

  • the algorithm is based on the concept of elastic bands,
  • the trajectory is computed in real-time,
  • the trajectory is optimized for short length,
  • implemented in C++ using the RoboEngine framework,
  • obstacle data collected from RGB-D cameras and represented as voxels,
  • tested with a real UR3e robot.
Dynamic obstacle avoidance simulation screenshot

RoboSlicer

A custom slicer developed as part of a project focused on the development of a nozzle with a variable filament diameter. It is primarily used for 3D printing using a robot.

Basic features

  • implemented in C++ using the RoboEngine framework,
  • loading STL model files,
  • basic slicing features (layers, perimeters, infill),
  • advanced slicing features (variable filament diameter),
  • full 3D visualization of the slicing process and printing,
  • printing using UR3e robot – real-time robot control,
  • special mode – printing on curved surfaces,
  • special mode – infill generator based on stress analysis.
RoboSlicer used for 3D printing

Robotic workplace optimizations

A series of research objectives focused on optimizing robotic workstations.

Scenarios

  • finding all valid locations for a robot in a workplace,
  • evaluating the locations based on various criteria,
  • finding the optimal locations of a trajectory relative to the robot,
  • synthesizing optimal custom kinematic structure of a robot for a given task,
  • selecting the optimal existing robot for a given task.

Features

  • implemented in C++ using the RoboEngine framework,
  • kinematic simulation, dynamic simulation,
  • inverse kinematics solvers,
  • trajectory importing and editing,
  • robot structure modeling,
  • workspace definition and editing,
  • point cloud import and processing,
  • optimization algorithms (PSO),
  • brute-force grid search,
  • performance optimizations, multithreading.
Valid locations for a robot in a workplace

Localization, navigation and map building

Preparing interactive visual teaching materials for lectures – path finding algorithms.

Demonstrated algorithms

  • Breath-first search (BFS), Depth-first search (DFS),
  • Dijkstra, A*,
  • Rapidly-exploring Random Tree (RRT, RRT*), in 2D and 3D,
  • Potential field.

Features

  • implemented in C++ using the RoboEngine framework,
  • obstacle editor (2D or 3D),
  • algorithm configuration,
  • path visualization,
  • slow-down animation, step-by-step animation,
RRT path planning demonstration screenshot