Andrii Nosov

Andrii Nosov

PhD student at National Technical University of Ukraine “Igor Sikorsky Kyiv Polytechnic Institute”. I study how mobile robots can work safely around people: human motion prediction, planning and an independent PLC safety layer.

This is the PLAI 3D model robot, built from code down to the last screw. Pick a subsystem below and it comes apart along its assembly axes. You can rotate the model.

PLAI 3D

PLAI 3D scene: a mobile robot, people in hi-vis vests and the forecast of their motion in a factory work zone
Scenario “Crossing a high-traffic zone”: the robot, eight people and the forecast of their motion.

The digital testbed for my dissertation: a factory hall with a mobile robot, people and an independent safety layer on a programmable logic controller. It compares seven control methods, from reactive to proactive with human motion prediction.

23 400
runs in the full experiment; each one can be reproduced from the same seed
55 692
input combinations of the controller code formally verified, 0 violations
5
scenarios: corridor, overtaking, crossing a zone, intersection with another robot, blind intersection

Runs in the browser, nothing to install. Password protected.

Publications

  • 2026Modelling the dynamics of mobile robots under uncertainty
    Nosov A. O., Korzhyk M. V. Bulletin of the National Technical University “KhPI”. Series: New Solutions in Modern Technologies. No. 2(28), pp. 87–93. DOI 10.20998/2413-4295.2026.02.12

PLC safety layer

A motion planner can make mistakes, freeze or receive bad data. So between it and the drives sits a separate function block on a programmable logic controller: it checks every command and, when needed, slows the robot down or stops it.

  • LanguageStructured Text, IEC 61131-3
  • What it checksheartbeat, command age and range, scanner zone, a dynamic zone with an estimate of human speed
  • Formal verification55,692 combinations of input classes plus CBMC: six safety properties, 0 violations
  • ControllerOpenPLC test passed, 0 violations; a CODESYS V3.5 package is ready

The full code of the block is in PLAI 3D, “How it works” tab.

(* 2. Command age and 3. command range *)
StaleCmd    := CmdAgeMs > CMD_AGE_LIMIT;
(* x = x is false only for NaN *)
CmdValid    := (CmdV = CmdV) AND (CmdW = CmdW);
RangeReject := NOT CmdValid OR (CmdV > V_MAX)
               OR (CmdV < 0.0) OR (ABS(CmdW) > W_MAX);
IF RangeReject THEN
    OutV := 0.0; OutW := 0.0;
ELSE
    OutV := LIMIT(0.0, CmdV, V_MAX);
    OutW := LIMIT(-W_MAX, CmdW, W_MAX);
END_IF;
IF StaleCmd THEN OutV := MIN(OutV, V_DEADLINE); END_IF;
Excerpt of FB_PlaiSafety: a non-numeric or out-of-range command stops the robot, a stale one limits its speed.

Students

Class materials, assignments and useful tools will appear here. If you need something now, email me.

Blog

Notes on robotics, automation and research: what works, what does not, and why.

Go to the blog

About

Andrii Oleksiiovych Nosov is a PhD student at the Department of Automation Hardware and Software, National Technical University of Ukraine “Igor Sikorsky Kyiv Polytechnic Institute”, Kyiv. I research proactive control of autonomous mobile robots that work around people, and an independent safety layer on a programmable logic controller.