@startuml 'https://plantuml.com/sequence-diagram actor User as usr participant can_message as can control kartculator as kc queue XF as xf entity Drive as drive entity Steering as steering usr -\ xf : set message "move" xf -> can : new value on joystick == If X axis change value == can -> kc : calculate new position kc -> can : build message can -> steering : set new position == If Y axis change value == can -> kc : calculate new torque kc -> can : build message can -> xf : set message "torque" xf -> drive : set new torque @enduml