Rover
Hardware- 12 Devlogs
- 44 Total hours
Rover that can drive over obstacles, intake and shoot tennis balls into a bucket. Was also meant to hang on a bar and drive autonomously but didn't finish. Funded by Definity Education
Rover that can drive over obstacles, intake and shoot tennis balls into a bucket. Was also meant to hang on a bar and drive autonomously but didn't finish. Funded by Definity Education
The final test day is Wednesday afternoon which is pretty concerning since I just got every part to work and now I need to make it autonomous but just got to believe.
Both of these days where pretty lazy but all of Friday was spent wiring everything. The first new thing I tested was the pivot and I didn’t realize that the intake motor would hit the corner so I kept trying to turn it and it drew so many amps that it started to smoke and got incredibly hot. But I just shaved down the chassis and that fixed it. Everything else including the intake and flywheel motors were fine but then the breakout board didn’t work. This was because an aluminum chip had fallen onto the chip on the board and shorted it so I just switched it out.
Today was spent troubleshooting errors and really testing everything out with the new wiring. A couple of the problems I faced were because I hadn’t stripped some wires enough so that the splitters I used would work. Also that some wires weren’t long enough so I used extenders. I also used CodeX to help me write some code so that I could control everything from my computer manually.
Before the sheet metal arrived yesterday I spent time finishing the design of the inner guide rails and the arm that would attach to the servo that blocked the balls from escaping through the turned off flywheels as it drives. I got my idea from a pinball arm with a wider rounded back end and a smaller rounder front end so that the tennis balls may not get stuck when they open. This is the only electronic I am left to test.
Once the sheet metal arrived I started to attach all wheel motors and wheels to the new chassis. I had to deburr the holes for the motors a bit since they were too small but I got it done before the end of the day.
Almost all of today was spending building and assembling. I started by attaching the pivot motor to the chassis and the pillow bearing on the opposite wall. I then mounted the flywheels onto the intake frame and tested them out. They spun pretty fast around 2000 rpm but did have to be angled quite high to launch far. Then I spent a lot of time mounting the intake onto the pivot motor and chassis. I struggled a bit with getting the screws on since there were so small gaps to fit them in. Lastly I mounted the inner guide rails.
I then tested the pivot motor at 16rpm and it worked great, being able to turn the whole intake easily and with it locking position when it is not moving. The intake motor though is 80rpm and it is too slow for the intake as it seems to just push away the balls so I bought a 160rpm motor to try and fix that.
First thing tomorrow is doing the wiring and putting some rubber on the intake rollers.
Since all of the parts for the flywheel subsystem finished printing overnight I assembled it first thing today. I got all the bearings, collars, wheels, and pulleys on the shaft and put them onto the top plate.
I then soldered both of the motors onto a relay of their own then then the motor negatives onto the battery’s. I had to expand the splitters attached to the batteries so that there would be enough ports to power everything.
The sheet metal parts got delayed again and would be complete tommorow and thankfully the test day got moved back for the final time. Honestly this manufacturer the parts have been sent to is not great and I could probably find a better option.
Lastly, I finished modeling the guide rails that go inside the intake so that I can attach a servo onto them and have an arm that blocks the balls entering the flywheel before then. I left them 3D printing overnight so that tomorrow I can assemble everything.
Tomorrow will be only an assembly day hopefully with a bit more testing the lidar.
All of Friday was spent finalizing the model for the Flywheel and intake including the top support plate that would hold both Flywheel motors and give the Flywheel shafts a bearing on the top as they have on the bottom.
I also started to print most of the small pieces like the shaft collars, inserts for the bearings to make them fit the hex shaft, and spacers for the flywheel shafts. There were some struggles with printing for a bit but I figured out that flow calibration needed to be done every time which wasn’t true before but whatever works works. Since the TPU was even more iffy I only printed two rollers which I left overnight.
Monday I was able to talk with a person in the aerospace industry and visited a company nearby which gave me a better idea of what a hard tech company is looking for in applicants.
Then I started to assemble the Flywheel shafts though I was missing some 3D printed pieces so I also got everything printed today. But the sheet metal hadn’t arrived so I couldn’t do too much after this so I started to use the lidar. Thankfully the deadline was pushed to tomorrow.
I connected the lidar with the Raspberry Pi and used CodeX to help me write a basic program that would display what it sees while excluding a .25 meter range since I just had it in the chassis which was blocking it seeing 360 degrees. In the next few days I hope to integrate this with the camera and IMU to at least get the cone slalom autonomous soon.
Like yesterday’s devlog, today was mainly a modeling day with getting the collars, spacers, inserts, and belt pulleys on the shafts. I also designed a top support plate which will also be where the motors are attached, which I’ll work on tomorrow.
While I worked on the CAD I had printing some test shaft collars and inserts for the flywheels. Printing these items ultimately was due to how long it would take for real metal ones to ship and with the deadline being tomorrow there wasn’t much time. But there were some issues in printing today possibly due to using brand new filament and I might have refilled it wrong.
After fully modeling out how the shaft of the flywheels would look like I cut them out of a stock ½” hex shaft at 4” long each. I also cut out the shafts for the intakes at 8.25” long each. Yet I don’t think it will be done by tomorrow afternoon as I’m still unsure when the cut and bent sheet metal will be done and it will take a while to print every piece needed.
Lastly I bought a 2D Lidar so that next week I can give the robot true vision with it being able to always know where the cones are not just based on how tall they are in the video feed.
Today was only a CAD day. I spent the first few minutes writing down what I needed to model today which included modifying the drivetrain chassis so that the pivot system can be attached and drawing out the holes for the flywheels on the intake so that we can order both pieces.
I started by making the holes for the pillow bearings which would be on the opposite side of the pivot motor. Then placed my drawing from yesterday of how the flywheels would look like onto the far end of the intake.
I made holes into the intake of where the bearings would go, then added some motor mount holes on the side of it, and finally some holes to add a guide rail inside the intake itself. Also since the flywheels would have a pretty small amount of clearance I added some holes into the wall of the intake to allow for it to increase in diameter when spinning quickly so that it wouldn’t hit the wall.
Lastly, I started to fully model what the flywheel would look like including the bearings, shaft, flex wheels, and belt pulleys. I still need to adjust the length of the shaft and get the motors in the right positions.
It also needs a few more constraints as seen in the video of it pivoting.
I had left printing the three new wheel rims I needed for the new hubs but unfortunately it ran out of black filament half way through the night, so I needed to switch over to gray filament this morning. Eventually they printed and turned out good enough, so I started taking off the old rims from the tires and it was as much of a struggle as putting them on or more. I had to rip off the outer part of the rim but after a couple hours I got them done.
The next part that needed some tweaking was the dead reckoning program as like before it lost where it was after not seeing a cone. Today I used CodeX to make it so that the robot keeps tracking where it was using the accelerometer on the IMU to determine where it is from the cones but now it didn’t remember the last distance from the cones before it didn’t see them so it was way off. This is something that will take a lot more modifying with just the IMU and camera so like I said before it might just be easier to get a lidar system, which I’ll think over tomorrow.
Lastly, I modeled out how far apart every component of the flywheel system has to be so that tomorrow I can cut holes into an extra piece of sheet metal and model it before ordering the actual sheet metal. Based on the model I 3D printed a motor mount bracket to support where the motor should be.
The next test date is this Friday and it will not be moved so the intake, pivot, and flywheels will probably not be completely done by then which sucks.
Friday morning was mostly spent buying pieces for the flywheel shooter and pivot system for the intake and flywheels. I bought a strong enough worm gear motor to only use it on one side and just use a bearing on the other side. Since for the flywheels it would be easier for each to have their own motor I bought two 775 DC motors that I would gear down to ~2,000 RPM. Tomorrow I hope to test them.
Since the IMU arrived I thought I might be able to use it and set cone coordinates to always have true room coordinates and Dead Reckon on that. A small problem that I encounter right now is that after the cones are out of sight the calculated distance between the IMU and the cone doesn’t change until it sees the cones again. To fix this I might try to get the ratio of what increase of the IMU value is equal to an inch and base it on that or possible by a cheap 2D lidar system.
New hubs arrived so I quickly modified the wheel rim CAD and printed them. Now they don’t need as much force to put the tire on.
Lastly I designed how and where the high torque worm gear motor would attach onto the intake through hubs and what the other side would look like including pillow bearings and a shaft.
Soldered broken 3 phase motor wire back together. Rearranged electronics and wires to lessen the stress on the wires. Calculated necessary motor strength to pivot the intake mechanism.
Again the test date got pushed back a day but this gave more time to fix some issues like the ripped motor wire. I was able to solder it back together by taking the motor apart and finding where the wire broke. I applied some shrinkwrap onto the wire and then a bigger shrinkwrap to join all three wires so that they share the stress if bent.
The reason the wired broke was likely due to it rubbing against the back section of the chassis when the front section pivots. I did some wire management so that this wouldn’t happen, which also made the rover look a bit nicer.
After a bit of driving the rover making sure that the new wire arrangement worked, I learnt how to calculate torque and how to compare that to servos. Initially I thought that servos would work as the intake would only have to pivot around 30॰, but after the calculations it would be necessary to use a linkage since servos within our price range would be too weak. So I looked into worm gear motors with ultra low rpm, around 15 rpm, which would hopefully provide enough torque to rotate the intake.
The test date also got pushed to tomorrow so the IMU, which arrives tomorrow, would give us a better way to dead reckon.
June 22
Added more support braces to metal chassis. Rearranged electronics to make room for an intake and worked on autonomous cone slalom. One wire of a wheel motor tore off and needs to be replaced or repaired.
From yesterday’s few tests driving the rover at speeds above 25% the chassis seemed to bend inwards, especially with the new 8” inch wheels. So I designed braces that would go on the back section of the chassis and made a piece to link both L- support braces.
While the supports printed I rearranged the electronics onto most one side of the chassis in order to fit the intake in the middle.
Since the next test date got moved to Thursday I had more time to try and get the rover to do the cone slalom autonomously. A majority of the time spent was adjusting values like what percentage of the cone should be on the screen before it stopped turning.
I later decided after a couple hours of not much luck to switch over to dead reckoning. I had CodeX make me a program to record and replay inputs which worked semi consistently but varied a lot since I couldn’t start the rover in the exact same position.
After running the dead reckoning multiple times I saw that one wheel wasn’t really spinning. I looked into this and realized that one of the 3 phase motor wires has come off the motor. I’ll try and repair it tomorrow but it may not be possible. So for Thursday the rover might just need to run off three motors
June 21
The slight shift of the hubs from the motor shaft was troubleshooted for the first half of the day. The second half was spent working on the autonomous slalom through cones, with it being able to go around one for now.
I started off the day by assessing what had gone wrong previously and found that I should focus on the wheels slipping off the motor shaft if I wanted the rover to clear the obstacle course and hill by Wednesday. I spent a lot of my time designing new hubs but I found that the main issue for why the hubs slipped off was that the Loctite on the screw holes had not dried yet. So I wasted too much time on this but I did learn how to make drawings to send to manufacturers.
The second half of the day was spent using CodeX to make a program to go around the cone with a camera attached to the Raspberry Pi. A majority of this process was testing values like what percentage or where on the screen the cone should be in order to start turning. I was eventually able to get it to go around one cone but it would target the third cone in the slalom before the second one. I definitely want to work more on this tomorrow.
Another task for tomorrow is designing and printing support braces for the aluminum chassis which saw some bending especially when turning. (I made the turning back to standard tank drive as the set screws were as big of an issue)