Hey guys. I recently have been thinking of probably what is on most peoples’ minds right now, hatch panel alignment. I was wondering if anyone actually knows the range you can drive towards a target to place a hatch. For example, if i vision track the rocket, but come in 20 degrees from its perpendicular, would the hatch panel still be placed? If not, what are some ways to make sure your bot can align with the perpendicular?
The tolerances allowable by your hatch panel mechanism ultimately come down to your design. A simple, non-actuated “stick it and let go” mechanism likely wouldn’t work 20 degrees off, but our design (and several others I’ve come across so far), for example, have enough pushing force to get it a few inches past the bumper. There are some pretty strict rules this year about throwing hatch panels, but our panel pusher is nowhere near that 3ft throwing limit and still works from ~20-25 degrees off.
Now, obviously, if you can avoid the problem altogether in software that would be the best bet. If you’re using OpenCV, I’d highly encourage you to take a look at the
cv2.solvePnP() function. It gives you all the information you need and more about your translation and rotation from a target. Here’s an interesting article that explains it pretty well (with facial recognition, but can be fairly easily ported to use with color thresholding): https://www.learnopencv.com/head-pose-estimation-using-opencv-and-dlib/
In addition, here’s another interesting resource on how to use
cv2.solvePnP() in FRC applications (see Section 9):
After acquiring the translation and rotation information, there are several ways to actually reach your target. The cleanest way is likely to generate a path to the target and follow that using your encoders/gyro (assuming you have a system to generate paths fairly quickly – Pathfinder v1 almost certainly won’t work for this use-case), but doing a basic PID loop with your translation/rotation as the closed loop sensor would likely be more than enough. There are plenty of other ways to get to the target once you have that information that my 1am brain can’t think of, but those methods should hopefully provide you a starting point.
I expect that the teams that have built a rocket or cargo ship, or even a little part of one, and have built a hatch panel mechanism and installed it on a robot of some sort, probably know a lot more about this than those teams that have not yet done so.
we finally stuck one on last night…only about 3 weeks later than we should have
In order to really put the panel in place, you’re going to have to apply some force on both sides. This means hitting it really squarely, or having some adjustment or “give” in the placing mechanism.
For example, a mechanism mounted on a single polycarbonate tube which included pneumatic cylinders at either side would adjust to a much wider range of angles than a mechanism mounted on widely-spaced metal brackets and a single rigidly mounted pushing plate (other factors equal). Bend-but-don’t-break, like you’d likely design something that went much farther outside the frame perimeter, is a good way to approach this.
This is very important. We originally had our hatch mechanism made from metal and it worked pretty well, but we remade it out of polycarbonate and it works even better because it bends a little, enabling a much larger range of angles someone can approach the rocket/cargo ship and still stick the panel.