Double-arm Rubik's cube robot capable of achieving rapid linkage operation and rapid adjustment method for restoring Rubik's cube
By optimizing the state of the double-arm Rubik's Cube robot robot robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot's robot
Patent Information
- Application Number
- CN202510867339.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-26
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2045-06-26
AI Technical Summary
The clamping stability of existing two-arm Rubik's Cube robots is greatly affected by air pressure fluctuations and complex mechanical structure, resulting in slow reduction speed and low success rate, complex and lengthy control methods, and lack of efficient time planning.
The state of the robot arm group is divided into three modes, combined with the mechanical step coding system, and the precision and collaborative operation of the robot arm is achieved through a multi-threaded Python program, using MOS modules to replace the relay, optimizing the action time planning, and a series solenoid valve controls the rapid opening and closing of the cylinder.
The robot arm's action response speed is improved, the recovery success rate is improved, the total recovery time is shortened, the robot arm collision interference is reduced, and the control method is simplified.
Smart Images

Figure CN120422202A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a dual-arm Rubik's Cube robot, in particular to a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a restored Rubik's Cube, belonging to the technical field of dual-arm Rubik's Cube robots. Background Art
[0002] Existing dual-arm Rubik's Cube robots mostly use pneumatic grippers for gripping. While pneumatic systems offer advantages such as simple structure and rapid operation, their gripping stability is significantly affected by air pressure fluctuations. As air pressure decreases, the gripping dynamics fluctuate significantly, leading to significant variations in gripping force. This instability is particularly prominent in the later stages of solving the Rubik's Cube, impacting both the success rate and speed of the solution.
[0003] The mechanical structure of existing dual-arm Rubik's Cube robots is relatively complex, requiring a large amount of support structure to maintain overall mechanical stability during the Rubik's Cube solving process. This complex structure not only increases manufacturing costs but also reduces system reliability.
[0004] Existing two-arm Rubik's Cube robots have long reaction times and slow execution speeds when solving Rubik's Cubes. For example, due to the limited number of mechanical arms, a traditional two-arm, two-finger Rubik's Cube robot requires about twice as many movements as a four-arm Rubik's Cube robot and about four times as many movements as a six-arm Rubik's Cube robot. This results in slow solving speeds and low success rates. Furthermore, two-arm Rubik's Cube robots lack efficient time planning when executing actions, resulting in inconsistent transitions between movements and a significant waste of time.
[0005] For example, in the process of opening, closing and moving the Rubik's Cube with the air grippers, there was no reasonable time planning, resulting in a long total time.
[0006] The control method of the existing dual-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 color block information. The process is relatively complicated, resulting in a long time and low efficiency in solving the Rubik's Cube. To this end, a dual-arm Rubik's Cube robot with fast linkage operation and a method for quickly adjusting the Rubik's Cube are designed to solve the above problems. Summary of the Invention
[0008] The main purpose of the present invention is to provide a dual-arm Rubik's Cube robot with fast linkage operation and a method for quickly adjusting the Rubik's Cube.
[0009] The purpose of the present invention can be achieved by adopting the following technical solutions:
[0010] A fast-linked dual-arm Rubik's Cube robot comprises a base with a gantry assembly mounted on the base;
[0011] A lighting group located on the gantry group is provided to illuminate the Rubik's Cube;
[0012] Two sets of robotic arms for adjusting the Rubik's Cube are set at the bottom of the gantry group.
[0013] Preferably, the gantry assembly includes a gantry and a base frame, the base frame is installed on the top of the base, and the gantry is installed on both sides of the base frame through side pieces.
[0014] Preferably, the lighting group includes a lighting ring and a camera;
[0015] Cameras are installed at the top middle of the base frame and on both sides and the top of the gantry;
[0016] Lighting rings are arranged on both sides and the top of the gantry with the camera as the center.
[0017] Preferably, the robotic arm assembly includes a stepping motor, a coupling, a transmission frame, a clamping adjustment member, an air 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 installed with a rotating connecting disk through a coupling. The outer end of the rotating connecting disk is installed with a clamping adjustment piece, and the output end of the clamping adjustment piece is provided with an air claw adjusted by the clamping adjustment piece.
[0019] Preferably, a transmission frame is installed 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 on the inner side of the transmission frame.
[0020] The robot arm group status and the mechanical steps of opening, closing, twisting, belt rotation and idling of the air gripper are encoded into a string of information and transmitted to the lower computer through the serial port for execution. The left-hand operation corresponds to lowercase letters, and the right-hand operation corresponds to uppercase letters. The microcontroller stops solving after receiving the character f.
[0021] A multi-threaded Python program written in PyQT5 integrates camera control, Rubik's Cube recognition, solving, and motor restoration functions, and displays the solving mechanical steps, recognition time, solving time, mechanical execution time, and total restoration time in real time.
[0022] Use MOS module as 24V level conversion element, and control MOS module to achieve 24V / 0V level conversion through GPIO port output of 3.3V / 0V voltage, 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 will simultaneously execute an idle 90-degree motion and start the closing motion in advance;
[0024] When arm 1 is not fully opened, arm 2 rotates 90 degrees or 180 degrees, and starts the closing action of arm 1 before the rotation is completed;
[0025] In the order of opening, rotating, idling, and closing, the total time is reduced by overlapping the execution of each action. 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 staggered according to the delay function;
[0026] Connect a 5V11006B050 2-position 5-way solenoid valve and a 5V130E06B050 3-position 5-way solenoid valve in series. Connect the air source to the P end of the 3-position 5-way solenoid valve, and its A end to the P end of the 2-position 5-way solenoid valve. The A and B ends of the 2-position 5-way solenoid valve are connected to the two ends of the slide cylinder. The solenoid valve is controlled by STM32 to switch between the clamping, opening and relaxing states of the cylinder.
[0027] Motor debugging program: Write a host computer debugging program to trigger the motor to execute the corresponding mechanical steps through keyboard buttons.
[0028] Preferably, in the optimization of the robot arm motion time planning:
[0029] The time taken for the single arm opening-90-degree rotation-closing combination step was reduced by 69.7ms;
[0030] The time taken for the combined steps of arm 1 opening, arm 2 rotating 180 degrees, and arm 1 closing was reduced by 104.1ms.
[0031] The time taken for the combined steps of arm 1 opening - arm 2 rotating 90 degrees - arm 1 rotating 90 degrees - arm 1 closing was reduced by 129.3ms.
[0032] Preferably, in the solenoid valve combination control: the operating frequency of the two-position five-way solenoid valve is 200ms / time, so as to realize rapid opening / closing of the cylinder;
[0033] When the three-position five-way solenoid valve is powered off, the cylinder is in a relaxed state, making 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] The present invention provides a fast-linked dual-arm Rubik's Cube robot and a method for quickly adjusting the Rubik's Cube. By dividing the state of the robotic arm group into three modes (normal state, unilateral rotation of 90°, and contralateral rotation of 90°), combined with a mechanical step coding system (left-hand lowercase / right-hand uppercase letters mapping air gripper movements), precise coordination of dual-arm movements is achieved. According to tests, a single 90° twist of the robotic arm takes 41.2ms, and a 180° rotation takes 199.1ms, which is more than three times the action response speed of the traditional pneumatic finger clamping solution. At the same time, the pre-definition of the three states effectively avoids collision and interference of the robotic arms during the restoration process, increasing the success rate of Rubik's Cube restoration from 72% of the traditional solution to 98%.
[0036] Through time planning of multiple action combinations (such as the "open-idle-close" combination), the time consumption of a single step was reduced by 69.7ms, and the "arm 1 open-arm 2 rotates 180 degrees-arm 1 close" combination was reduced by 104.1ms. The average time consumption per step was reduced by 34.7ms, and the total restoration time was shortened by 1.4s (the traditional solution has an average of about 64 restoration steps, and the total time consumption is now controlled within 5s).
[0037] By using MOS modules instead of relays, the level conversion speed is increased from 5ms to 35μs, driving the slide cylinder to fully open in only 65ms and close in 130ms, which are 38% and 27% shorter than traditional solutions respectively. The time required for the robotic arm to idle 90° is reduced to 39.7ms, reaching the industry-leading level. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 A schematic diagram of the overall first-perspective stereoscopic structure of a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a Rubik's Cube according to a preferred embodiment of the present invention;
[0039] Figure 2 A schematic diagram of the overall structure from a second perspective of a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a Rubik's Cube according to a preferred embodiment of the present invention;
[0040] Figure 3 A schematic diagram of the overall structure from a third perspective of a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a Rubik's Cube according to a preferred embodiment of the present invention;
[0041] Figure 4 A schematic diagram of the first-person perspective structure of the robotic arm of a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a Rubik's Cube according to the present invention;
[0042] Figure 5This is a schematic diagram of the second-perspective stereoscopic structure of the robotic arm of a preferred embodiment of a dual-arm Rubik's Cube robot with rapid linkage operation and a method for rapidly adjusting a Rubik's Cube according to the present invention.
[0043] In the figure: 1-base, 2-lighting ring, 3-gantry, 4-camera, 5-air gripper, 6-clamping adjustment part, 7-transmission frame, 8-coupling, 9-stepping motor, 10-base, 11-side parts, 12-magic cube, 13-rotating connecting plate. DETAILED DESCRIPTION
[0044] In order to make the technical solution of the present invention more clear and specific to those skilled in the art, the present invention is further described in detail below with reference to embodiments and drawings, but the embodiments of the present invention are not limited thereto.
[0045] Specific implementation: Define the mechanical steps of the dual-arm Rubik's Cube 12 robot. For the dual-arm dual-finger Rubik's Cube 12 robot, the states of the robotic arm group are divided into three types:
[0046] In the normal state, the robotic arm group on one side remains unchanged while the robotic arm group on the other side rotates 90°; the robotic arm group on one side rotates 90° while the robotic arm group on the other side remains unchanged.
[0047] The mechanical operations are: air gripper open, air gripper closed, twist 90°, twist 180°, belt rotation 90°, belt rotation 180° and idling 90°.
[0048] Lowercase letters correspond to left-handed operations (twisting or rotating the Rubik's Cube 12), while uppercase letters correspond to right-handed operations (twisting or rotating the Rubik's Cube 12). The microcontroller stops after receiving the character "f," and the solution is complete. By encoding the transitions between these three states and the 34 mechanical steps, the mechanical transformation information transmitted from the network port is converted into a string and sent via the serial port to the slave computer for execution.
[0049] The beneficial effects of this embodiment are: converting mechanical steps into letters to facilitate information transmission between the upper and lower computers, distinguishing three mechanical states, preventing collision and interference of the Rubik's Cube robot during the restoration process, taking into account all possible step situations, and laying the foundation for restoring the dual-arm Rubik's Cube robot.
[0050] Specific implementation method: Using PYQT5, a multi-threaded Python program was written to create a dual-arm Rubik's Cube robot program host computer. The host computer has three buttons: Open Camera 4, Start Recognition, and Exit Program. When the host computer program is running, click to open Camera 4. All four cameras 4 are opened on the computer and appear on the screen. Click Start Recognition to execute the steps of visual recognition, Rubik's Cube 12 solving, and motor reduction. After the reduction is complete, click Close Program to exit the Rubik's Cube 12 robot reduction program. The host computer interface also displays: mechanical solution steps, recognition time, solution time, mechanical (motor reduction) time, and final (total reduction) time.
[0051] The beneficial effects of this embodiment are: judging whether all cameras 4 are operating normally; one-button start to reduce unnecessary wasted time; and being able to clearly display the key parameters of the dual-arm Rubik's Cube 12 robot restoration process, such as solving mechanical steps, recognition time, solving time, mechanical (motor restoration) time, and final (total restoration) time.
[0052] Specific implementation: Consider using a MOS module or relay as a 24V high-low level conversion element. The MOS module has positive and negative power terminals, which are connected to a DC 24V power supply. The GND terminal is a common ground. The PWM terminal is connected to the STM32 GPIO port. The STM32 GPIO port controls the MOS module's high (24V) and low (0V) level conversion by providing 3.3V or 0V voltage.
[0053] The beneficial effect of this embodiment is that: according to the oscilloscope test, the level conversion speed of the MOS module is about 35us, while the level conversion speed of the relay module is about 5ms, which is more than 100 times the speed of the dual-arm Rubik's Cube 12 robot.
[0054] Fully open: 65ms Fully closed: 130ms;
[0055] Idle (adjusting the position of the arm by rotating): 90-degree base (1): 39.7ms Idle 90-degree lighting ring (2): 62.5ms Idle 90-degree gantry (3): 75.5ms (The two slower parameters for idling are because when two stepper motors run at the highest speed at the same time, due to power limitation, the stepper motors will overstep. Properly slowing down the idling speed can achieve simultaneous operation of the two arms without wasting extra idling time.)
[0056] Twist (the operation of rotating the Rubik's Cube 12 single layers by rotating) 90 degrees: 41.2ms Twist 180 degrees: 72.9ms.
[0057] 90 degree rotation (the operation of rotating the Rubik's Cube as a whole by rotating it) takes 119.6ms; 180 degree rotation takes 199.1ms.
[0058] The average number of restoration steps is about 64.
[0059] Specific implementation method: Use time planning to optimize the robot arm's "open-idle 90 degrees-close" action. Since the operating frequency of the slide cylinder is limited by the mechanism, it takes 65ms for the slide cylinder to open and 130ms to close. Set an action (single arm): open-idle 90 degrees-close. Perform time planning, and perform the idling 90-degree action when the slide cylinder is not fully opened and is opened to a certain degree (when it will not touch the Rubik's Cube 12 during rotation). After the idling 90 degrees is completed, since the average speed of idling 90 degrees is 39.7ms, which is much shorter than the closing time of the slide cylinder of 130ms, and the gripper can tighten the Rubik's Cube 12 after closing to a certain degree, the closing action is performed some time before starting to perform the idling 90 degrees. Therefore, the overall control process is as follows: perform the gripper opening operation, while opening to a certain angle (not fully opened), perform idling 90 degrees, and perform the gripper closing operation in advance.
[0060] Specific implementation method:
[0061] ① Initialize and set the frequency of the left and right motor timers.
[0062] ②Enter judgment: If the action to be executed is left hand open - left hand idle 90 degrees - left hand closed, then execute the code operation - left motor opening operation (GPIO2 pin of STM32 is set to high level to control the solenoid valve so that one side of the slide cylinder is opened), execute the cylinder opening delay function, left motor closing operation (GPIO2 pin of STM32 is set to low level to control the solenoid valve so that one side of the slide cylinder is closed), while executing the left hand idle 90 degrees operation (GPIO1 pin of STM32 is set to low level, using the idle 90 degrees stepper motor rotation parameter to make the stepper motor rotate 90 degrees counterclockwise), and then execute the cylinder opening delay function Number; if the action executed is right hand opening-right hand idling 90 degrees-right hand closing, then execute the code operation-right motor opening operation (GPIO5 pin of STM32 is set to high level to control the solenoid valve to open the other side slide cylinder), execute the cylinder opening delay function, right motor closing operation (GPIO5 pin of STM32 is set to low level to control the solenoid valve to close the other side slide cylinder), while executing the right hand idling 90 degrees operation (GPIO4 pin of STM32 is set to low level, using the idling 90 degrees stepper motor rotation parameter to make the stepper motor rotate 90 degrees counterclockwise), and then execute the cylinder opening delay function.
[0063] The beneficial effect of this embodiment is that through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each "opening and closing - idling 90 degrees - closing" combination step can be reduced by 10ms+39.7ms+20ms=69.7ms (parameter adjustment basis).
[0064] Specific implementation: Using time planning, the robot arm's "arm 1 opens - arm 2 rotates 180 degrees - arm 1 closes" motion is optimized. If arm 1 is not fully open, arm 2 rotates 180 degrees, and before the rotation is complete, arm 1 closes. (Arm 1 and arm 2 are the left and right hands, respectively, and are interchangeable.)
[0065] Specific implementation method: Take the action of "right hand open - left hand rotate 180 degrees - right hand close" as an example.
[0066] ①Initialize the left and right motor timers.
[0067] ②Execute the right slide cylinder opening operation.
[0068] ③Execute the right slide cylinder delay function.
[0069] ④Execute the left-hand belt rotation 180 degrees operation (the GPIO1 pin of STM32 is set to a high level, and the belt rotation 180 degrees stepper motor rotation parameters are used to make the stepper motor rotate 180 degrees clockwise).
[0070] ⑤ Set the delay function for the left motor to rotate 180 degrees.
[0071] ⑥Execute the right slide cylinder closing operation. ⑦Set the right slide cylinder closing delay function.
[0072] The beneficial effect of this embodiment is: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each "arm 1 opens - arm 2 rotates 180 degrees - arm 1 closes" combination step can be reduced by 10ms+199.1ms-120ms+15ms=104.1ms, and an average reduction of 34.7ms per step (parameter adjustment basis).
[0073] Specific implementation: Using time planning, we optimize the robotic arm's "Arm 1 opens - Arm 2 rotates 90 degrees - Arm 1 closes" motion. If Arm 1 isn't fully open, Arm 2 rotates 90 degrees, and before the rotation is complete, Arm 1 closes. (Arm 1 and Arm 2 represent the left and right arms, respectively, and are interchangeable.)
[0074] Specific implementation method: Take the action of "right hand open - left hand rotates 90 degrees clockwise - right hand close" as an example.
[0075] ①Initialize the left and right motor timers.
[0076] ②Execute the right slide cylinder opening operation.
[0077] ③Execute the right slide cylinder delay function.
[0078] ④Execute the left-hand 90-degree clockwise operation (the GPIO1 pin of STM32 is set to a high level, and the 90-degree stepper motor rotation parameters are used to make the stepper motor rotate 90 degrees clockwise).
[0079] ⑤ Set the delay function for the left motor to rotate 90 degrees clockwise.
[0080] ⑥Execute the right slide cylinder closing operation.
[0081] ⑦ Set the right slide cylinder closing delay function.
[0082] The beneficial effect of this embodiment is: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each "arm 1 opens - arm 2 turns 90 degrees - arm 1 closes" combination step can be reduced by 10ms+119.6ms-55ms+20ms=94.6ms, and an average reduction of 31.5ms per step (parameter adjustment basis).
[0083] Specific implementation: Using time planning, the robot arm's "Arm 1 opens - Arm 2 rotates 180 degrees - Arm 1 rotates 90 degrees - Arm 1 closes" motion. If Arm 1 is not fully open, Arm 2 rotates 180 degrees. Before Arm 2 completes its rotation, Arm 1 rotates 90 degrees. Finally, before Arm 1 completes its 90-degree rotation, Arm 1 closes. (Arm 1 and Arm 2 are the left and right hands, respectively, and are interchangeable.)
[0084] Specific implementation method: Take the action of "right hand open - left hand rotates 180 degrees - right hand rotates 90 degrees - right hand closes" as an example.
[0085] ①Initialize the left and right motor timers.
[0086] ②Execute the right slide cylinder opening operation.
[0087] ③Execute the right slide cylinder delay function.
[0088] ④Execute the left-hand belt rotation 180 degrees operation (the GPIO1 pin of STM32 is set to a high level, and the belt rotation 180 degrees stepper motor rotation parameters are used to make the stepper motor rotate 180 degrees clockwise).
[0089] ⑤ Set the delay function for the left motor to rotate 180 degrees clockwise.
[0090] ⑥Execute the right-hand idling 90-degree operation (the GPIO4 pin of STM32 is set to low level, and the idling 90-degree stepper motor rotation parameters are used to make the stepper motor rotate 90 degrees counterclockwise)
[0091] ⑦Execute the right slide cylinder closing operation.
[0092] ⑧Set the right slide cylinder closing delay function.
[0093] The beneficial effect of this embodiment is: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination step of "arm 1 opens - arm 2 rotates 180 degrees - arm 1 rotates 90 degrees - arm 1 closes" can be reduced by 10+199.1ms-120ms-15ms+39.7ms+20ms=133.8ms, with an average reduction of 33.45ms per step (parameter adjustment basis).
[0094] Specific implementation: Using time planning, the robot arm's "Arm 1 opens - Arm 1 rotates 90 degrees - Arm 2 rotates 180 degrees - Arm 1 closes" motion. If Arm 1 is not fully open, Arm 1 rotates 90 degrees. Before Arm 1 completes its 90-degree rotation, Arm 2 rotates 180 degrees. Finally, Arm 1 closes before Arm 2 completes its rotation. (Arm 1 and Arm 2 are the left and right hands, respectively, and are interchangeable.)
[0095] Specific implementation method: Take the action of "right hand open - right hand rotates 90 degrees - left hand rotates 180 degrees - right hand closes" as an example.
[0096] ①Initialize the left and right motor timers.
[0097] ②Execute the right slide cylinder opening operation.
[0098] ③Execute the right slide cylinder delay function.
[0099] ④Execute the right-hand idling 90-degree operation (the GPIO4 pin of STM32 is set to a low level, and the idling 90-degree stepper motor rotation parameters are used to make the stepper motor rotate 90 degrees counterclockwise).
[0100] ⑤Execute the left-hand belt rotation 180 degrees operation (the GPIO1 pin of STM32 is set to a high level, and the belt rotation 180 degrees stepper motor rotation parameters are used to make the stepper motor rotate 180 degrees clockwise).
[0101] ⑥ Set the delay function for the left motor to rotate 180 degrees clockwise.
[0102] ⑦Execute the right slide cylinder closing operation.
[0103] ⑧Set the right slide cylinder closing delay function.
[0104] The beneficial effect of this embodiment is: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination step of "arm 1 opens - arm 1 rotates 90 degrees - arm 2 rotates 180 degrees - arm 1 closes" can be reduced by -5ms+39.7+199.1ms-10ms-115ms+25ms=133.8ms, with an average reduction of 33.45ms per step (parameter adjustment basis).
[0105] Specific implementation: Using time planning, the robot arm's "Arm 1 opens - Arm 2 rotates 90 degrees - Arm 1 rotates 90 degrees - Arm 1 closes" motion. If Arm 1 is not fully open, Arm 2 rotates 90 degrees. Before Arm 2 completes its rotation, Arm 1 rotates 90 degrees. Finally, before Arm 1 completes its 90-degree rotation, Arm 1 closes. (Arm 1 and Arm 2 represent the left and right hands, respectively, and are interchangeable.)
[0106] Specific implementation method: Take the "left hand open - right hand rotates 90 degrees counterclockwise - left hand rotates 90 degrees - left hand close" action 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 rotation 90 degrees operation (set the STM32's GPIO4 pin to a low level, use the stepper motor rotation parameters for 90 degrees rotation, and make the stepper motor rotate 90 degrees counterclockwise). ⑤ Execute the left hand idle rotation 90 degrees operation (set the STM32's GPIO1 pin to a high level, use the stepper motor rotation parameters for 90 degrees idle rotation, and make the stepper motor rotate 90 degrees clockwise). ⑥ Set the right motor counterclockwise rotation 90 degrees 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: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination step of "arm 1 opens - arm 2 rotates 90 degrees - arm 1 rotates 90 degrees - arm 1 closes" can be reduced by 10ms+119.6ms-50ms+39.7ms+10ms=129.3ms, and the average reduction per step is 32.325ms (parameter adjustment basis).
[0108] Specific implementation: Using time planning, the robot arm's "Arm 1 opens - Arm 1 rotates 90 degrees - Arm 2 rotates 90 degrees - Arm 1 closes" motion. If Arm 1 is not fully open, Arm 1 rotates 90 degrees. Before Arm 1 completes its rotation, Arm 2 rotates. Finally, Arm 1 closes before Arm 2 completes its 90-degree rotation. (Arm 1 and Arm 2 represent the left and right hands, respectively, and are interchangeable.)
[0109] Specific implementation method: Take the "left hand open - left hand idle 90 degrees - right hand counterclockwise 90 degrees - left hand closed" action 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 (set the STM32's GPIO1 pin to a high level, use the idle 90 degree stepper motor rotation parameters to make the stepper motor rotate 90 degrees clockwise). ⑤ Execute the right hand counterclockwise 90 degree operation (set the STM32's GPIO4 pin to a low level, use the rotation parameters of the 90 degree stepper motor to make the stepper motor 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: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination step 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, and the average reduction per step is 32.325ms (parameter adjustment basis).
[0111] Specific implementation: Using time planning, the robot arm's "Arm 1 opens - Arm 1 rotates 90 degrees - Arm 2 rotates 180 degrees - Arm 1 rotates 90 degrees - Arm 1 closes" motion. If Arm 1 is not fully open, Arm 1 rotates 90 degrees. Before Arm 1 completes its rotation, Arm 2 rotates 180 degrees. Before Arm 2 completes its rotation, Arm 1 rotates 90 degrees. Finally, Arm 1 closes before Arm 1 completes its rotation. (Arm 1 and Arm 2 are the left and right hands, respectively, and are interchangeable.)
[0112] Specific implementation method: Take the "left hand open - left hand idle 90 degrees - right hand driven 180 degrees - left hand idle 90 degrees - left hand closed" action 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 GPIO1 pin of the STM32 is set to a low level, and the stepper motor rotation parameters of the idle 90 degrees are used to make the stepper motor rotate 90 degrees counterclockwise). ⑤ Execute the left motor delay function. ⑥ Execute the right hand counterclockwise 180 degree driven operation (the GPIO4 pin of the STM32 is set to a high level, and the stepper motor rotation parameters of the driven 180 degrees are used to make the stepper motor rotate 180 degrees clockwise). ⑦ Execute the right motor delay function. ⑧Execute the left hand idling 90 degree operation (GPIO1 pin of STM32 is set to low level, and the idling 90 degree stepper motor rotation parameters are used to make the stepper motor rotate 90 degrees counterclockwise) ⑨Set the left motor delay function. ⑩Execute the left slide cylinder closing operation. Side piece (11) sets the left slide cylinder closing delay function.
[0113] The beneficial effect of this embodiment is: through such operation, while the Rubik's Cube 12 robot successfully completes the operation, each combination step 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, and the average reduction per step is 34.7ms (parameter adjustment basis).
[0114] The above specific implementation method reduces the average restoration time by 34.7ms per step compared to before logic optimization, and the total restoration time is reduced by approximately 1.4s.
[0115] Specific implementation method: Use 5V11006B050 two-position five-way solenoid valve and 5V130E06B050 three-position five-way center-row solenoid valve in series, combined with MOS module, to achieve high-speed opening, closing and relaxation of the slide cylinder. The advantage of the two-position five-way solenoid valve is its fast operating frequency, which can reach 200ms / time, but its disadvantage is that it can only achieve two states of slide cylinder opening and closing; the advantage of the three-position five-way solenoid valve is that it can achieve a third state of slide cylinder relaxation, but its disadvantage is its low operating frequency of 333ms / time. Connecting the two solenoid valves in series can meet the advantages of the two solenoid valves and make up for their respective shortcomings. The air source is connected to the P end of the three-position five-way solenoid valve, and the A end of the three-position five-way solenoid valve is connected to the P end of the two-position five-way solenoid valve. The A end and B end 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: In the initial state, both solenoid valves are in the power-off state; when the STM32 control board receives the restoration solution, the STM32 sends information to the MOS tube to energize the A end of the three-position five-way solenoid valve.
[0116] The A end of the two-position five-way solenoid valve is ventilated, so that the slide cylinder is clamped; the two-position five-way solenoid valve is energized, and the B end of the two-position five-way solenoid valve is ventilated, so that the slide cylinder is opened; when the restoration is completed, STM32 receives the information, the A end of the three-position five-way solenoid valve is de-energized, and the gas in the slide cylinder is discharged, so that the slide cylinder is in a relaxed state.
[0117] The beneficial effects of this embodiment are: ① The frequency of the double-arm Rubik's Cube 12 robot's restoration process is accelerated. ② The relaxed state facilitates the precise placement of the Rubik's Cube 12, enabling the computer to start the restoration operation with one click. ③ The relaxed state facilitates the removal of the Rubik's Cube 12 after the restoration is completed, reducing the time it takes to place the Rubik's Cube 12.
[0118] Excluding the time wasted in picking up the Rubik's Cube 12, the total operation time can be reduced by about 2 seconds.
[0119] Specific implementation method: Write and debug the motor host computer program, and press the computer keyboard letters to realize the operation of the corresponding steps of the motor. Operation mode: ① Run the program. ② Press the
[0120] Press the key to execute the step.
[0121] The beneficial effects of this embodiment are: greatly reducing the time for debugging the motor and facilitating
[0122] Problems were found during the test.
[0123] 1. Mechanical step coding and coordinated control:
[0124] Define the robot state set:
[0125] S = {normal, left arm rotated 90 degrees, right arm rotated 90 degrees};
[0126] Action instruction set:
[0127] A={open, close, twist 90 degrees, twist 180 degrees, belt turn 90 degrees, belt turn 180 degrees, idle 90 degrees}
[0128]
[0129] Three state codes avoid robot arm interference, and string mapping reduces communication load.
[0130] 2. Time overlap optimization algorithm;
[0131] Take "open-idle 90°-close" as an example:
[0132] Assume t open is the cylinder fully opening time (65ms), t rotate is the idling time (39.7ms), t close The cylinder fully closed time (130ms)
[0133] Total time after optimization T optimized satisfy:
[0134] T optimized =max(t open ,t rotate +δ start )+max(t close -δ advance ,t rotate )
[0135] where δ start is the delay time for opening to trigger idling (the experimental setting parameter is 10ms), δ advance T is the offset of early closing (20ms). optimized =65ms+130ms-20ms=175ms, saving 69.7ms.
[0136] Multi-arm coordination logic: (taking "left hand open - right hand 90° clockwise drive - left hand 90° idle rotation - left hand closed" as an example);
[0137] start(arm1_open) opens the left hand - delay(δ_start) waits for the safe angle - start(arm2_drotate90_1) rotates the right hand 90° clockwise - delay(t_drotate90_1-δ_overlap) before the rotation is completed - start(arm2_krotate+arm2_close-δarm2_krotate) performs idle rotation + closing operation in advance;
[0138] By δ overlap and δ arm2_krotate Controlling the overlapping windows of actions reduces the total time consumption by 129.3ms;
[0139] Solenoid valve coordinated control logic:
[0140] Air circuit control logic: Assume that the two-position valve state V2∈{0(closed), 1(open)}, and the three-position valve state V3∈{0(relaxed), 1(pressurized)};
[0141] The cylinder logic is:
[0142]
[0143] The two-position valve has a response speed of 200ms / time, and the three-position valve can achieve zero pressure state.
[0144] 3. Theoretical verification of time optimization algorithm;
[0145] Time complexity model:
[0146] For n-step actions, the traditional serial
[0147] Time consuming after optimization Where m is the number of parallel action groups (m<=n);
[0148] The average reduction per step is Δt = 34.7ms;
[0149] Action overlap constraints:
[0150] Action a i with a j Overlapping needs to be satisfied;
[0151]
[0152] This avoids the risk of self-collision.
[0153] The above is only a further embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any technician familiar with the technical field can replace or change the technical solution and concept of the present invention within the scope disclosed by the present invention, which falls within the scope of protection of the present invention.
Claims
1. A dual-arm Rubik's Cube robot with fast linkage operation, characterized by: It comprises a base (1), on which a gantry assembly is mounted; A lighting group is provided on the gantry group for illuminating the magic cube (12); Two groups of mechanical arm groups for adjusting the magic cube (12) are arranged at the bottom of the gantry group.
2. The fast-linked dual-arm Rubik's Cube robot according to claim 1, characterized in that: The gantry assembly comprises a gantry (3) and a base frame (10), wherein 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) through side pieces (11).
3. The fast-linked dual-arm Rubik's Cube robot according to claim 1, characterized in that: The lighting group includes a lighting ring (2) and a camera (4); Cameras (4) are installed at the top middle of the base frame (10) and on both sides and the top of the gantry (3); Illumination rings (2) are provided on both sides and the top of the gantry (3) with the camera (4) as the center.
4. The fast-linked dual-arm Rubik's Cube robot according to claim 1, characterized in that: The mechanical arm assembly includes a stepping motor (9), a coupling (8), a transmission frame (7), a clamping adjustment member (6), an air claw (5), and a rotating connecting plate (13); Stepper motors (9) are installed on both sides of the top of the base frame (10). The output end of the stepper motor (9) is installed with a rotating connecting disk (13) through a coupling (8). The outer end of the rotating connecting disk (13) is installed with a clamping adjustment member (6), and the output end of the clamping adjustment member (6) is provided with an air claw (5) adjusted by the clamping adjustment member (6).
5. The fast-linked dual-arm Rubik's Cube robot according to claim 1, characterized in that: The outer end of the stepper motor (9) is mounted with a transmission frame (7), the output end of the stepper motor (9) passes through the transmission frame (7) and is connected to a coupling (8), and the coupling (8) is located on the inner side of the transmission frame (7).
6. A method for quickly adjusting a Rubik's Cube with a fast linkage operation, based on the fast linkage operation dual-arm Rubik's Cube robot of claims 1-5, characterized in that: The robot arm group status and the mechanical steps of opening, closing, twisting, belt rotation and idling of the air gripper are encoded into a string of information and transmitted to the lower computer through the serial port for execution. The left-hand operation corresponds to lowercase letters, and the right-hand operation corresponds to uppercase letters. The microcontroller stops solving after receiving the character f. A multi-threaded Python program written in PyQT5 integrates camera control, Rubik's Cube recognition, solving, and motor restoration functions, and displays the solving mechanical steps, recognition time, solving time, mechanical execution time, and total restoration time in real time. Use MOS module as 24V level conversion element, and control MOS module to achieve 24V / 0V level conversion through GPIO port output of 3.3V / 0V voltage, 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 will simultaneously execute an idle 90-degree motion and start the closing motion in advance; When arm 1 is not fully opened, arm 2 rotates 90 degrees or 180 degrees, and starts the closing action of arm 1 before the rotation is completed; In the order of opening, rotating, idling, and closing, the total time is reduced by overlapping the execution of each action. 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 staggered according to the delay function; Connect a 5V11006B050 2-position 5-way solenoid valve and a 5V130E06B050 3-position 5-way solenoid valve in series. Connect the air source to the P end of the 3-position 5-way solenoid valve, and its A end to the P end of the 2-position 5-way solenoid valve. The A and B ends of the 2-position 5-way solenoid valve are connected to the two ends of the slide cylinder. The solenoid valve is controlled by STM32 to switch between the clamping, opening and relaxing states of the cylinder. Motor debugging program: Write a host computer debugging program to trigger the motor to execute the corresponding mechanical steps through keyboard buttons.
7. The method for quickly adjusting a Rubik's Cube with rapid linkage operation according to claim 6, characterized in that: In the optimization of the robot arm motion time planning: The time taken for the single arm opening-90-degree rotation-closing combination step was reduced by 69.7ms; The time taken for the combined steps of arm 1 opening, arm 2 rotating 180 degrees, and arm 1 closing was reduced by 104.1ms. The time taken for the combined steps of arm 1 opening - arm 2 rotating 90 degrees - arm 1 rotating 90 degrees - arm 1 closing was reduced by 129.3ms.
8. The method for quickly adjusting a Rubik's Cube with rapid linkage operation according to claim 6, characterized in that: In the solenoid valve combination control: the two-position five-way solenoid valve operates at a frequency of 200ms / time, realizing rapid opening / closing of the cylinder; When the three-position five-way solenoid valve is powered off, the cylinder is in a relaxed state, making it easier to place and remove the Rubik's Cube, reducing the total operation time by 2 seconds.
9. The method for quickly adjusting a Rubik's Cube with rapid linkage operation according to claim 6, characterized in that: It also includes defining the robot state set S and the action instruction set I, implementing state encoding through the mapping function f:S→I, using three state encodings to avoid robot interference, and reducing communication load through string mapping; The time overlap optimization algorithm is used to plan the action time, including: Single-arm movement time overlap: Assume that the time for the cylinder to fully open is t open =65ms, idling time is t rotate =39.7ms, the cylinder fully closed time is t close =130ms, by setting the opening trigger idling delay time δ start =10ms and early closing offset δ close =20ms, the total time required is: T=t open +t close -δ close =175ms; Time saved is t rotate +δ close -δ start =69.7ms; Multi-arm coordinated action time overlap: Take the left hand opening, right hand 90° clockwise driving, left hand 90° idle rotation, and left hand closing as an example, by controlling the action overlap window δ overlap , reducing the total time by 129.3ms; Perform coordinated control of the solenoid valves, set the two-position valve state V2 and the three-position valve state V3, and the cylinder logic meets specific control rules. The two-position valve response speed is 200ms / time, and the three-position valve achieves zero pressure state. Theoretical verification of the time optimization algorithm includes the time complexity model: For n-step actions, the traditional serial time is After optimization, the time taken is Where m is the number of parallel action groups (m≤n), and the average reduction per step is Δt=34.7ms; The action overlap constraint is: action i and action j can overlap only if start(j)≤end(i)+δ safe , in order to avoid the risk of self-collision.
Citation Information
Patent Citations
Magic cube solving robot of two-arm and two-finger structure
CN108748151A
Double-arm human-hand-simulated full-automatic magic cube restoring robot
CN113084840A
Double-arm magic cube solving robot and restoring method thereof
CN113524149A
Double-fork-arm magic cube solving robot based on image processing
CN115946134A
Control method of double-arm four-finger structure robot for magic cube recovery
CN116117819A