Simulating Failure Modes and Hardware Testing for Surgical Robots