Inspiration
Our idea came to us when we were brainstorming for this hackathon. We thought that mowing lawns has been dealt with in the same way since lawnmowers were built, only with improvements to the mower itself over time. We wanted to take a different approach, and allow someone to mow their lawn while not being outside to mow it themselves. This way instead of having to be outside on a hot summer day, being bit by bugs and sweaty, now you can mow the lawn from the comfort of the indoors.
What it does
The grass scraper is a lawnmower, it mows lawns. It does so a bit differently than traditional lawnmowers by communicating with the cloud to get directions from a user in a VR.
How we built it
The grass scraper is built using a lot of different products, all put together for the purpose of mowing lawns. We used a raspberry pi, oculus quest 2, insta oneX2 (360 camera), scooter motors, car battery, custom 3d printed gears and pieces, somebody's old manual lawn mower, and many other miscellaneous parts to put it all together. All of these parts however, do not communicate on their own. To get past this we had to host APIs and functions on AWS to give us a consistent service with which our parts could talk to each other. With all of this put together, our machine was essentially a VR that sent signals through the cloud to a Raspberry Pi on the lawnmower which would parse those signals and tell the lawnmower what to do. We used a mosfet to act as a switch to push the motor forward when the raspberry pi throws out an output through the port. To power everything we used a used car battery we bought from Autozone for 50 dollars. We added a back wheel to add balance to the two wheel lawnmower, and on that wheel is where we added a 3d printed gear and gear holder that we designed. For the video we attached the 360 camera to the top that gave us a good view of everything that we could see through the stream.
Challenges we ran into
Almost everything we did in this project was a challenge. From learning how to code in VR to making our AWS Lambda functions work properly, everything was researched and learned by us as we had zero working knowledge of these technologies going into the project (apart from prior experience in Python). In particular, our attempts at getting the images from the 360 camera and loading them into the VR was extremely difficult to do in real time. At one point, we had the camera using RTMP to host its video in AWS MediaLive, but taking screenshots every 5 seconds and throwing those in an s3 bucket. We then had to create a lambda function that takes the latest photo in the bucket and base64 encodes it into a JSON body. We would then parse the base64 encoded string on the VR into a byte array, and then try to load the data into a cubemap using stereokit. This broke, stereokit didn't have support for taking byte arrays and turning them into JPGs, only taking JPG's stored locally on the computer and transforming them. The major issue in pushing the lawn mower was the gear ratio and material used. This was our first time designing gears, and although we took multiple measurements, the wheel gears always came out bigger than the motor gear. Also the plastic was not strong enough for the motors power, and it would begin to grind the gear. With proper ratioed metal gears the lawn mower should have moved much better. The components were kind of a mix or random stuff that we were able to make work together, but still the randomness of the components did not make it easier to do.
Accomplishments that we're proud of
We are proud of the fact that we took the time to learn how to do the whole project without having prior knowledge of the technologies we used. It was a challenge that required many hours a day in debugging and documentation reading for the product that we got.
What we learned
The main thing we learned was how to learn and apply new technologies quickly. We also learned how difficult it is to work with technologies that aren't as well documented as say a programming language. We had a lot of issues and questions when working with stereokit and AWS in particular, because our use case is abnormal. This on top of never using them before, having to learn the basics and the advanced uses at the same time made it extra confusing, like turning your head in stereokit manually by editing the camera pose's rotation matrix using matrix math, or trying to access s3 buckets using AWS CLI without understanding that lambda functions need the AWS CLI environment manually installed as a separate layer to the function. From the engineering standpoint we learned how to use mosfets and better wiring, as well as plenty of troubleshooting of the electrical components throughout the whole process. We burned through about 15 mosfets before we were really able to get it to work. The main thing is we were able to learn how to work creatively to figure out how to make this lawn mower that seemed impossible to us.
What's next for Grass Scraper
We would like to get our product fully functional first, then if we are interested we would move our solution to the cloud in order to make it deployable to anybody who wants to use our product.
Built With
- amazon-web-services
- api
- c#
- cli
- lambda
- oculus
- python
- raspberry-pi
- rtmp
- s3
- stereokit
Log in or sign up for Devpost to join the conversation.