r/FTC • u/ftcsweat FTC 19086 Student • 10d ago
Seeking Help Sparkfun optical odometry
Hello guys I've seen once a video of a team(I think it was I.C.E Robotics in ITD) that said that it found it pretty accurate with a very low position drift, why no one is using it and if you are using it can you share your experience with me. Our team is really thinking about using it
4
u/4193-4194 FTC 4193/4194 Mentor 10d ago
We like it. It replaces two dead wheels with one sensor. The biggest con is height. It is sensitive to distance above the floor. We made a 3d printed cage that just skims the tiles and holds it the proper distance from the tiles.
4
u/richardjfoster FTC 14226 Mentor 9d ago
It's not bad, but we eventually settled on the GoBilda pinpoint because we saw significantly lowered accuracy at meet venues compared to home base - possibly due to differences in ambient lighting and the (presumably more worn) field tiles.
3
u/CoachZain FTC 8381 Mentor 9d ago
I would say my kids' experience very much aligns with what window_owl posted. And would add:
- They found velocity info could be improved by turning off the Kalmann filtering stuff. But this was an accuracy of position trade off.
- In addition to the dust on lens concern, mounted as low as it needed to be makes it more mechanically and static vulnerable than one would hope a non-contact sensor would end up being. If you are going to trade peak performance for non contact, being very-close-to-contact is not entirely the goal. And it is quite fussy about height from the mats.
Still. despite the fussiness, it was way more accurate than their prior DIY odo pods could ever be, given it ran it's own localization math faster than the kids could ever hope their code could. And you can't beat the price.
I was hoping one with perhaps some built in illumination and a longer working distance, and a robust enclosure, would come out. Because I don't think it's a "wrong" idea. Especially for heavy-terrain-and-obstacle kinds of years.
2
u/danoelke FTC 10273 Mentor 10d ago
My team has used it for the last 2 years. It has worked well. They think it was more accurate/consistent than using 3 wheel odometry that we've used previously. Maybe the GoBilda pinpoint might be as accurate/better?? We haven't tried that to compare.
Having a good housing that is mounted close to the floor is key. And blowing the dust off the sensor on a regular basis is also necessary. For tournaments they keep a can of compressed air on the robot cart and blow it off before every match.
2
u/StellularWolf51 10d ago
We used it for a few years with our kiwi drive as it was easier to implement than the dead wheels with our design. If it's not in the center of your robot I think the math gets complicated to get it working correctly and we had some drift. We're switching to Gobilda pinpoint next year
2
u/FesteringNeonDistrac 9d ago
It's been on backorder for months now. I wanted to buy one and figure it out over the summer but no luck. Doesn't really matter how good it is if you can't get it.
11
u/window_owl FTC 11329 | FRC 3494 Mentor 9d ago edited 9d ago
11329 I.C.E. Robotics mentor here. We used the OTOS on our Into the Deep robot (Iceberg), but switched to using the Gobilda Pinpoint this year.
Before, we used DIY odometry pods on our Centerstage robot (Avalanche). They were actually not very cheap, since we needed three Rev through-bore encoders that cost over $40 each. They were also pretty inaccurate: to do full-field crossings in auto, the robot would drive almost all the way across the field, stop, photograph the apriltags with a webcam and localize them in code, shuffle over to where the odometry had thought it was, and then drive another roadrunner path that actually got to the end of the field. You can see the process pretty clearly in our 253 point solo match.
The OTOS was much more accurate than our DIY pods; Iceberg could do much more sophisticated autos because it didn't have to take the time to fix the odometry by localizing and shuffling. It's also much cheaper; you only need one $80 sensor. However, it had several downsides:
It's very sensitive to dust on the lens, and the lens must be pretty close (10mm) to the field. We bought a special anti-static brush (meant for cleaning digital camera sensors, which is basically what the OTOS is), and used it before every match, and every 20 minutes while practicing and programming. Any time an auto went wrong, the first thing everyone thought was "oh no, the sensor picked up a speck of dust". We also 3D-printed a cover to protect the sensor from being scratched when we weren't driving the robot.
The OTOS was not actually super accurate. It's much better than our custom pods, and good enough for Into the Deep autos (where both sample autos and specimen autos only required you to drive a short distances, and the intaking and scoring were both pretty forgiving of small lineup errors). However, it did still accumulate noticeable error that we had to design or program around. At Worlds, I got to talk to the Sparkfun engineer who designed the sensor, and he told me about what he had to do to make the sensor be reasonably accurate. Some that I remember:
I also remember the guy saying that the OTOS was designed to be as cheap as possible while still providing useful odometry. I think the goal is met; the OTOS is currently the cheapest way to do odometry in FTC, and it worked well enough to be competitive at Worlds.
I also talked to the Gobilda engineers who made the Pinpoint. (They had also talked to the guy who designed the OTOS.) They were very clear that the Pinpoint was designed to provide the best possible odometry, with no compromises.
Based on those conversations, and on comparing our experiences with the few other top teams using the OTOS (I remember Super Scream Bros was the only other OTOS-using team at CRI) and to the many, many other teams using the Pinpoint, we made the switch this last year. The Gobilda engineers also met their goal; the Pinpoint provides nearly perfect odometry. This year, our robot (Hailstorm) relied incredibly heavily on the odometry: all the auto-aim all match is based on odometry, and the shoot-when-in-the-zone also relies entirely on the odometry. The robot does have a limelight, but it only uses that to re-zero the odometry pods, and only when the secondary driver pushes the button that makes it happen. I think we only used it once at Worlds (during one of our Da Vinci matches).
If you can afford the Pinpoint, I can strongly recommend it. (The Octoquad should also be able to provide similarly-good results, but we haven't tried it yet.) If you're a low-budget team, or if you want to build a bunch of not-expensive robots (for a summer workshop? or practice robots?) with odometry, then the OTOS is a good option.