There are games in which AI defeats a person. And there are problems where a person is not considered a competitor at all. Here robots compete only with each other. Building a Rubik’s cube is a typical task.
In November 2016, robot company Infineon Technologies AG set a new world record for the assembly of the cube Rubik: collected it for 0.637 seconds , beating the previous record of 0.89 seconds. But the European engineers were surpassed by students of the Biomimetic Robotics Laboratory of 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. Directly the mechanical part of the task took about 335 milliseconds. The solution of the problem in the program based on min2phase and sending instructions is 45 milliseconds.
Video in real time is clearly not for human eyes. To the imperfect human senses were able to fix the assembly process, and the slow human brain realized what was happening, you want to slow down the video playback at least several dozen times. At a speed of 0.03x from the real, something becomes clear.
The developers are confident that the machine is fully capable of coping faster, but this requires a careful optimization of the timing of the mechanical movements shot on a high-speed camera. On video in 0,03x speed (slowing down by 33 times) it is noticeable that after each displacement the sides of the cube by inertia move back and forth before finally stopping. So, a 90 ° turn in reality ends in about 10 milliseconds, but the robot does the next move in 15 milliseconds. It is in this part that you can significantly optimize the process. But the robot almost doubled the previous world record, and because of optimization errors, the cube broke or the field-effect transistors exploded. So we decided to leave it as it is. But if necessary, students can “cut” the record off another 100 milliseconds.
6 Kollmorgen ServoDisc U9 series engines (four N9M4T with neodymium magnets and two UD9-E – they have the same characteristics and performance). Two of them are taken from the old project of a mechanized hand , the rest are bought cheaply on eBay. To each engine is attached an optical sensor US Digital 2000, also with eBay. Although these sensors provide excessive resolution for this experiment, but they managed to buy at $ 14 per piece – new ones, which is just an excellent price. However, to attach the sensors to the engines had a little tinkering.
6 specially engine drivers with 12-volt power supply. The STM32F303K8 controllers work here. 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 six controllers is carried out by a simple logic board (AND Board), which receives a signal from each engine about the beginning / end of the motion and sends a signal about safe start of work to the next engine in the queue.
- 2 cameras PlayStation Eye shoot three faces each. Video is processed at 187 FPS under Linux with very low latency, compared to conventional webcams. These cameras managed to buy for 7 dollars. True, there was a problem with a clear distinction between red and orange squares, so that students cheated a little – and painted the orange squares with black paint.
- 1 Rubik’s Cube. One of the cheapest .
Cubes are not in vain took cheap, because during the experiment several pieces broke (see video). Engineers write that one of the tricks that everything works well is to provide a really tight compression of all the parts of the cube. If the parts move apart, the outer parts can turn outward when you try to quickly turn the center planes.
To build a well-disassembled cube, it usually takes from 19 to 23 steps. Some solutions are added faster than others (the fastest consists of 21 steps). So if you’re lucky, then the problem will be solved approximately 30 milliseconds faster.