Sirvides Autor "Kurm, Edgar" järgi
Näitamisel1 - 1 1-st
Tulemused lehekülje kohta
Sorteerimise valikud
Nimetus Avatud juurdepääs Pythoni kasutamine MIR robotite automatiseerimiseks(Tallinna Tehnikakõrgkool, 2023-05-12) Kurm, Edgar; Lõhmus, Villu; Metsis, KristjanThe problem i was solving is that DemekCNC client wanted to put MIR robot at charging station at exact time automatically at the time when they all are going for lunch and charge during this time. Robots default software don’t have this function. MIR manufacturer offers their solution, MIR Fleet, which adds mission scheduling feature to the MIR as well as a lot of other features. The problem of MIR Fleet for the client is its price, which is high and that they don’t need other extra features for their robot. After this time, they wanted to put their regular mission back. My suggested solution for this problem was to use MIR robots own REST API and combining it with Python, create code that will be able to add missions to the robot and take them out of the robot. I have added 2 more features to my code, except adding and deleting missions. The first one is control of the mission cycle. Which is used to check if robot have done mission cycle to the end or not. This function is needed because clients regular mission is looped, which means that robot repeats same movements over and over again. Because of that, it is not possible to simply add charging mission to the robots queue, because every time mission comes to the mir robots queue it is going to the bottom of the queue and as we know that clients regular mission is looped, it will never end and charging mission will never execute. So the only way to add charging mission to the mir robots queue is to firstly remove all missions that are already in queue and only then add charging mission. However, if I remove regular mission in the middle of mission cycle there could be such situation, when robot comes to the charging station with the product on top of it. This situation has risk to damage the product. Because after charging during launch time robot will come back to regular mission and start his movements from the first action. So in this situation, if robot haven’t delivered product to the destination area before going at charging station and will start mission from the beginning, there is high risk to get new product on the top of the product that remained on the robot, which could lead to product damage. To prevent this, I have function mis_mes that will firstly check if mission cycle have been finished and only after that, pass code to the removing and adding mission part. And the second one is mission filtering using mission names. By default, robot can make operations with mission only using specific mission id, which looks this way: 96adef52-cc93-11ed-bf3d-94c691a73491. It is not very easy to find this id, so I decided to add opportunity to make operations with mission using mission names, which are easy to find with MIR robots software. Summarizing everything I have done, can say that I have developed working solution for the problem that I received form the company and it has opportunity for future growth. For example right this code is used to solve problem with charging mission scheduling, but it can be used for adding other functionalities as well. Video with the working code as well as full code and code scheme you can find in attachments.