Constraint based robot knot tying
In this thesis, we present different approaches to tying knots using robots by enforcing different types of constraints. We attack the problem from three different directions; mechanical design, motion planning with simple control strategies, and theoretical analysis. We present the first complete generalized fixture based knot tying approach that is able to arrange and tighten knots, building on Matthew Bell's work on arranging simple knots using fixtures [Bel10] Physical constraints are provided by these fixtures to reduce the possible string deformation during knot tying. Fixtures are designed automatically using proposed design principles, and constructed based on the designs using 3D modeling software. First, fixtures are used to transform knots from an untangled configuration to a knotted configuration (arrangement) Furthermore, we design fixtures that can tighten these arranged knots by pulling the open ends of the knot without sensing. These mechanical designs provide fast, reliable and repeatable knot tying devices. We also study some simple control strategies for string without the need to simulate the deformations, as part of a collaboration with Berenson [Ber13, WBB15b] Vector fields are generated by a sequence of virtual rings, which are used to guide the motions of string as local controllers. This simple control strategy is first used in threading string through one or more small openings. The simulated experiments suggest the approach is robust to errors. The initial experiments with a Da Vinci surgical robot arm were able to thread a 3.5mm diameter yarn into a 4.9mm diameter washer under faulty sensing. We further tied knots around generic fixtures without sensing, demonstrating the capability of tying different knots around non specific fixtures. We at last study the tie ability of knots. We first analyze the complexity of the knot tying task, in terms of how many points of contact are necessary and sufficient. These fingers serve as both physical and virtual constraints to stretch string into a polygonal arc, so that we can compute possible configurations of the string easily. We present provably correct algorithms to find a sufficient number of fingers for knot grasping, and simple motions that can fold knots sequentially. Further analysis of the Gauss code a common knot description used in knot theory and comparison between knots and weaving encourages a novel knot tying approach, using a small number of re grasps. An algorithm is derived to compute a sufficient number of regrasps to tie the given knot based on the Gauss code. Physical experiments are implemented to demonstrate the novel knot tying strategy, first using a Da Vinci surgical robot to tie knots autonomously, and then through collaboration between a human and an Adept Cobra industrial arm. We present robot knot tying methods to physically tie knots and understand the complexity of the task. As a special example of string manipulation, we hope to gain insights on how to better manipulate string and possibly more general flexible objects through our research.