Dane.Kouttron
[2.12.18] Chomper: Electric Obstacle Avoiding Snowblower
In late summer, I
was gifted a really curious contraption:
a non-functional, electric powered 2-stage impeller
snowblower, in late summer. It was headed for the trash,
but some excellent folk couldn't see it get crushed, and
found me. The electronics and batteries were shot, but the
mechanicals seemed fine. Six months later, a mega storm "Bomb Cyclone" provided some
incentive to revive the beast, give it newfound remote
controls and a vision system. Follow along for brushless motor controllers, high power batteries, wheelchair motors and remote control goodness. |
![]() |
Background |
Host
Snowblower |
Version 1 Propulsion | Giant Batteries | Video System | Version 1 Results | Version 2 | Googley eyes | Conclusion | Image Directory |
Chomper the Robot Snowblower clearing 'Dane'hy Park, Cambridge MA | |
|
|
|
An overview of the
host snowblower. |
![]() The controls are fairly identical to a normal 24" snowblower, there's a clutch for enabling and disabling the impeller, an adjustable speed forward and reverse and a clutch-enable for forward and reverse. Here's the Ariens manual [link] and quick start guide [link], for reference. |
![]() |
![]() The tires were quite tall, coming in at approximately 12 inches in diameter. They were in surprisingly good condition, no dry rot or rim-rust was visible, quite unbelievable for something that was hiding in Massachusetts. The 'chomping height' came in at 1ft 9 inches (beware the tape measure shown right is in inches / deca-inches). |
![]() ![]() Four 12v 15 AH batteries were merged together in two heat-shrunk assemblies to form a '48v' 15ish AH battery module. One thing to note is '48v nominal' equates to 60V charged. More on that later. Some properly big connectors were used along with appropriate gauge wire. The modules sat on a plastic 'bench' where the conventional internal combustion engine would sit. |
![]() |
![]() ![]() The stock motor is quite excellent! I honestly expected a large DC brush 'floor-scrubber' motor and a low-side chopper based controller, but they went all-out and chose a 4kw BLDC beast. This snowblower was of the brigs & Straton etek generation but they possibly chose this as it has no exposed brushes to wear / corrode. The motor part number is ATM 101335 by transmag. [link] |
![]() ![]() The snowblower itself didn't awaken when connected to a power supply at appropriate voltage, in fact, it pulled as many amperes as it could at ~1V. Something controller related died fairly hard. The controller itself was the most bizarre layout I've seen. It consisted of a milled aluminum square with TO-220 fets screwed into it. And a tupper-ware shaped container RTV'd in place to seal it from the outside world. Quite Odd. |
![]() ![]() |
Insides are surprisingly standard, there's 2 pulley-belt assemblies one which has a clutch to drive the impeller and the second which has a variable-speed friction transfer for fixed-axle drive wheel and then a 'nice-n-loud' spur-gear reduction. This is basically identical to a conventional ICE snowblower. Two bushings are housed on the inside to keep the low-rpm shaft reasonably retained. I imagine ball bearings here would just corrode too quickly. |
When I took off the back cover I noticed blackish powder (non-ferrous). It turned out to be from the rubber friction transfer wheel. When moving slowly the wheel is in the almost-center position, and at high speed its closer to the edge. Its purposely a friction transfer (spring loaded tension limiter with hand-operated clutch lever) such that if you head full-tilt into a concrete-paver the force transfer doesn't funnel back into the engine and disrupt operation. It appears this beast was in fact used for a bit! The transfer wheel (shown) does appear flat, indicating some use. |
![]() ![]() |
Snowblowers are a weird creature, sometimes only used in an incredibly low duty cycle, but can be quite expensive. I looked around, and while the product itself is discontinued, there seem to be a few hiding on craigslist periodically. Quite a curious unicorn. |
A snow-creature emerges. | |
At this point the great snow creature began to come to life. Apologies for the mess in the background. At this point drive and chute were complete, and control of the impeller was the only outstanding item to sort. For this test i was running everything from a single 4S LiFe battery (13.6v nominal). I hadn't completed connectorizing the battery packs, and this was easier for a first-run test. Its impresivley lively at 13.6v, I was a bit anxious about running at 28v. Just seeing it jumping about really provided some extra incentive to get everything done. The great bomb-cyclone was approaching in ~4 hrs at this point. |
Giant Battery Pack Modules |
![]() ![]() |
![]() ![]() |
![]() ![]() |
![]() |
FPV: Live video from a snowblower |
![]() ![]() Uncle Bayley gifted me an Eyoyo portable LCD. Its 12v powered and has a pile of inputs. Its got a fairly limited viewing angle but it 'does the thing' of displaying an image from a number of sources. |
![]() ![]() |
![]() The plan was to epoxy a mount to the Hobbyking HK6 transmitter, have a 3d printed housing hold the EYOYO monitor + battery and receiver, and have them held together with a bolt and hand-tightenable nut. The transmitter gets quite a bit heavy, but you do have direct visual right in front of you. Moreover as the Hobbyking HK6 is 2.4ghz, whereas the FPV receiver is 5.8ghz, so they shouldn't interfere with each other. Note that this was my first forray into FPV. I took some advice from FRED and mixed it with some Internet and got the following. |
![]() ![]() The case came out great! ABS-PC was used for the enclosure, i tested out using fiberglass tape to reinforce the part with mixed success. I wrapped everything in fiberglass tape, applied 3M DP120 Epoxy with gloves and let it sit. |
![]() ![]() |
While there is a DC barrel jack for power ingress, I chose to hard-wire the 12v input directly to the input regulator. The whole setup is rather well done, everything is handled by the small RF module. Unfortunatley the thermals are a bit suspicious, but alas its not too bad. The reciever-transmitter manual [link] isnt super detailed, but gives a rough idea of the functionality. |
![]() |
![]() ![]() |
![]() ![]() |
![]() ![]() |
FPV Range Test Footage | |
Late at night I tested the FPV setup. 5.8GHZ is incredibly common, but unfortunatley very directional. Its also quite effectivley attenuated by atmospheric moisture. I went for a walk down a fairly straight road in a more industrial area to show what the range looked like. Admittedly this was a moving reciever with a fixed transmitter, while the snowblower would be a moving transmitter with a fairly fixed reciever. Conventional FPV is pretty horribly quality wise, but quite good at latency. Video was recorded with an android OTG 5.8ghz usb reciever and the free FPVDROID app. | |
This is
what driving over FPV looked like. Video recorded over the
FPV link to an android phone using a low cost android UVC
compatible reciever [link], and recorded using FPVDROID [link]. Note that when recording with
FPV droid, placing your phone in airplane mode before use
prevents adverts from displaying and, generally, the
software works better. Kinda looking forward to a FOSS
implementation.
|
|
Here's what version one looked like while driving. This was day-after blizzard at a local park. Most of my Day-of blizzard footage was a bit shaky-camera filmed. Note the 'squeeak of sadness' is actually the elderly v-belt. I didnt realize how old it was and how poorly it was preforming. This was replaced right afterwards with a remarkably better performance. |
Googley Eyes and
V-Belts |
![]() ![]() |
![]() ![]() |
![]() ![]() |
Thermal Vision and
obstacle avoidance |
So, one of the more significant issues i wanted to solve was avoiding 'snowblowing' things that were not snow. Nominally, warm things are easy to pick out against a cold background, so why not evaluate thermal-vision? For thermal vision I started with an AMG8833 thermal sensor. There are a number of breakout boards available and the modules are relativley well documented. The module itself is incredibly low resolution, 8x8 pixels. The low resolution combined with the optics, limited vision to less than 2' in front of the camera. |
![]() 8x8 pixels didnt quite cut it, but fortunatley melexis made an interesting 32x24 pixel module, the MLX. Even more curious is its thermal operating boundaries-40C to 85C, quite excellent! The module is available in two field of view configurations, [55 x 35 degrees / 110 x 75 degrees] and consumes <25mA at 3.3v. Sparkfun convientily has a breakout board and documentation for using this adorable sensor, so off we go to implement some hardware! |
![]() I had debated doing 900mhz serial link for data feedback/telemetry, however, getting 'real-time stats' data over the FPV link seemed to be an interesting exercise. |
![]() Starting with the sparkfun example code [BasicReadings.ino] All of the heavy lifting is convieniently taken care of by MLX90640_API.cpp, available from melexis. The sensor nominally outputs Ir, Ta and Vdd . GetVdd actuallly grabs an array containing the whole image, using the following: GetTa grabs an array containing the whole image, using the folllowing: |
![]() Now that we can read the thermal sensor into an array, whats a reasonable way to use the data? Nominally its easier to differentiate hot objects as long as the environment is not also hot. For instance if the ambient environment is exactly body temperature thermal obstacle avoidance wouldnt be very effective. So we start with an ambient background temperature measurement. If The ambient is greater than a threshold it'd be useful to inform the operator that the thermal avoidance is not available. If the ambient is cold enough such that its easy to discern hot targets, we can next bin for any measurements greater than a human-body temperature threshold. If we do see measurements greater than or equal to human body temperature, we can also throw an indicator that an object was detected. Now we've got a warm object, but we need to ensure that its a reasonble measurement. For instance, if a single pixel indicated a 30C measurement, but everything else indicated 0C, it could be a far away object or a bad measurement. To compensate for this, we can use % field of view [FOV]. As we scan through pixel by pixel we can have a running integer of pixels greater than the detection threshold. After completing a scan of the full frame, if that number of pixels is greater than a defined percentage of the total number of pixels, we can take action. What are some actions that can be taken? We can set a percentage FOV required to shut off the impeller. This threshold should be a fairly conservative value, such that if a small dog or animal runs nearby the impeller itself will be powered down. A seperate threshold can be used to prevent the snowblower from driving into hot objects, like if a child or animal is in front of the path of the machine. |
What about RADAR? | |
Here's a quick clip of testing out TI's new 60GHZ monstrosity, ahem, electronically scannable radar module. It actually works quite well, i had more issues recording the computer screen than the video actually shows. Unfortunatley it seems to have issues with threshold levels in a heavily damp environment. |
Version 2 Observations and Thoughts: |
What
Needed
Improvement:
|
(There's
other
photos in the photo gallery)
Concluding Remarks:- This was incredibly more fun to operate than I had expected.
- Thermal module only had abbreviated testing as, there was limited snow and it was incredibly cold outside, making the software update loop way more miserable.
- I kinda wished I had started this earlier in the year, but then again, no time like the present!
- Highly suggest watching DZZIE's channel as he's been documenting his snowblower beast as well. Great videos!
If you have questions or comments, ask below or send over an email.
Comments: |
HTML Comment Box
is loading comments...
|
Dane.Kouttron
Rensselaer Polytechnic
Institute
Electrical & Electrical
Power
631.978.1650