A double-arm Rubik's cube robot capable of fast linkage operation and a method for quickly adjusting a Rubik's cube
By optimizing the mechanical structure and control method of the dual-arm Rubik's Cube robot, rapid linkage operation was achieved, solving the problems of unstable clamping and slow action execution, improving the solving speed and success rate, simplifying the mechanical structure and reducing costs.
Patent Information
- Application Number
- CN202510867339.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-26
- Publication Date
- 2026-02-03
- Estimated Expiration
- 2045-06-26
AI Technical Summary
Existing dual-arm Rubik's Cube robots are greatly affected by air pressure fluctuations in gripping stability, have complex mechanical structures, slow motion execution speeds, and complex and lengthy control methods, which affect the success rate and speed of solving the cube.
The dual-arm Rubik's Cube robot design, which adopts rapid linkage operation, includes a base, gantry, robotic arm assembly, lighting assembly, and camera. It uses a multi-threaded Python program written in PyQT5 for real-time solving, uses MOS modules to replace relays for level conversion, optimizes the timing planning of robotic arm movements, and combines solenoid valves to control the rapid opening and closing of cylinders.
The robotic arm's motion response speed was increased by more than 3 times, the success rate was increased from 72% to 98%, the total restoration time was shortened by 1.4 seconds, the mechanical structure was simplified, the manufacturing cost was reduced, and the system reliability was improved.
Smart Images

