One of our students wrote a good generic goal finder back in 2013 and we've used it with only minor tweaks since (except 2015 when the only vision targets were in the wrong place):
https://github.com/frc3946/PyGoalFinder.
We've found it useful to use separate cameras for targeting (higher resolution, lower brightness) and vision (lower resolution/higher frame rate over the network).
Our entire control board for Stronghold was "shock mounted". Holding the board in place with bungee cord was originally a prototype hack, but after a few dozen times over the rock wall, we enhanced rather than replaced it.