The record-breaking robot developed at the laboratory of biomimetic robotics at the Massachusetts Institute of Technology
There are games in which the AI ​​beats the person. And there are tasks where a person is not considered as a competitor at all. Here robots compete only with each other. Building a Rubik's Cube is a typical such task.
In November 2016, a robot from Infineon Technologies AG set a new world record for assembling the Rubik's Cube: it collected it in 0.637 seconds , breaking the previous record of 0.89 seconds. But European engineers were surpassed by students from the laboratory of biomimetic robotics (Biomimetic Robotics Lab) at the Massachusetts Institute of Technology. Their robot coped with the task for an incredible 0.38 seconds . This is a “dirty” time, which includes pressing the “Start” key, recognizing the image and calculating the sequence of actions. The actual mechanical part of the task took about 335 milliseconds. Solution of the problem in the program based on min2phase and sending instructions - 45 milliseconds. Real-time video is clearly not made for human eyes. In order for the imperfect organs of human senses to fix the assembly process, and the slow human brain is aware of what is happening, you need to slow down the video playback at least several dozen times. At a speed of 0.03x from the real it becomes something clear. ')
The developers are confident that the car is quite capable of coping faster, but this requires careful optimization of the timing of the mechanical movements captured on a high-speed camera. On the video in 0.03 speed (slowing down 33 times) it is noticeable that after each movement of the face of the cube, it moves back and forth inertia before finally stopping. So, a 90 ° turn in reality ends in about 10 milliseconds, but the robot makes the next movement after 15 milliseconds. It is in this part that the process can be significantly optimized. But the robot almost doubled the previous world record anyway, and because of optimization errors, the cube broke or field-effect transistors exploded. So we decided to leave everything as it is. But if necessary, students can “cut off” another 100 milliseconds from the record.
The design used the following parts:
6 Kollmorgen ServoDisc U9 series engines (four N9M4T with neodymium magnets and two UD9-E - they have the same performance and performance). Two of them were taken from the old project of a mechanized hand , the rest were bought on eBay for the cheapest. An optical sensor US Digital 2000 is attached to each engine, also with eBay. Although these sensors provide redundant resolution for this experiment, they were able to buy them for $ 14 apiece - new ones, which is just a great price. True, to attach the sensors to the engines had to tinker a bit.
6 specially designed motor drivers with 12-volt power. Here work controllers STM32F303K8. The boards are assembled on 100-volt transistors. But for some reason, at 60 volts one of them exploded twice when the cube was stuck. Firmware for controllers .
Synchronization / coordination of movements between the six controllers provides a simple logic board (AND Board), which receives a signal from each engine about the start / end of movement and sends a signal about the safe start of work to the next engine in the queue.
2 cameras PlayStation Eye remove three faces each. The video is processed at 187 FPS under Linux with very low latency, compared to regular webcams. These cameras were able to buy for $ 7. True, there was a problem with a clear distinction between the red and orange squares, so the students cheated a little - and painted the orange squares with black paint.
It was not in vain that the cubes took cheap ones, because during the experiment several pieces broke (see video). Engineers write that one of the tricks to make everything work well is to ensure a truly tight compression of all parts of the cube. If parts move away from each other, then the outer parts may turn outwards when you try to quickly rotate the central planes.
To assemble a well-disassembled cube, it usually takes from 19 to 23 steps. Some solutions add up faster than others (the fastest consists of 21 steps). So if you're lucky, the problem will be solved approximately 30 milliseconds faster.