The goals of this project are to:
Create a controllable drive base
The drivebase should have two motors/gearboxes and wiring for all electrical components
A remote controller should be used for driver input
Choose the best suited configuration (by testing):
Drivebase geometry - Wide and short, Long and narrow, Square
Drivetrain - Front/Rear/All wheel drive
Gear and sprocket ratio
Wheel size - 6 inch, 4 inch, and 2 inch wheels
Wheel type - Traction, omni, and grip wheels
The two potential drivebase sizes were 12x24 and 18x18. The below diagram shows what size of wood must be cut to fit these configurations.
18x18 drivebase breakdown
12x24 drivebase breakdown
We recieved a completed 12x24 drivebase from Semester 1's Minibot Prototype, but there were several flaws with the configuration.
We noticed that the horizontal 2x4 is too long, making the drivebase exceed 24”, causing protrusion out of the belly plywood sheet. To resolve this, we accounted for the difference in the wood’s thickness and used the miter saw to chop the wood down to length. We also assembled 2 gearboxes at a ratio of 3:1 (54-tooth MAX spline : 18-tooth hex shaft) for use in our drivebase planning and later on. Here is the planned electronis layout of our drivebase after day 1:
In Week 2, we finished drilling all of the mounting holes for our gearboxes. We mounted them to the wood on the side of our drivebase. After mounting our gearboxes, we took bearings and used the arbor press to press them into the wood. The drill bit we used to drill the bearing holes gave us a perfect press fit.
Gearbox Mounted on Wood
Side View of Gearbox/Wood
We got our drivebase back together and were able to deploy some code onto the arduino and get it running!
First, we got our hex shafts lathed. These two shafts are designed to be used with a sprocket and attached directly to the gearbox shaft. The tolerance is slightly more than desired, but it functions well. We used a sprocket that supports two chains, as we plan to first test a 4-wheel drive with both the front and back wheels being powered. It can be turned into a rear/front-wheel drive by removing a chain.
We made measurements for our hex shafts on the back two wheels of our drivebase to the gearbox. We then marked these measurements down to lathe. The bulk of this week was spent lathing our shafts. I was able to lathe the sprocket and bearing e-clip holes for one shaft. I also used the bandsaw to cut down the hex shaft to length. My group members worked on the rest, and we all were together to make sure minimal error was present.
We also fixed controller lag from our controller to the Arduino’s code. There was a noticeable (>1s) delay from when a joystick was moved to when the code responded with a motor rotation. We debugged this by adding Serial.println’s throughout the code that tracked the timestamp in millis() to count the length of each operation. We discovered that reading from the PWM pins on the Arduino takes a long time, if you attempt to read from all ~8 pins at the same time. We reduced this to only reading from the two pins that we needed to have a functioning forward/backward movement, and our delay issue was fixed.
We successfully lathed and assembled all modules of our drivebase, connecting them to our motor with chain. We used the chain tool to break apart chain to the correct length for our robot. Due to prior design, there is minimal skipping on the chain and it is tight to the sprockets. We lathed hex shafts for each motor (two this week) and put them through the hex bearings. We attached omni wheels to our drivetrain, and tested code that allowed them to move forwards.
The Left Wheel
The Right Wheel
We tested this, going full throttle. It works, and the chain doesn't slip!
Finally, we lathed the hex shafts for the front wheels and attached chain.
We got an arcade drive code working. This means we can use one joystick to control rotation (y axis) and driving forward/backward (x axis). Our drivebase moves quite fast and is quite performant. Here is a video:
The one issue we found was that both of our motor gearboxes were wiggling, as they were not tightened properly. We plan on fixing this to avoid damaging the motor.
These few weeks, we started to test different configurations. This time, we tested grip wheels and traction wheel combinations. This included full traction wheel, full grip wheel, half traction/grip, half traction/omni, and half grip/omni. We started testing on the actual obstacles as well.
We tested a unique configuration where we had a back wheel driven directly by the motor.
This project is not complete yet. It will be finished in the second semester.