Welcome! I'm a PhD candidate at Dartmouth Computer Science department studying robotics with Professor Devin Balkcom. I am currently working on my thesis titled Constraint-based robot knot tying. You can check out some videos of our experiments here.
I am interested in locomotion, motion planning and deformable objects manipulation. I and my collaborators have studied robotic knot tying, string manipulation, memory-efficient motion planning, and exact optimal trajectories for vehicles.
Our goal is to develop techniques that allow more interesting knots to be tied quickly and precisely, using limited sensing and control.
The first principle we recognized is that knot tying should actually be acomplished in two separate stages: first arrange the string into the correct knotted configuration (correct knot topology if the open ends are attached together); then we tighten the knot into the desired size and location (tightness).
We first designed separable fixtures to arrange knots. While assembled, pressurized air can be applied to thread the string through the fixture to achieve desired knot topology. After the string is inserted, the fixture can be separated without compromising the configuration of the string.
We then designed fixtures to tighten knots, and embedded the tightening fixture into the arrangement fixture to allow easy transition between arrangement and tightening. The design of the (arbitrary knot) arrangement fixture, tightening fixture and the embedding of them can actually be achieved autonomously, using an algorithm we derived.
Further improvements of the fixtures are derived allowing us to tighten knots precisely, in the sense that the knots can be tied at some specific locations along the string (such as a sounding line), and certain distance can be maintained between selected contacts (such as the bows of a cloverleaf knot and the shoelace unknot). We have successfully autonomously tied many complex knots that has never been tied before, including cloverleaf knot, and Ruyi knot.
The first tying of simple knots using these mechanisms was explored in Matthew Bell's thesis; and extended to more complex knots. The most relevant papers are [Wang2016a], [Wang2015c], [Wang2015b], [Wang2014].
Tightening fixtures. Simple knots can be tied by pulling on the ends, but other knots tangle, or like the bow of a shoelace, even untie. Perhaps the best way to tie knots is to separate tying into two phases: arrangement and tightening. We have built some simple fixtures that allow knots to be tightened in a somewhat controlled fashion, and even embedded these tightening fixtures inside of arrangement fixtures to allow easy transition between the phases. Controlling the tightening process allows the shoelace bow to be tied, as shown in the first movie above.
Precise and larger-scale tightening. The behavior of string is unpredictable; if the string is loose, it can become tangled, and if tight, friction with the fixture can cause jamming. We have started to build larger-scale fixtures in which the string is arranged around a tightening fixture made of a set of rods. The rods may themselves move to allow tightening, either passively actuated as taught string pulls on the rods, or using motors to spin the rods and apply forces at different places along the string. This approach allows full control of the string, and allows tightening in particular locations. The tying of a sounding line is shown in the second movie above. The tightening of a Ruyi knot is shown in the movie below, a knot that is very complex that has not been tied autonomously before.
Knot folding. Most recently, we have been exploring foundational questions, using a model of knots inspired by the string game cat's cradle. For example, how many fingers are needed to grasp a piece of string in a particular knot shape? How many fingers are needed to tie a knot? Our initial explorations have determined some upper and lower bounds, but these remain open research questions.
We further developed methods to allow simple knot tying for robots, taking advantage of the similarity between the knots and weaving, and the simple motions involved in the weaving.
Knot arrangement in this case, is separated into to alternating patterns: motions that do not require re-grasp by a robot arm, and a motion that simulates the motion of a shaft on a weaving machine (the performing of this action with an robot arm requires re-grasps). The second motion pattern (referred as weaving motion) can easily be achieved by human even without any training. A video showing a robot arm and human collaborating tying many different knots is shown below.
String manipulation without simulating deformation. String deformation is difficult to predict and control. Using threading a string through small workspace openings (needle) as an example, we studied how to control string without simulating the deformation. Based on the Diminishing Jacobian developed by Professor Berenson, we designed virtual magnetic field as controller, and use computed approximated Jacobian to translate the desired motion of string into the change of locations for robot arms. Da Vinci surgical robot arm was used to demonstrate the precision and tolerance of the method. The paper [Wang2015b] is presented on ICRA.
As greater and greater computational power is applied to motion planning problems, memory becomes a bottleneck. How can we capture the essential qualities of a configuration space in a small memory-efficient representation that can be stored or transmitted across a network?
Graph spanners. In the algorithms community, graph spanning algorithms have been developed that allow some edges to be removed from a graph while maintaining a constant approximation ratio between paths in the original graph and in the reduced graph (the spanner). Marble, Dobson, and Bekris showed that a spanner algorithm could be applied to filter the output of a Probabilistic Roadmap (PRM) algorithm, reducing the number of edges stored. [Wang2015a] shows how online spanner algorithms can be adapted to PRMs, allowing sparse roadmaps to be generated very quickly (amortized constant time per edge), while maintaining approximation properties. Figures below, from left to right are 5-PRM, k-PRM* and the result of applying our spanner on k-PRM* roadmaps.
Optimal trajectories among obstacles. Early work by Xavier and Donald on kino-dynamic motion planning showed that requiring a robot to keep a certain safe distance from obstacles allows the problem of finding optimal trajectories to be well defined and provably solvable. [Balkcom2015] extends this idea to prove that even for systems with non-holonomic constraints, optimal trajectories that remain a certain distance from obstacles exist and can be approximated, if given a black box that can compute optimal trajectories without obstacles (an optimal steering method). While a fine-grained cell decomposition of the space still requires very much memory, we expect that weaker approximation requirements will lead to much more efficient representations.
There are typically very many feasible paths between a pair of robot configurations. Which ones are the best? We have studied the optimal trajectory problem for simple systems, particularly mobile robots in the plane, and shown that for these simple systems, we can design algorithms that can be much better than more general motion planning approaches, in terms of computational cost, optimality of results, and provable correctness. We are starting to extend these algorithms to more general systems, while retaining some of their best characteristics. The middle figure below is a synthesis of different types of optimal trajectories of from (x, y, pi) to (0, 0, 0).
Generalized Dubins cars. Dubins and Reeds-Shepp steered cars, differential drives, and omni-directional vehicles can each be modeled as simple rigid bodies in the plane, with location and orientation. However, differences in mechanical designs lead to different constraints on velocities, and different optimal trajectories. [Furtuna2010] and Furtuna's Ph.D. thesis unify previous work in this area, by completely characterizing the time-optimal trajectories for a general model of rigid bodies in the plane, and developing general-purpose algorithms that can solve for optimal trajectories for these vehicles and variations. [Wang2012b] shows that the difficult inverse kinematics problems that sometimes arise in solving for optimal trajectories can be solved approximately with arbitrary precision. The right most figure above shows an optimal trajectory found by our algorithm for a non-symmetrical differential drive.