Figure CN120422202B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a double-arm Rubik's cube robot, in particular to a double-arm Rubik's cube robot with rapid linkage operation and a Rubik's cube restoration rapid adjustment method, and belongs to the technical field of double-arm Rubik's cube robots. BACKGROUND
[0002] The existing double-arm Rubik's cube robot adopts pneumatic fingers for clamping. Although the pneumatic system has the advantages of simple structure and rapid action, the clamping stability of the pneumatic fingers is greatly affected by the air pressure fluctuation. With the decrease of the air pressure, the clamping power changes greatly, resulting in great change of the clamping force, especially in the later steps of the Rubik's cube restoration, the clamping instability problem is particularly prominent, which affects the success rate and speed of the restoration.
[0003] The mechanical structure of the existing double-arm Rubik's cube robot is relatively complex, and a large amount of supporting structure is needed to maintain the overall mechanical stability during the process of solving the Rubik's cube. Such complex structure not only increases the manufacturing cost, but also reduces the reliability of the system.
[0004] The existing double-arm Rubik's cube robot has a long reaction time and slow action execution speed during the process of solving the Rubik's cube. For example, the traditional two-arm two-finger type Rubik's cube robot has about twice as many actions as a four-arm Rubik's cube robot and about four times as many actions as a six-arm Rubik's cube robot in a single Rubik's cube solving process, resulting in slow Rubik's cube solving speed and low success rate. At the same time, the double-arm Rubik's cube robot lacks efficient time planning when executing actions, resulting in insufficient smoothness between actions and wasting a lot of time.
[0005] For example, during the process of opening and closing the air claw and driving the Rubik's cube, reasonable time planning is not performed, resulting in a long total time.
[0006] The control method of the existing double-arm Rubik's cube robot is complex and lengthy, and has poor compatibility with the mechanical structure.
[0007] For example, some control methods require multiple manual interventions, such as confirming the correctness of the color block information, which is a complex process, resulting in long Rubik's cube solving time and low efficiency. Therefore, a double-arm Rubik's cube robot with rapid linkage operation and a Rubik's cube restoration rapid adjustment method are designed to solve the above problems. SUMMARY
[0008] The main purpose of the present application is to provide a double-arm Rubik's cube robot with rapid linkage operation and a Rubik's cube restoration rapid adjustment method.
[0009] The purpose of the present application can be achieved by adopting the following technical scheme:
[0010] A double-arm Rubik's cube robot with rapid linkage operation comprises a base, and a gantry group is installed on the base;
[0011] A lighting unit is installed on the gantry frame to illuminate the Rubik's Cube;
[0012] Two sets of robotic arms for adjusting the Rubik's Cube are installed at the bottom of the gantry frame.
[0013] Preferably, the gantry assembly includes a gantry and a base frame, with the base frame mounted on top of the base and the gantry mounted on both sides of the base frame via side members.
[0014] Preferably, the lighting assembly includes an illumination ring and a camera;
[0015] Cameras are installed at the top center of the base frame, as well as on both sides and the top of the gantry frame;
[0016] Lighting rings are located on both sides and top of the gantry frame, with the camera as the center.
[0017] Preferably, the robotic arm assembly includes a stepper motor, a coupling, a transmission frame, a clamping adjustment component and a pneumatic gripper, and a rotating connecting plate;
[0018] Stepper motors are installed on both sides of the top of the base frame. The output end of the stepper motor is connected to a rotating connecting plate via a coupling. A clamping adjustment component is installed on the outer end of the rotating connecting plate, and the output end of the clamping adjustment component is equipped with a pneumatic gripper that is adjusted by the clamping adjustment component.
[0019] Preferably, a transmission frame is mounted on the outer end of the stepper motor, the output end of the stepper motor passes through the transmission frame and is connected to the coupling, and the coupling is located inside the transmission frame.
[0020] The status of the robotic arm assembly and the mechanical steps of the gripper opening, closing, twisting, rotating, and idling are encoded into string information and transmitted to the lower-level machine for execution via serial port. The left-hand operation corresponds to the lowercase letter, and the right-hand operation corresponds to the uppercase letter. The microcontroller stops the calculation after receiving the character 'f'.
[0021] A multi-threaded Python program was written using PyQT5, integrating camera control, Rubik's Cube recognition, solving, and motor restoration functions. It displays the mechanical steps of solving, recognition time, solving time, mechanical execution time, and total restoration time in real time.
[0022] Using a MOS module as a 24V level conversion element, the MOS module is controlled by outputting a 3.3V / 0V voltage through the GPIO port of the STM32 to achieve 24V / 0V level conversion, with a level conversion speed of 35μs;
[0023] When the slide cylinder opens to an angle that does not touch the Rubik's Cube, it simultaneously performs a 90-degree free spin and initiates the closing action in advance;
[0024] When arm 1 is not fully open, arm 2 performs a 90-degree or 180-degree rotation, and initiates the closing action of arm 1 before the rotation is completed;
[0025] The total time is reduced by overlapping the execution of each action in the order of opening, rotating, idling, and closing. For example, in the combination of arm 1 opening, arm 2 rotating 180 degrees, arm 1 idling 90 degrees, and arm 1 closing, each action is executed alternately according to the delay function.
[0026] A 5V11006B050 two-position five-way solenoid valve and a 5V130E06B050 three-position five-way solenoid valve are connected in series. The air source is connected to the P terminal of the three-position five-way solenoid valve, and its A terminal is connected to the P terminal of the two-position five-way solenoid valve. The A and B terminals of the two-position five-way solenoid valve are connected to the two ends of the slide cylinder. The cylinder clamping, opening and relaxing states are switched by controlling the solenoid valve to turn on and off through STM32.
[0027] Motor debugging program: Write a host computer debugging program to trigger the motor to execute corresponding mechanical steps via keyboard keys.
[0028] Preferably, in the optimization of the robotic arm's motion time planning:
[0029] The time taken for the single-arm opening-90-degree free spin-closing combination steps was reduced by 69.7ms;
[0030] The time taken for the combined steps of arm 1 opening - arm 2 rotating 180 degrees - arm 1 closing has been reduced by 104.1ms;
[0031] The time taken for the combined steps of opening arm 1, rotating arm 2 90 degrees, rotating arm 1 idling 90 degrees, and closing arm 1 was reduced by 129.3ms.
[0032] Preferably, in the solenoid valve combination control: the two-position five-way solenoid valve operates at a frequency of 200ms / time, realizing the rapid opening / closing of the cylinder;
[0033] When the three-position five-way solenoid valve is de-energized, the cylinder is in a relaxed state, which makes it easier to place and remove the Rubik's Cube, reducing the total operation time by 2 seconds.
[0034] Beneficial technical effects of the present invention:
[0035] This invention provides a dual-arm Rubik's Cube robot with rapid coordinated operation and a method for quickly adjusting the solution. By dividing the robotic arm assembly into three modes (normal state, 90° rotation on one side, and 90° rotation on the opposite side) and combining this with a mechanical step coding system (left-hand lowercase / right-hand uppercase letters mapping to gripper movements), precise coordination of the two arms' movements is achieved. Testing showed that a single 90° rotation takes 41.2 ms, and a 180° rotation takes 199.1 ms, representing a response speed more than three times faster than traditional pneumatic finger gripping solutions. Furthermore, the predefined three states effectively prevent collisions and interference during the solution process, increasing the Rubik's Cube solving success rate from 72% in traditional methods to 98%.
[0036] By planning the timing of multiple action combinations (such as the "open-free spin-close" combination), the time consumed in a single step is reduced by 69.7ms, and the "arm 1 open - arm 2 rotate 180 degrees - arm 1 close" combination is reduced by 104.1ms. The average time consumed per action is reduced by 34.7ms, and the total recovery time is shortened by 1.4s (the traditional solution has an average of about 64 recovery steps, and the total time is now controlled within 5s).
[0037] By replacing relays with MOS modules, the level switching speed is increased from 5ms to 35μs. The slide cylinder can be fully opened in just 65ms and closed in 130ms, which is 38% and 27% shorter than traditional solutions, respectively. This reduces the time for the robotic arm to rotate 90° to a mere 39.7ms, achieving an industry-leading level. Attached Figure Description
[0038] Figure 1 This is a first-view perspective three-dimensional structural diagram of a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a rapid adjustment method for solving a Rubik's Cube according to the present invention.
[0039] Figure 2 This is a second-view perspective three-dimensional structural diagram of a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a rapid adjustment method for solving a Rubik's Cube according to the present invention.
[0040] Figure 3 This is a third-person perspective three-dimensional structural diagram of a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a rapid adjustment method for solving a Rubik's Cube according to the present invention.
[0041] Figure 4 This is a first-view perspective three-dimensional structural diagram of the robotic arm in a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a rapid adjustment method for solving a Rubik's Cube according to the present invention.
[0042] Figure 5This is a second-view perspective three-dimensional structural diagram of the robotic arm in a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a rapid adjustment method for solving a Rubik's Cube according to the present invention.
[0043] In the diagram: 1-base, 2-lighting ring, 3-gantry frame, 4-camera, 5-pneumatic gripper, 6-clamping adjustment component, 7-transmission frame, 8-coupling, 9-stepper motor, 10-base frame, 11-side component, 12-rubik's cube, 13-rotating connecting plate. Detailed Implementation
[0044] To enable those skilled in the art to understand the technical solution of the present invention more clearly, the present invention will be further described in detail below with reference to the embodiments and accompanying drawings, but the embodiments of the present invention are not limited thereto.
[0045] Detailed implementation: Define the mechanical steps of the dual-arm Rubik's Cube 12 robot. For the dual-arm, two-finger Rubik's Cube 12 robot, the states of the robotic arm assembly are divided into three types:
[0046] In normal operation, one side of the robotic arm group remains unchanged while the other side rotates 90°, and the other side of the robotic arm group rotates 90° while the other side remains unchanged.
[0047] The mechanical operations are as follows: pneumatic gripper open, pneumatic gripper close, rotate 90°, rotate 180°, rotate 90° with belt, rotate 180° with belt, and idle 90°.
[0048] The lowercase letters correspond to left-hand operations (screwing or rotating the Rubik's Cube 12), and the uppercase letters correspond to right-hand operations (screwing or rotating the Rubik's Cube 12). The microcontroller stops working and the solution is complete upon receiving the character "f". By encoding these three states and 34 mechanical steps separately, the mechanical transformation information transmitted from the network port is converted into string information and sent to the lower-level machine for execution via serial port.
[0049] The beneficial effects of this embodiment are: converting mechanical steps into letters facilitates information transmission between the upper and lower computers; distinguishing between the three mechanical states prevents collisions and interference between the Rubik's Cube robot during the solving process; and considering all possible step scenarios lays the foundation for solving the dual-arm Rubik's Cube robot.
[0050] Detailed Implementation: Using PYQT5, a multi-threaded Python program was written to create a host computer for solving the dual-arm Rubik's Cube robot. This host computer has three buttons: Open Camera 4, Start Recognition, and Exit Program. When the host computer program is running, clicking "Open Camera 4" activates all four cameras (4 in total) on the computer screen; clicking "Start Recognition" executes the visual recognition, Rubik's Cube 12 solution, and motor restoration steps; after the solution is complete, clicking "Close Program" exits the Rubik's Cube 12 robot solution program. The host computer interface also displays: mechanical steps, recognition time, solution time, mechanical (motor restoration) time, and final (total) solution time.
[0051] The beneficial effects of this embodiment are: determining whether all cameras 4 are operating normally; one-click start to reduce unnecessary wasted time; and the ability to clearly display the key parameters of the dual-arm Rubik's Cube 12 robot's restoration process, such as the mechanical steps, recognition time, solution time, mechanical (motor restoration) time, and final (total restoration) time.
[0052] Specific implementation: Consider using a MOS module or relay as the 24V high-low level conversion element. The MOS module has a positive and a negative power supply terminal, connected to a DC 24V power supply. The GND terminal is grounded. The PWM terminal is connected to the GPIO port of the STM32. The STM32's GPIO port controls the high-level (24V) and low-level (0V) switching of the MOS module by providing a 3.3V or 0V voltage.
[0053] The beneficial effect of this embodiment is that, according to oscilloscope tests, the level switching speed of the MOS module is approximately 35µs, while the level switching speed of the relay module is approximately 5ms, a difference of more than 100 times. Therefore, there is an improvement in the speed of solving the dual-arm Rubik's Cube 12 robot.
[0054] Fully open: 65ms; Fully closed: 130ms;
[0055] Idle rotation (arm position adjustment via rotation) 90-degree base (1): 39.7ms Idle rotation 90-degree lighting ring (2): 62.5ms Idle rotation 90-degree gantry (3): 75.5ms (The two slower parameters for idle rotation are due to the fact that when the two stepper motors run at their highest speed simultaneously, the stepper motors will overstep due to power limitations. Appropriately slowing down the idle rotation speed can achieve simultaneous operation of the two arms without wasting extra idle rotation time.)
[0056] Twist (the operation of rotating a single layer of a Rubik's Cube 12 by rotating it) 90 degrees: 41.2ms Twist 180 degrees: 72.9ms
[0057] Rotation (the operation of rotating the Rubik's Cube 12 as a whole) 90 degrees: 119.6ms Rotation 180 degrees: 199.1ms
[0058] The average reduction process involves approximately 64 steps.
[0059] Specific Implementation: Time planning is used to optimize the robotic arm's "open-90-degree idle rotation-close" motion. Due to limitations in the operating frequency of the slide cylinder caused by the mechanism, opening the slide cylinder takes 65ms and closing takes 130ms. A single-arm motion is defined: open-90-degree idle rotation-close. Time planning is performed so that the 90-degree idle rotation is executed before the slide cylinder is fully open, but to a certain extent (before it touches the Rubik's Cube 12 during rotation). After the 90-degree idle rotation, since the average speed of the 90-degree idle rotation is 39.7ms, significantly less than the 130ms closing time of the slide cylinder, and the gripper can clamp the Rubik's Cube 12 once it is closed to a certain extent, the closing motion is executed some time before the 90-degree idle rotation begins. Therefore, the overall control flow is as follows: execute the gripper opening operation; while opening to a certain angle (not fully open), execute the 90-degree idle rotation, and execute the gripper closing operation in advance.
[0060] Specific implementation method:
[0061] ① Initialize and set the frequency of the left and right motor timers.
[0062] ② Entry Judgment: If the action to be performed is left hand opening - left hand free rotation 90 degrees - left hand closing, then execute the code operation—left motor opening operation (STM32's GPIO2 pin is set to high level to control the solenoid valve, causing one side of the slide cylinder to open), execute the cylinder opening delay function; left motor closing operation (STM32's GPIO2 pin is set to low level to control the solenoid valve, causing one side of the slide cylinder to close); simultaneously, execute left hand free rotation 90 degrees operation (STM32's GPIO1 pin is set to low level, using the free rotation 90-degree stepper motor rotation parameters to make the stepper motor rotate 90 degrees counterclockwise), and then execute the cylinder opening delay function. If the action to be performed is: right hand open - right hand rotates 90 degrees - right hand closes, then the code operation is executed as follows: right motor open operation (STM32's GPIO5 pin is set to high level to control the solenoid valve, causing the other side slide cylinder to open), cylinder open delay function is executed; right motor close operation (STM32's GPIO5 pin is set to low level to control the solenoid valve, causing the other side slide cylinder to close) is executed simultaneously; right hand rotates 90 degrees (STM32's GPIO4 pin is set to low level, using the stepper motor rotation parameters for 90-degree rotation, causing the stepper motor to rotate 90 degrees counterclockwise) is executed again; cylinder open delay function is then executed.
[0063] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each "open-close-90-degree free rotation-close" combination step can be reduced by 10ms + 39.7ms + 20ms = 69.7ms (based on parameter adjustment).
[0064] Specific implementation method: Using time planning, optimize the robotic arm's movement of "arm 1 opens - arm 2 rotates 180 degrees - arm 1 closes". When arm 1 is not fully opened, arm 2 performs a 180-degree rotation, and arm 1 closes before the rotation is completed. (Arms 1 and arm 2 are the left and right hands, respectively, and can be interchanged).
[0065] Specific implementation method: Take the action of "right hand opens - left hand rotates 180 degrees - right hand closes" as an example.
[0066] ① Initialize the timers for the left and right motors.
[0067] ②Execute the opening operation of the right slide cylinder.
[0068] ③ Execute the right slide cylinder delay function.
[0069] ④ Perform a 180-degree rotation operation with the left hand (set the GPIO1 pin of the STM32 to a high level, use the stepper motor rotation parameters to make the stepper motor rotate 180 degrees clockwise).
[0070] ⑤ Set the delay function for the left motor to rotate 180 degrees.
[0071] ⑥ Perform the right slide cylinder closing operation. ⑦ Set the right slide cylinder closing delay function.
[0072] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of "arm 1 opens - arm 2 rotates 180 degrees - arm 1 closes" can reduce the time by 10ms + 199.1ms - 120ms + 15ms = 104.1ms, with an average reduction of 34.7ms per step (based on parameter adjustment).
[0073] Specific implementation method: Using time planning, optimize the robotic arm's movement of "arm 1 opens - arm 2 rotates 90 degrees - arm 1 closes". When arm 1 is not fully opened, arm 2 performs a 90-degree rotation, and arm 1 closes before the rotation is completed. (Arms 1 and arm 2 are the left and right hands, respectively, and can be interchanged).
[0074] Specific implementation method: Take the action of "right hand opens - left hand rotates 90 degrees clockwise - right hand closes" as an example.
[0075] ① Initialize the timers for the left and right motors.
[0076] ②Execute the opening operation of the right slide cylinder.
[0077] ③ Execute the right slide cylinder delay function.
[0078] ④ Perform a 90-degree clockwise rotation with the left hand (set the STM32's GPIO1 pin to a high level, and use the stepper motor rotation parameters to make the stepper motor rotate 90 degrees clockwise).
[0079] ⑤ Set a delay function for the left motor to rotate 90 degrees clockwise.
[0080] ⑥ Perform the closing operation of the right slide cylinder.
[0081] ⑦ Set the closing delay function for the right slide cylinder.
[0082] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of "arm 1 opens - arm 2 rotates 90 degrees - arm 1 closes" can reduce the time by 10ms + 119.6ms - 55ms + 20ms = 94.6ms, with an average reduction of 31.5ms per step (based on parameter adjustment).
[0083] Specific implementation method: Using time planning, optimize the robotic arm's movement of "arm 1 opens - arm 2 rotates 180 degrees - arm 1 idles 90 degrees - arm 1 closes". When arm 1 is not fully opened, arm 2 performs a 180-degree rotation. Before arm 2's rotation is complete, arm 1 performs a 90-degree idle rotation. Before arm 1's 90-degree idle rotation is complete, arm 1 closes. (Arms 1 and 2 are the left and right hands respectively, and can be interchanged).
[0084] Specific implementation method: Take the action of "right hand opens - left hand rotates 180 degrees - right hand rotates 90 degrees in free spin - right hand closes" as an example.
[0085] ① Initialize the timers for the left and right motors.
[0086] ②Execute the opening operation of the right slide cylinder.
[0087] ③ Execute the right slide cylinder delay function.
[0088] ④ Perform a 180-degree rotation operation with the left hand (set the GPIO1 pin of the STM32 to a high level, use the stepper motor rotation parameters to make the stepper motor rotate 180 degrees clockwise).
[0089] ⑤ Set a delay function for the left motor to rotate 180 degrees clockwise.
[0090] ⑥ Perform a 90-degree free spin operation (set the STM32's GPIO4 pin to low level, use the stepper motor rotation parameters for a 90-degree free spin, and make the stepper motor rotate 90 degrees counterclockwise).
[0091] ⑦ Perform the closing operation of the right slide cylinder.
[0092] ⑧ Set the closing delay function for the right slide cylinder.
[0093] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of steps of "arm 1 opens - arm 2 rotates 180 degrees - arm 1 rotates 90 degrees - arm 1 closes" can be reduced by 10 + 199.1 ms - 120 ms - 15 ms + 39.7 ms + 20 ms = 133.8 ms, with an average reduction of 33.45 ms per step (based on parameter adjustment).
[0094] Detailed Implementation: Using time planning, the robot arm's movement is optimized as follows: "Arm 1 opens - Arm 1 idles for 90 degrees - Arm 2 rotates 180 degrees - Arm 1 closes." While Arm 1 is not fully open, it performs a 90-degree idle rotation. Before Arm 1 completes its 90-degree idle rotation, Arm 2 performs a 180-degree rotation. Before Arm 2 completes its rotation, Arm 1 closes. (Arms 1 and 2 are the left and right hands, respectively, and can be interchanged.)
[0095] Specific implementation method: Take the action of "right hand opens - right hand rotates 90 degrees - left hand rotates 180 degrees - right hand closes" as an example.
[0096] ① Initialize the timers for the left and right motors.
[0097] ②Execute the opening operation of the right slide cylinder.
[0098] ③ Execute the right slide cylinder delay function.
[0099] ④ Perform a 90-degree free spin operation (set the STM32's GPIO4 pin to low level, use the 90-degree free spin stepper motor rotation parameters to make the stepper motor rotate 90 degrees counterclockwise).
[0100] ⑤ Perform a 180-degree rotation operation with the left hand (set the GPIO1 pin of the STM32 to a high level, use the 180-degree rotation parameters of the stepper motor to make the stepper motor rotate 180 degrees clockwise).
[0101] ⑥ Set a delay function for the left motor to rotate 180 degrees clockwise.
[0102] ⑦ Perform the closing operation of the right slide cylinder.
[0103] ⑧ Set the closing delay function for the right slide cylinder.
[0104] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of steps of "arm 1 opens - arm 1 rotates 90 degrees - arm 2 rotates 180 degrees - arm 1 closes" can reduce the time by -5ms + 39.7 + 199.1ms - 10ms - 115ms + 25ms = 133.8ms, with an average reduction of 33.45ms per step (based on parameter adjustment).
[0105] Specific implementation method: Using time planning, optimize the robotic arm's movement of "arm 1 opens - arm 2 rotates 90 degrees - arm 1 idles 90 degrees - arm 1 closes". When arm 1 is not fully opened, arm 2 performs a 90-degree rotation; before arm 2's rotation is complete, arm 1 performs a 90-degree idle rotation; before arm 1's 90-degree idle rotation is complete, arm 1 closes. (Arms 1 and 2 are the left and right hands respectively, and can be interchanged).
[0106] Specific implementation method: Taking the action of "left hand opens - right hand rotates counterclockwise 90 degrees - left hand idles 90 degrees - left hand closes" as an example. ① Initialize the left and right motor timers. ② Execute the left slide cylinder opening operation. ③ Execute the left slide cylinder delay function. ④ Execute the right hand counterclockwise 90-degree rotation operation (the STM32's GPIO4 pin is set to low level, using the stepper motor rotation parameters to make the stepper motor rotate 90 degrees counterclockwise). ⑤ Execute the left hand idles 90-degree operation (the STM32's GPIO1 pin is set to high level, using the idle 90-degree stepper motor rotation parameters to make the stepper motor rotate 90 degrees clockwise). ⑥ Set the right motor counterclockwise 90-degree rotation delay function. ⑦ Execute the left slide cylinder closing operation. ⑧ Set the left slide cylinder closing delay function.
[0107] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of steps of "arm 1 opens - arm 2 rotates 90 degrees - arm 1 rotates 90 degrees in idle mode - arm 1 closes" can be reduced by 10ms + 119.6ms - 50ms + 39.7ms + 10ms = 129.3ms, with an average reduction of 32.325ms per step (based on parameter adjustment).
[0108] Specific implementation method: Using time planning, optimize the robotic arm's movement of "arm 1 opens - arm 1 idles 90 degrees - arm 2 rotates 90 degrees - arm 1 closes". When arm 1 is not fully open, it performs a 90-degree idle rotation. Before the idle rotation of arm 1 ends, arm 2 performs a rotation. Before the 90-degree rotation of arm 2 ends, arm 1 closes. (Arms 1 and 2 are the left and right hands respectively, and can be interchanged).
[0109] Specific implementation method: Taking the action of "left hand open - left hand idle 90 degrees - right hand counterclockwise 90 degrees - left hand close" as an example. ① Initialize the left and right motor timers. ② Execute the left slide cylinder opening operation. ③ Execute the left slide cylinder delay function. ④ Execute the left hand idle 90-degree operation (the STM32's GPIO1 pin is set to high level, using the stepper motor rotation parameters for 90-degree idle rotation, causing the stepper motor to rotate 90 degrees clockwise). ⑤ Execute the right hand counterclockwise 90-degree operation (the STM32's GPIO4 pin is set to low level, using the stepper motor rotation parameters for 90-degree rotation, causing the stepper motor to rotate 90 degrees counterclockwise). ⑥ Set the right motor counterclockwise 90-degree delay function. ⑦ Execute the left slide cylinder closing operation. ⑧ Set the left slide cylinder closing delay function.
[0110] The beneficial effect of this embodiment is that, through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of steps of "arm 1 opens - arm 1 rotates 90 degrees - arm 2 rotates 90 degrees - arm 1 closes" can be reduced by 10ms + 119.6ms - 60ms + 39.7ms + 20ms = 129.3ms, with an average reduction of 32.325ms per step (based on parameter adjustment).
[0111] Specific implementation: Using time planning, optimize the robotic arm's movement of "Arm 1 opens - Arm 1 idles 90 degrees - Arm 2 rotates 180 degrees - Arm 1 idles 90 degrees - Arm 1 closes". When Arm 1 is not fully open, it performs a 90-degree idle rotation. Before the idle rotation of Arm 1 ends, it performs a 180-degree rotation with Arm 2. Before the rotation with Arm 2 ends, it performs a 90-degree idle rotation of Arm 1. Before the idle rotation of Arm 1 ends, it closes. (Arms 1 and 2 are the left and right hands respectively, and can be interchanged).
[0112] Specific implementation method: Taking the action of "left hand open - left hand idles 90 degrees - right hand rotates 180 degrees - left hand idles 90 degrees - left hand closes" as an example: ① Initialize the left and right motor timers. ② Execute the left slide cylinder opening operation. ③ Execute the left slide cylinder delay function. ④ Execute the left hand idles 90 degrees operation (the STM32's GPIO1 pin is set to low level, using the stepper motor rotation parameters for 90-degree idle rotation, causing the stepper motor to rotate 90 degrees counterclockwise). ⑤ Execute the left motor delay function. ⑥ Execute the right hand counterclockwise 180-degree rotation operation (the STM32's GPIO4 pin is set to high level, using the stepper motor rotation parameters for 180-degree rotation, causing the stepper motor to rotate 180 degrees clockwise). ⑦ Execute the right motor delay function. ⑧ Perform a 90-degree idle rotation operation on the left hand (set the GPIO1 pin of the STM32 to low level, use the 90-degree idle rotation stepper motor rotation parameters to make the stepper motor rotate 90 degrees counterclockwise) ⑨ Set the left motor delay function. ⑩ Perform a left slide cylinder closing operation. Side component (11) sets the left slide cylinder closing delay function.
[0113] The beneficial effect of this embodiment is that, through this operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination of steps of "arm 1 opens - arm 1 rotates 90 degrees - arm 2 rotates 180 degrees - arm 1 rotates 90 degrees - arm 1 closes" can be reduced by 10ms + 199.1ms - 30ms - 95ms - 10ms + 20ms + 39.7ms * 2 = 173.5ms, with an average reduction of 34.7ms per step (based on parameter adjustment).
[0114] The above specific implementation methods reduce the average restoration time per step by 34.7ms compared to before logic optimization, and the total restoration time by approximately 1.4s.
[0115] Specific implementation: A 5V11006B050 two-position five-way solenoid valve and a 5V130E06B050 three-position five-way center-exit solenoid valve are connected in series, combined with a MOS module, to achieve high-speed opening, closing, and releasing of the slide cylinder. The advantage of the two-position five-way solenoid valve is its fast operating frequency, reaching 200ms / cycle, but its disadvantage is that it can only achieve two states of the slide cylinder: opening and closing. The advantage of the three-position five-way solenoid valve is that it can achieve a third state of the slide cylinder: releasing, but its disadvantage is its low operating frequency of 333ms / cycle. Connecting the two solenoid valves in series satisfies the advantages of both valves while compensating for their respective disadvantages. The air source is connected to the P terminal of the three-position five-way solenoid valve, and the A terminal of the three-position five-way solenoid valve is connected to the P terminal of the two-position five-way solenoid valve. The A and B terminals of the two-position five-way solenoid valve are respectively connected to the two ends of the slide cylinder. The overall process is as follows: Initially, both solenoid valves are de-energized; when the STM32 control board receives the reconstruction solution, the STM32 sends a message to the MOSFET, energizing terminal A of the three-position five-way solenoid valve.
[0116] When the A end of the two-position five-way solenoid valve is vented, the slide cylinder clamps. When the two-position five-way solenoid valve is energized, the B end of the two-position five-way solenoid valve is vented, causing the slide cylinder to open. When the restoration is complete, the STM32 receives a message, the A end of the three-position five-way solenoid valve is de-energized, the gas in the slide cylinder is discharged, and the slide cylinder is in a relaxed state.
[0117] The beneficial effects of this embodiment are: ① It increases the frequency of solving the Rubik's Cube 12 using the dual-arm robot. ② The relaxed state facilitates precise placement of the Rubik's Cube 12, enabling one-click start of the solving operation on the computer. ③ The relaxed state facilitates the removal of the Rubik's Cube 12 after solving, reducing the need for careful placement.
[0118] The time wasted on taking the Rubik's Cube 12 can reduce the total operation time by about 2 seconds.
[0119] Detailed implementation: Write a host computer program to debug the motor. Pressing letters on the computer keyboard will execute the corresponding steps of the motor operation. Operation method: ① Run the program. ② Press the corresponding key.
[0120] Press the button to execute the steps.
[0121] The beneficial effects of this embodiment are: it greatly reduces the time required for motor debugging, and facilitates debugging...
[0122] Problems were discovered during the trial.
[0123] 1. Mechanical step coding and collaborative control:
[0124] Define the state set of the robotic arm:
[0125] S = {Normal, left arm rotated 90 degrees, right arm rotated 90 degrees};
[0126] Action instruction set:
[0127] A = {Open, Close, Rotate 90 degrees, Rotate 180 degrees, Rotate 90 degrees with load, Rotate 180 degrees with load, Rotate 90 degrees without load}
[0128]
[0129] Three types of status coding avoid interference from the robotic arm, and string mapping reduces communication load.
[0130] 2. Time overlap optimization algorithm;
[0131] Taking "open-rotate 90°-close" as an example:
[0132] Let t open The cylinder fully opens in 65ms, t rotate The idle time is 39.7ms, t close The cylinder complete closing time (130ms)
[0133] Optimized total time T optimized satisfy:
[0134] T optimized =max(t) open ,t rotate +δ start )+max(t close -δ advance ,t rotate )
[0135] Where δ start The delay time for triggering the idling (the experimental parameter is set to 10ms), δ advance This is the offset for early closure (20ms). T optimized =65ms + 130ms - 20ms = 175ms, saving 69.7ms.
[0136] Multi-arm collaborative logic: (taking "left hand opens - right hand rotates 90° clockwise - left hand rotates 90° freehand - left hand closes" as an example);
[0137] start(arm1_open) Open left arm - delay(δ_start) Wait for a safe angle - start(arm2_drotate90_1) Rotate right arm 90° clockwise - delay(t_drotate90_1-δ_overlap) Rotation not finished - start(arm2_krotate+arm2_close-δarm2_krotate) Perform idle rotation and closing operation in advance;
[0138] Through δ overlap and δ arm2_krotate Controlling the overlapping window of actions reduced the total time by 129.3ms;
[0139] Solenoid valve coordinated control logic:
[0140] Pneumatic control logic: Let the state of the two-position valve V2∈{0(closed),1(open)}, and the state of the three-position valve V3∈{0(relaxed),1(pressurized)};
[0141] The cylinder logic is as follows:
[0142]
[0143] The two-position valve has a response time of 200ms / time, while the three-position valve enables the Rubik's Cube to be placed and removed in a zero-pressure state.
[0144] 3. Theoretical verification of the time optimization algorithm;
[0145] Time complexity model:
[0146] For n steps, the traditional serial time is...
[0147] Optimized time consumption Where m is the number of parallel action groups (m <= n);
[0148] The average reduction per step is Δt = 34.7 ms;
[0149] Action overlap constraint:
[0150] Action a i With a j Overlapping is allowed, but must satisfy certain conditions;
[0151]
[0152] This helps to avoid the risk of self-collision.
[0153] The above description is merely a further embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any substitutions or modifications made by those skilled in the art within the scope disclosed in the present invention, based on the technical solution and concept of the present invention, shall fall within the scope of protection of the present invention.
Claims
1. A rapid adjustment method for solving a Rubik's Cube using fast linkage operation, characterized in that: The rapid adjustment method also includes a rapid linkage operation Rubik's Cube solving robot, which includes a base (1) on which a gantry assembly is mounted; A lighting group is set up on the gantry assembly to illuminate the Rubik's Cube (12); Two sets of robotic arms for adjusting the Rubik's Cube (12) are set at the bottom of the gantry frame assembly; The gantry assembly includes a gantry (3) and a base frame (10). The base frame (10) is installed on the top of the base (1), and the gantry (3) is installed on both sides of the base frame (10) via side members (11). The lighting assembly includes a lighting ring (2) and a camera (4); Cameras (4) are installed at the top center of the base frame (10) and on both sides and top of the gantry frame (3). Lighting rings (2) are set on both sides and top of the gantry (3) with the camera (4) as the center; The robotic arm assembly includes a stepper motor (9), a coupling (8), a transmission frame (7), a clamping adjustment component (6), a pneumatic gripper (5), and a rotating connecting plate (13); Stepper motors (9) are installed on both sides of the top of the base frame (10). A rotating connecting plate (13) is installed at the output end of the stepper motor (9) through a coupling (8). A clamping adjustment component (6) is installed at the outer end of the rotating connecting plate (13), and a pneumatic gripper (5) is provided at the output end of the clamping adjustment component (6) and adjusted by the clamping adjustment component (6). A transmission frame (7) is installed on the outer end of the stepper motor (9). The output end of the stepper motor (9) passes through the transmission frame (7) and is connected to the coupling (8). The coupling (8) is located inside the transmission frame (7). The status of the robotic arm assembly and the mechanical steps of the gripper opening, closing, twisting, rotating, and idling are encoded into string information and transmitted to the lower-level machine for execution via serial port. The left-hand operation corresponds to the lowercase letter, and the right-hand operation corresponds to the uppercase letter. The microcontroller stops the calculation after receiving the character 'f'. A multi-threaded Python program was written using PyQT5, integrating camera control, Rubik's Cube recognition, solving, and motor restoration functions. It displays the mechanical steps of solving, recognition time, solving time, mechanical execution time, and total restoration time in real time. Using a MOS module as a 24V level conversion element, the MOS module is controlled by outputting a 3.3V / 0V voltage through the GPIO port of the STM32 to achieve 24V / 0V level conversion, with a level conversion speed of 35μs; When the slide cylinder opens to an angle that does not touch the Rubik's Cube, it simultaneously performs a 90-degree free spin and initiates the closing action in advance; When arm 1 is not fully open, arm 2 performs a 90-degree or 180-degree rotation, and initiates the closing action of arm 1 before the rotation is completed; The total time is reduced by overlapping the execution of each action in the order of opening, rotating, idling, and closing. This includes the combination of arm 1 opening, arm 2 rotating 180 degrees, arm 1 idling 90 degrees, and arm 1 closing, in which each action is executed alternately according to a delay function. A 5V11006B050 two-position five-way solenoid valve and a 5V130E06B050 three-position five-way solenoid valve are connected in series. The air source is connected to the P terminal of the three-position five-way solenoid valve, and its A terminal is connected to the P terminal of the two-position five-way solenoid valve. The A and B terminals of the two-position five-way solenoid valve are connected to the two ends of the slide cylinder. The cylinder clamping, opening and relaxing states are switched by controlling the solenoid valve to turn on and off through STM32. Motor debugging program: Write a host computer debugging program to trigger the motor to execute corresponding mechanical steps via keyboard keys.
2. The method for rapid adjustment of a Rubik's Cube with rapid linkage operation according to claim 1, characterized in that: The robotic arm motion time planning optimization is underway: The time taken for the single-arm opening-90-degree free spin-closing combination steps was reduced by 69.7ms; The time taken for the combined steps of arm 1 opening - arm 2 rotating 180 degrees - arm 1 closing has been reduced by 104.1ms; The time taken for the combined steps of opening arm 1, rotating arm 2 90 degrees, rotating arm 1 idling 90 degrees, and closing arm 1 was reduced by 129.3ms.
3. The rapid adjustment method for solving a Rubik's Cube with rapid linkage operation according to claim 2, characterized in that: In the solenoid valve combination control: the two-position five-way solenoid valve operates at a frequency of 200ms / time, realizing the rapid opening / closing of the cylinder; When the three-position five-way solenoid valve is de-energized, the cylinder is in a relaxed state, which makes it easier to place and remove the Rubik's Cube, reducing the total operation time by 2 seconds.
4. The rapid adjustment method for solving a Rubik's Cube with rapid linkage operation according to claim 3, characterized in that: It also includes defining the robotic arm state set S and the motion instruction set I, through the mapping function f:S Implement state coding, using three state coding methods to avoid interference from the robotic arm, and reduce communication load through string mapping; The time overlap optimization algorithm is used to plan the action time, specifically including: Single-arm movement time overlap: Let the cylinder fully open in time. Idle time is The cylinder fully closes in time. By setting the opening trigger idle delay time and early closure offset The total time consumed satisfies: T= + - =175ms; Save time + - =69.7ms; Multi-arm coordinated motion time overlap: Taking the left hand opening - the right hand rotating 90° clockwise, the left hand rotating 90° free, and the left hand closing as an example, the motion overlap window is controlled. This reduced the total time by 129.3ms; Perform coordinated control of solenoid valves and set the state of the two-position valve. and three-position valve status The cylinder logic satisfies specific control rules, where the response speed of the two-position valve is 200ms / time, and the three-position valve realizes the zero-pressure state of the Rubik's Cube release and take-off. Theoretical verification of time-optimized algorithms includes time complexity models: For n steps, the traditional serial execution time is = After optimization, the time taken is = Where m is the number of parallel action groups (m ), reducing the average amount per step ; The action overlap constraint is: for actions i and j to overlap, start(j) must be satisfied. end(i)+ To avoid the risk of self-collision.
Citation Information
Patent Citations
Magic cube solving robot of two-arm and two-finger structure
CN108748151A
Two-arm and two-finger type magic cube solving robot
CN210414551U