The goal of this project is to make a mecanum wheeled robot, from scratch, and use ultrasonic sensors to have it park in an open slot. There were many parts to this project, making the side plates, the sub-wheels, the wheel mounting hub, the frame, the motors, the wiring, the control board, and the programming.
This is the first revision of the auto-parking code, this still has a few bugs in the code where the robot crashes into the corner because it believes it has to line itself up again to be parallel with the wall, right after the front ultrasonic sensor detects the back wall.
It also takes some time to make itself perfectly center in the gap (a second or two), this will be fixed in future revisions.
Not all of the electronic components came out of the box for the robot, the relay for the motors needed some adjustment(the motor controllers could not spin the motors backwards, these SPDT relays switched the polarity), they could not handle the amps that would pass through them. They originally looked like these...
I had to remove the blue relays and replace them with these ones.
All the electronics are placed on the under side of the plywood on top of the robot. The wires leading up to the motors have connectors on them so if I later choose I can remove ten screws and the entire frame becomes free from the electronics board. This way I can use the same electronics board for different drive bases.
Motor speed controller
Here is an early stage of the wiring, Arduino Mega mounted, and powered, the two relay's mounted, a motor controller mounted, and power distribution boards mounted.
The robot communicates with the control board via the X-bee wireless communication chips, both on the Arduino Mega, and the Uno on the board.
To make the sub-wheels I had to make a mold, unfortunately I do not have any footage of the mold being manufactured, but it was also made on a CNC mill. Here is what it looks like.
The round aluminium bar in the mold is the center of the rollers. It used to be a solid 3/8 bar stock, but I cut it to length, and drilled a 3/16 hole in it. The ridges in the aluminium is done on purpose so the non-expandable polyurethane is less likely to slip off.
Here is a video of me making the sub-wheels. Each wheel required 15 in my design, with four wheels that is 60 total.
In case you can't view the video here is the final product. The process required mixing the two parts of the mixture for the non-expandable polyurethane, in a 4:1 ratio, and slowly pouring the mixture into the mold, to let air out. Then I waited for a couple hours(time depended on the temperature, on hotter days the reaction was faster). Once the reaction was finished, I took the wheels out of the mold, and cut the access.
The side plates of the mecanum wheels had to be very precisely manufactured. That is why I designed them in Autodesk Inventor, and had them manufactured by a CNC mill. Each one took about 45 minutes to make, and I needed 8.
Once they were out of the CNC mill I made this jig that would help me bend each one of the flaps at a 45 degree angle. The grooves on the bend points were made by the CNC mill to help me bend the plate.