rubik’s cube solving robot - mitweb.mit.edu/.../knopf_project_design_presentation.pdf · motor...
TRANSCRIPT
![Page 1: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/1.jpg)
Rubik’s Cube Solving Robot
Nathaniel KnopfJacob Swiezy
![Page 2: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/2.jpg)
Rubik’s Cube
● 4.3×1019 permutations● World record time: 4.59 seconds● 3 types of pieces
○ Centers (fixed)○ Edges○ Corners
![Page 4: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/4.jpg)
Motivation
● Robot in previous video: C++ → Arduino → Robot
● Some others implemented entire processor on FPGA, wrote C code
● We’ll actually implement the solution on an FPGA
![Page 5: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/5.jpg)
Hardware Components
● Nexys 4● 6 stepper motors● 6 stepper motor drivers● 6 3D printed shaft-cube couplers● 2 RGB color sensors● Laser cut acrylic frame● Rubik’s Cube
![Page 6: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/6.jpg)
● NEMA 17 Bipolar Stepper Motor● A4988 Stepper Motor Driver● 2 Part 3D Printed Shaft-Cube Coupler
Stepper Motors
![Page 7: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/7.jpg)
Color Sensor
● Communicates over I2C● Returns 16-bit RGB values● On-board bright LED for
consistent lighting conditions
![Page 8: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/8.jpg)
The Frame
● Laser cut from ¼” acrylic● Rigidly bolted together● Removable top allows for cube to
be removed and scrambled
![Page 9: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/9.jpg)
Modules
3 stages
● Determining state of Rubik’s Cube● Planning a solution● Executing planned solution
![Page 10: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/10.jpg)
Stage One: Determining State of Rubik’s Cube
● State: 162 bit register○ 54 pieces * 3 bits for colors (WOGRBY)
● Color Reader module○ Two color sensors - one for corners, one
for edges○ Color Reader module outputs color of
piece it sees
● Spin All module○ Contains sequences of moves for
viewing all pieces
● Populate State module○ Manages applying moves from Spin All ○ Stores values from Color Reader module
in cube state register
0 1 2
3 4 5
6 7 8
9 10 11 18 19 20 27 28 29 36 37 38
12 13 14 21 22 23 30 31 32 39 40 41
15 16 17 24 25 26 33 34 35 42 43 44
45 46 47
48 49 50
51 52 53
![Page 11: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/11.jpg)
Solving a Rubik’s Cube
● Algorithms○ A sequence of moves to exchange specific pieces of the Rubik’s Cube
● Methods○ Set of algorithms to solve the
Rubik’s Cube○ “Beginners Method”
![Page 12: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/12.jpg)
Stage Two: Planning a Solution
● Solving Algorithm module○ Input: cube state register○ Output: next move in solving the Rubik’s
Cube○ FSM - each state is a step of the method
chosen
● Queue module○ Collects moves output from the Solving
Algorithm module○ Outputs moves to sequence module in
combined list
● Sequence module○ Stores the moves to be executed so
Motor module can access them.
![Page 13: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/13.jpg)
Stage Three: Executing Planned Solution
● Motor module○ Pulls moves one-by-one from sequence module○ 18 possible moves
■ CCW rotation of each face■ CW rotation of each face■ 180º rotation of each face
○ Next move translated into appropriate hardware signals for stepper motor drivers○ Move executed by driving stepper motor driver
![Page 14: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/14.jpg)
Timeline
![Page 15: Rubik’s Cube Solving Robot - MITweb.mit.edu/.../knopf_Project_Design_Presentation.pdf · Motor module Pulls moves one-by-one from sequence module 18 possible moves CCW rotation](https://reader034.vdocuments.net/reader034/viewer/2022050719/5ed837720fa3e705ec0e0d78/html5/thumbnails/15.jpg)
Questions?