While at the University of Maryland, I was a part of and helped lead Team Autocycle, a student research team working to design and build a self-driving bicycle. The Autocycle, as we referred to the bike, needed many custom parts made. As the only member of the team with significant additive and subtractive manufacturing experience, I took on responsibility for DFM review and production of the needed parts, working primarily in Solidworks/HSMWorks for CAD/CAM.
Most important to the proper control of the Autocycle was a means to apply torque onto the handlebars in order to turn the front wheel. We had narrowed our choice of motor based on required torque, speed, size, and power constraints to a (insert motor here) from Nanotec. It remained to mount it and transfer the torque.
While other members of the team iteratively designed the mount that would hold the motor to the frame, I worked to couple the power transmission. Given the torque transfer and size requirements, we chose 3/8" XL profile timing belts and pulleys to do the job. We now needed to mount and couple the pulleys onto the motor output shaft and the handlebars themselves. This required boring of the pulleys, and then the broaching of a keyway.
While I was able to find a broach of an appropriate size and was also able to find an appropriate broach bushing for the motor shaft pulley, the non-standard diameter of the handlebars meant we would need custom tooling in the form of a broach bushing. I proceeded to design and machine the broach bushing, after which we could use a hydraulic press for all the necessary broaching.
While the two pulleys were ready to go, there was still the matter of properly tensioning the belts. We initially started with a 3D-printed design and quickly went through several iterations, with the result being that the PETG plastic we were printing in was too elastic to prevent belt teeth skipping, and also prone to forming cracks and impressions from the high loads in the belt.
The solution, to ensure the system would work as intended going forward, was to redesign the tensioner to be milled out of steel. The parts were machined out of AISI 1018 cold rolled steel, including the use of a dovetail cutter to form the tracks for the tensioner idlers to run in.
Zero Speed Stability System
While a full state feedback control system would ensure that the Autocycle would balance once moving, it was necessary to ensure that it could stay upright while still. As such, a section of our team designed the so called "Zero Speed Stability System", a set of deployable training wheels that would lift after the bike reached a certain speed. While the steel bars that formed the frame were mostly manually machined by said section, I performed the design, CAM, and CNC milling necessary for the slightly more intricate bushing mounting brackets that served as the pivot points for the various elements in the system.
Initially, speed information was gathered for the Autocycle via serial communication with the repurposed e-bike drive motor that propelled it. The motor itself obtained this information from the use of a magnet and hall effect sensor mounted on the rear wheel. Unfortunately, the data stream was too slow (only 1200 baud) and of too low resolution (0.7 m/s) for the control system, whose efficacy depended heavily on a speedy and accurate measurement of speed, to function. To remedy this issue, we decided to acquire a 360 pulse per revolution optical encoder, and somehow couple it to the rotation of the rear wheel. We decided to do this by mounting a sprocket of appropriate pitch on the encoder shaft, and tapping into the bike's drive chain.
While sprockets of the exact correct dimensions were not available, I was able to find sprockets with the right pitch for an industrial #41R roller chain. By facing down the sprocket, I was able to get it to the right thickness to fit the bike chain, and was then able to mount it to the encoder shaft by means of a stainless steel spacer, which I bored and drilled for a set-screw.
The switch to an optical encoder removed the massive latency from polling the drive motor, and also increased our speed resolution to less than 0.04 m/s.