Inspiration
I lost my water bottle on campus. Went back to where I left it and it was gone, a full day later. Checked the campus lost and found, dug around, nothing. Annoying, but the thing that stuck with me was how dumb the system is. Lost and found is a shelf in an office you have to walk to, and you have no idea what’s on it until you get there. So I started wondering why nobody just watches for this stuff and posts it somewhere you can check from your phone. That’s HuskyFind.
What it does
A rover drives around campus, spots stuff people left behind (backpacks, laptops, water bottles, whatever), takes pictures, and sends them to a mobile and web app. If you lost something, you open the app and scroll through recent photos. Maybe it’s there. The feed keeps updating as the rover keeps moving, so it doesn’t rot like a corkboard flyer.
How we built it
We modeled the rover in OnShape. The whole system runs in Webots, where we built an outdoor street map of UW plus the inside of the Bill & Melinda Gates building, so the rover has to deal with both sidewalks and hallways. The mobile app is built with Expo SDK 57.0.0. It shows the photos the rover sends back, and the web app shows the same feed.
Challenges we ran into
Our main challenge was prompt engineering Perceptron-Mk1.5 and engineering our Rover to avoid false positives and negatives. A common issue with false negatives was that items were too small to identify if they were far away. To fix the false negatives, we implemented cameras with a higher resolution in the simulator, and reduced the FOV of these cameras. For the false positives, we asked Mk1.5 to ask for items with a defined shape, and implemented a maximum distance from the item using our LIDAR sensor to make sure the rover was close enough.
Webots ate a lot of our time. Getting a real campus layout and an indoor building into one world, and then getting the rover to drive through both without clipping into walls, took way longer than we planned. Moving the CAD model out of OnShape and into the sim was its own mess, because a model that looks fine in CAD can behave strangely once physics gets involved.
The other fight was deciding what a “sighting” even is. The rover, the sim, and the app all had to agree on a photo, a location, and a timestamp, and we rewrote that format more than once.
And we don’t have a physical rover. So the sim had to do all the convincing.
Accomplishments that we’re proud of
The sim runs on real places. It isn’t a blank grid with a few boxes in it, it’s UW and the Gates building, and that makes the idea feel real in a way a mockup wouldn’t. We also got the rover model, the simulation, and the apps talking to each other, which sounds small until you’ve tried it at 2 AM. And it started from a lost water bottle. I’m kind of proud of that, honestly.
What we learned
We learned Webots from close to zero, and how CAD turns into something a simulator can actually use. We also learned that a hardware idea without hardware only works if the simulation is good enough to carry it, so we spent our effort there. Scoping hurt too. Every feature we cut made the demo better.
What’s next for HuskyFind
Build the actual rover, obviously. After that, real item detection and matching, so you describe your lost bottle and get pinged when something that looks like it shows up. Privacy needs real work too, since a rover roaming campus will catch people in frame, so faces need blurring. Same for claiming items: you shouldn’t be able to claim someone else’s laptop by tapping a button. And more buildings. Gates is one building out of a whole campus...
Built With
- expo.io
- perceptron-mk1.5
- postgresql
- python
- react-native
- supabase
- tailwind
- webots
Log in or sign up for Devpost to join the conversation.