A preprocessing-based planning framework for utilizing contacts in high-precision insertion tasks