Using Mycroft to drive motors

Hey Mycroft devs and users,

I have a small raspi project I’m working on and I am trying to get mycroft to be able to drive my motors once I tell it to.

So, I setup a skill with the following code:
from mycroft import MycroftSkill, intent_file_handler
#from gpiozero import DigitalInputDevice, DigitalOutputDevice, Robot, Motor
#from time import sleep, perf_counter
from .jarvismotors import MotorSystem

class MotorControl(MycroftSkill):
def init(self):
MycroftSkill.init(self)
self.r = MotorSystem((6, 5, 12), 4, 17, (19, 26, 13), 27, 22, 25)

@intent_file_handler('forward.intent')
def handle_forward(self, message):
    self.speak_dialog('forward')
    self.r.forward()
    sleep(2)
    r.stop()
    
def stop(self):
    pass

def create_skill():
return MotorControl()

I have a separate file I cannot share with the code I wrote for my motors. There, I have calculators that calculate the RPM of the motors and automatically adjust them using threading.

I have noticed that threading behaves in odd ways whenever I ask mycroft to drive the motors.

Sometimes mycroft drives the motors for 2 seconds, sometimes the thread does not finish execution even though the moment r.stop() is called, the thread is terminated (from .jarvismotors script).

It seems to me I do not fully understand making skills in Mycroft. If anyone can help I would really appreciate it

Very unfortunate that nobody was able to help.

@thehamzan6 without the code it is hard to help.