Subsystem Build & Test
Table of Contents
During this phase, the final robot needed to have been completed in order to participate in the Motorama battle bots competition. This included chassis machining, electronics and hardware assembly, and coding. This was in line with our accelerated schedule.
Team Vision for Subsystem Level Build & Test PhaseOur team sought to complete the transitional drift robot for use in the Motorama battle bots competition. The chassis of the robot would be machined, as well as the motor components. We sought to finish assembly of the robot, including PCB and electronics, hardware, and chassis assembly. With the robot assembled, we would begin to implement and test the code on the robot: namely, we would implement the heading estimation, Persistence of Vision display, and drive control.
The chassis and components were machined with some errors, which were addressed as they became apparent. These were mostly issues with wire placement and friction with the wheels and motor. Unfortunately, friction issues still exist, and led to the melting of a pulley belt due to the generated heat.
In regards to the electronics, initial issues were experienced in generating enough torque from the brushless motors, but these issues were soon resolved by changing the firmware used with the motor controllers. Some wiring issues existed, but space was machined in the chassis, mostly resolving the issue.
The robot as a whole assembled easily enough, though some of the rubber padding had to be removed, particularly from around the wheels. The wheels elevated the bot high enough that it would be able to spin without the bottom touching the ground. However, some friction still exists with the wheel and motor assemblies.
With the robot fully assembled, even with error, we hoped to code it enough to get Persistence of Vision working and to create translation with the robot. Rotation has already been doable since last semester. Something resembling POV was achieved, though it was not accurately showing the forward direction. Configuration modes were added to improve this. Translation could not be made to work for Motorama, so tank controls were added instead, to turn the robot into a ramming machine instead.
The intention was to compete in Motorama with these modified controls. However, further issues with the wheels prevented the robot from functioning correctly. As such, we were unable to compete in Motorama.
Test Results SummaryElectrical testing initially revealed issues with motor drive, solder bridging, and motor speed control. The motor drive issues were solved by matching the ESC firmware to the motors using the BLDC tool used to configure the ESC's. Solder bridging was fixed by conducting continuity tests and removing the excess solder. Motor speed control issues were solved by switching to PPM control of the motor RPM. Mechanical tests initially revealed very high internal friction between the wheels and the chassis via the pulleys. These initial issues were fixed by adding additional space. After these changes, the system was demonstrated to be partially functional after uploading initial firmware. However, substantial internal friction and misalignment issues remained, limiting the run time and edge speed of the bot. THese issues culminated in significant internal heating, unexpectedly melting one of the V-belts. A new V-belt was purchased, and tank-drive style firmware was written to allow the robot to pass safety inspections at Motorama. Unfortunately, the internal friction issues returned, preventing Polar Storm from operating properly and causing a forfeit of the match.
Fabrication and Test
PCB Design in Eagle .brd files can be found on the project github. Image appears sideways because of edge, not because of image formatting.
PCB Design as seen in eagle. The front side of the PCB was milled at the construct, while the full PCB was ordered from OSH Park.
PCB design was exported to GCODE for milling at the construct
The PCB was milled using a gcode controlled cnc mill at the Construct
The above video shows the initial trace milling, later the slew speed was reduced significantly to reduce wear and breakage of the micro end-mills.
Slew rate when machining the traces was reduced to prevent breakage of the micro end-mills
PCB halfway finished
PCB mostly finished
Through holes were drilled in the PCB to mount the components.
Finished PCB before trimming edges and removing shorts between magnetometer pins
The copper on the back of the PCB was removed to prevent shorting and the headers were soldered to the pads on the through holes.
Side View of PCB with headers, Teensy 3.2 was placed in its socket. The extra pins on the front side were later removed
Jumpers were added to replace the missing connections on the bottom side of the PCB, as the construct is only able to produce single sided boards. Initial soldering produced some shorting which was later fixed.
The connectors for the LED strips were soldered to their respective headers, and some shorting between various nodes was eliminated.
This shows the components in their sockets on the PCB after some testing, some more shorts were found and fixed.
Control and drive circuitry with all components
At first the ESC's had trouble driving the motors properly, this was fixed with a change to the VESC's configuration, which resulted in oscillation when unloaded, but proper operation when under load.
Initially, there was not space for all of the wiring, due to the low wire gauge. This was later fixed by cutting additional channels in the chassis.
Additional space was made in the chassis to allow for wiring.
Significant internal friction and low start torque on the BLDC motors appeared prohibitive to the proper functionality, preventing the wheels from spinning, However, after some reconfiguration and changes to the VESC firmware, the motors were able to spin the wheels. This video shows the motor in current controlled mode.
After the initial issues with motor startup were solved, the motors were put in RPM control mode based on PPM outputs from the Teensy 3.2 and throttle data from the transmitter.
The full system was tested and had issues with maintaining edge speed and stability, this was due to a large amount of internal friction on one of the wheels.
The extra PCBs from OSH Park arrived and the headers were soldered on
The Full System was again tested, with revised code that ran the POV display, The POV display required additional calibration, but the system worked as expected. Again, internal friction caused issues maintaining desired edge speed over extended periods.
Motorama 2018 was both a success and failure for us. The night before we were scheduled to leave for Motorama 2018 we were met with a big challenge due to a catastrophic failure of one of our v-belts. Jimmy and Stephen however, decided to go to Harisburg, PA with the broken battle bot in hopes to show it off and get advice to improve the design. What happened instead was help from several other competitors the night before competition to get the bot running again. A new v-belt was made and tank drive controls were made and put onto the microprocessor in the bot. We had a running bot that was off to safety inspection. We passed safety inspection and were ready to compete in the morning. An unfortunate event happened again and our bot during a morning test began to smoke and became once again inoperable. We were forced to forfeit and were unable to compete. We did receive a handful of helpful tips to help improve our design so our bot would not have these failures again.
While there we checked out a couple other interesting bot designs.
Risk and Problem Tracking
Plans for next phaseTeam
- Finish Meltybrain Code
- Incorporate Magnetometer Readings into Code
- Fix Wheel Issues
- Fix High Internal Friction
- Fix Belt Slipping
- Fix Heat Buildup
- Test Revised System
- Change V-belts to Timing Belts
- Work with Alex on software
- Debug issues revealed in testing
- Evaluate plausibility of smaller design
- Depending on feasibility design smaller bot
- Change V-belts to Timing Belts
- Refine code
- Clean code
- Devise Alternate Methods of Heading Calculation
- Add Magnometer readings
- Fix motor code
- Finish up Imagine RIT enrollment.
- Take a break from senior design.
- Smaller Robot Feasibility.
- Component/Design Modifications for smaller bot.
- Help with testing.
- Look into Arena Designs/parts for ImagineRIT.
|Stephen Pasek||Jimmy Kramer||Alex Howard||Rob Sokolowski||Jacob Harrell|