Some Project Ideas

These descriptions are rough; feel free to contact me if you'd like to discuss them in more detail. Some of these topics are advanced research issues, some are suitable for undergraduate projects, and others are just fun to think about. (At least for me!)

  • Trajectory planning for time-optimal stable transport of assemblies. We might also call this the waiter's problem. For example, the tray of glasses in the figure below can be stably transported from the start position to the goal position 20% faster by following the path shown than by moving straight to the side.
    This problem arises in transporting subassemblies in manufacturing. To solve it, we need (1) a procedure that, given the state of the base of the assembly (e.g., the tray), finds the constraints on the base accelerations (or generalized forces applied to the base) that maintain a dynamic grasp; (2) a motion planner that takes these motion constraints and finds a trajectory connecting the start and goal states that satisfy these constraints at all times. Ideally the motion would be time-optimal. (1) requires knowledge of part geometries, masses, centers of mass, inertia matrices, and friction coefficients. Work on the stability of assemblies with and without friction under a gravitational load has been done by Mattikalli, Baraff, and Khosla. We are interested in both the planar (exact friction cones) and spatial (approximate friction cone) cases. Planar examples can be implemented on Flatland. Variations include time-optimal time-scaling of a given path according to the stability constraints (similar to work by Shiller); constraints on the motion of the base due to manipulator torque and workspace limits; constraints due to limited manipulator degrees-of-freedom; translation-only motions, giving loads similar to purely gravitational loads; and putting water in the glasses above.

  • Cobot path design. Peshkin and Colgate have developed cobots, robots for passive collaboration with humans. The function of cobots is to guide human forces, acting as programmable funnels or guide rails. When manipulating heavy objects, we'd like these guide rails to make the task as easy and comfortable for the human as possible. This amounts to cobot path planning with human-cobot dynamics and an objective function based on ergonomics.
    Do experiments on a real cobot. Do people learn to work with the guiding rail? Is the rail "intuitive"? Do people not waste energy by providing forces against the rail?

  • Motion planning and control for bat juggling. Design a controller for a 1 joint robot to repeatedly bat an object to a given state (or configuration) in a gravity field. Prove that it is globally convergent -- all initial states of the object converge to the stable limit cycle. Consider a disk object, polygonal object (or a rod), or other smooth object, such as an ellipsoid. Consider high friction, zero friction, or moderate friction; Newton, Poisson, or Stronge restitution.

    Design a planner to plan a sequence of bats by a one joint robot to move an object from an initial state to a desired goal state (throwing to another robot, putting a ball through a hoop). The state of a planar object has 6 variables, we have only 2 control variables (roughly, angle of the batter at impact, and its angular velocity), so at least 3 bats will be required in general. Our current approach is to design a series of bats using nonlinear optimization with Poisson's impact model as our predictive model, and then to stabilize the intermediate "subgoal" states by continually updating our batting sequence using the current state data. Implement this on Flatland, show that it is robust.

    Assume a line batter or a batter with width, and a point object or a disk. Adopt a strategy that at each bat, we choose the bat that minimizes the objective function, which is a quadratic of the distance from the desired state (x, y, xdot = 0, ydot = 0). Show that this strategy always stabilizes the desired state (perhaps exponentially). Maybe as simple as showing the "full rankness" of each bat (away from boundaries like impact at the batter pivot).

    Somewhat different: is it the case that error never increases in subsequent bats when we adopt this strategy?

    Consider the analogy of planar batting to control of the Brown/Zeglin hopper. Leg angle = angle of the batter; energy stored in the springy leg = angular velocity of the batter at impact. Apply the batting motion planner to the problem of hopper gymnastics, or stepping on stones.

  • Throwing and catching space robots. Program 2 Flatland robots to throw parts to each other, and to catch them using "sweet spot" impacts. Robots should be covered with damping foam. Tilt the table to zero degrees, simulating zero gravity, and try very slow throws, perhaps using vision feedback control to stabilize the release state (particularly in the case of a rolling throw). Simulate satellite capture, perhaps experiment with passive joints.

  • Robot balancing and juggling. Imagine a 1 or 2 DOF planar robot on Flatland balancing a polygon on a vertex. By micro-throws and catches, we can move the balancing vertex in and out along the robot arm. Plan a larger throw to catch the object on a new vertex and balance it. Stabilize the throw using vision feedback. Maybe do a "sweet spot" catch to immediately drain the part of kinetic energy, then begin balancing. Or catch so the part rotates up to have its CM over the balance point after catching.

  • Validating impact models. There are many models of impact, including, but not limited to, rigid-body collision with Newton, Poisson, and Stronge's resitution coefficient, and deformable body models. Flatland can be used to gather vision data of parts impacting. This data can then be fit to the various models to see which is most faithful to the data. Consider different materials, disk and non-symmetric bodies, high friction/low friction, initial angular velocity or no, angle to the CM at impact, etc.

  • Learning for batting manipulation. Using our Flatland manipulation testbed, bat an object around with a 1 joint robot and estimate the planar part's center of mass, moment of inertia, restitution coefficient, and friction coefficient using an impact model such as Newton's, Poisson's, or Stronge's. The vision data can be collected with open loop bats and be batch-processed offline, or it can be incrementally processed during a control task, improving our model as a kind of adaptive control. Or fit a nonparametric model of batting, a la Atkeson.

  • Motion planning and feedback control for rolling and slipping manipulation. Derive a planner for a 1 or 2 joint robot manipulating a part by rolling or slipping. Stabilize the planned motion using feedback control. Show accessibility of a spatial part manipulated by a 1 or 2 joint robot.

  • Motion planning and feedback control for rolling manipulation. An example is planning a hand motion to roll a ball from one side of the hand to another in a gravity field. This is called a butterfly. A human and a 1 joint robotic implementation are shown below.
    The problem is to find a hand motion to produce the desired ball motion, and to stabilize the execution using vision feedback control, and to show that this feedback control law is convergent. The control law should be implemented on Flatland. The hand motion could be the fastest possible that maintains rolling contact with the disk. (If we try to roll too quickly, the ball is thrown when it reaches the top of the hand. The higher gravity, the faster the butterfly can be done.) Feedback control can be done using the algorithm due to Walsh et al.

    Another interesting problem is to roll the ball to the top of the hand and balance it there, either using a single nonlinear controller or by turning on a linear controller when the ball is at the top of the hand.

    A last rolling control problem is to control the equilibrium configuration of a ball in a spherical bowl. An equilibrium configuration of the ball has 3 DOF: latitude and longitude of the contact point on the ball, and the spin of the ball (basically, the ball's pitch, roll, and yaw). (The position of the ball must be at the bottom of the bowl, eliminating x, y, and z.) By moving the bowl in the x-y direction, we can cause the ball to roll up the sides of the bowl and come back to rest at the bottom. By the nonholonomy of spatial rolling, we can control all 3 ball equilibrium DOF using only 2 controls. The problem is to find a motion planner to achieve a desired reconfiguration.

    An even more interesting case occurs when the bowl is ellipsoidal with different principal axis lengths, and no principal axis aligned with the x-axis. Then by controlling the motion of the bowl along the x-axis we can control all 3 DOF of the ball's resting configuration. Again, the problem is to find a motion planner, and build the device and test it.

  • Designing a dynamic cam. Given a desired rolling motion of an object, design a manipulator surface shape-motion representation that results in this rolling motion. Particular shape-motion solutions can be found by imposing constraints, such as the number of DOF of motion of the surface.

  • Accessibility of a planar hopper with a finite stance time. Berkemeier and Fearing's hopper maintains a finite stance time with the ground, in some cases sliding along the ground. We expect that the hopper system is accessible during a single stance phase; that is, the hopper can reach a full-dimensional subset of its state space during a single stance phase. So, within limits, we can control all hopper state variables. Prove this. (Inspiration for the idea is Lynch's proof that a planar object manipulated by a 1 joint robot is accessible if the robot contacts the object for a finite time.) Come up with a controller to take the robot to a desired state, if it is in the reachable set.

  • Motion planning and feedback control for controllable dynamic systems with only 1 control. We are interested in controllable systems which are not small-time locally controllable. (In the latter case, see motion control algorithms by Leonard and Bullo, Leonard, and Lewis). Examples of such systems are a hovercraft with a single bidirectional control and the ball in the ellipsoidal bowl above (though in that case we are only interested in equilibrium configuration controllability, not full state controllability). These systems are particularly interesting because they are the simplest possible system, 1 control plus 1 drift field, the ultimate in minimalist robotics. Other examples of robotic systems like this are the 1JOC, the NSK arm, the butterfly robot, and Buhler and Koditschek's batting robot. While equilibria may not be locally stabilizable, trajectories should be, so plan a trajectory and stabilize that.

    Perhaps an important concept for this is the symmetric product of Lewis. Look at the motion you get by the symmetric product of the single vector field with itself, or the motion obtained by following +X then -X as times become small.

  • Global controllability analysis. Investigate the global controllability of dynamic (2nd order) systems which have left (right) invariant control vector fields, satisfy the Lie algebra rank condition (for accessibility), and whose configuration space is a (semi-direct) product of an arbitrary Lie group and a compact Lie group.

  • Motion planning for underactuated STLC manipulators. The Bullo/Leonard/Lewis algorithms, or differential flatness, could be applied to the planar 3 DOF robot with a passive joint. The resulting motions will be much slower than those found by the planners we have already developed, but there may be other STLC manipulators which don't have as much structure as the 3 DOF robot which might benefit from these algorithms.

  • Grasping for assembly with compliance by frictional slipping. Previous work on grasping for assembly has typically assumed a rigid grasp of the part. The problem then is to design a compliance for the gripper (spring, damper, etc.) so that assembly forces map to corrective motions of the part. The most famous example is the RCC (remote center of compliance) device for inserting pegs into chamfered holes.

    One reason the RCC is so successful is that it uses passive, not active, compliance. Passive compliance is high-bandwidth and stability is not an issue. For other types of assembly problems, active compliance (sense forces, adjust motions) schemes have been proposed. This gives programmability of the compliance law, but could suffer from instability. Also, a firm grasp of the part is required, which might be undesirable if the part is delicate.

    An alternative I'm interested in exploring is compliance by frictional slip between the fingers and the part during assembly. When the part slips between the fingers, the direction of the slip is a function of the contact forces and the locations of the grasping fingers. Essentially, each finger provides a limit surface (Goyal, Ruina, and Papadopolous), and the total limit surface for the entire grasp is the Minkowski sum of these individual limit surfaces. By changing the finger locations, we change the mapping between contact forces and slipping directions. Loosely, if you grasp a Coke can with your fingers near the center, pushing forces at the top of the can tend to make it rotate. If you grasp with your fingers distributed, pushing forces tend to make the can translate. We would like to choose a grasp (with a multifingered hand, or perhaps even a parallel jaw gripper) that (1) is force-closure, and (2) gives us a desired mapping between expected contact forces and corrective slipping motions.

    One advantage is that the compliance is guaranteed to be stable, since it is passive (as with the RCC). A disadvantage is that only a limited set of compliances is achievable, since the limit surfaces are constrained to be from contact with the limited extent of the object.

    One approach to this kind of grasp planning for assembly is to take a set of contact forces/desired corrective motions (and the force-closure condition) and use these as constraints in an optimization to find the finger locations. Perhaps we hypothesize sets of initial finger locations and iteratively optimize each, choosing the best solution.

  • Analysis and experiments in planar vibratory parts feeding. We can implement vibratory motions on robots in the Flatland system. By fabricating different manipulation surfaces with different part-capturing depressions, we can experiment with a planar version of the APOS system. We can also use large parts, or tilt the table at a very shallow angle, thereby increasing the time scale while hopefully retaining the essential dynamics.

    Analysis might be to search a "shape and vibratory motion" space for a solution with the following property: if the part is in the right configuration, it stays there, and if not, then it is not stable. (We'd also like the part to pop out of the depression, instead of just cycling around, but this would require a global motion analysis and would likely be much harder.) We could be given the shape, then design the motion, or vice-versa, or do both simultaneously.

    Based on an averaging argument, we might consider a configuration to be stable if we assume that contact forces could be applied from all contacts that are sufficiently close. (That is, an infinitesimal motion of the part causes a new contact, and since the time scale is very small, we might just integrate the forces over some small time.) Another averaging idea is to use a "fuzzified" C-space. A C-space usually consists of n-dimensional, (n-1)-dimensional, (n-2), ... 0-dimensional strata. If we "low pass filtered" this C-space, though, it would be everywhere n-dimensional and smooth. So we might restrict our shape design to some parameterization of n-dimensional smooth surfaces that are in some sense "close" to what's achievable with the given part. The vibration we choose then must make only one (small) neighborhood of the C-space stable, the goal configuration. Then we must map our solution back to some depression shape. What types of C-spaces are possible for a given part?

  • Dynamic stable pushing. To speed up certain types of parts feeding, e.g. the 1JOC, it would help to add dynamics to the analysis of stable pushing. Some pushing motions become stable at higher speeds, others become unstable.

  • Planar manipulation by force fields. Several people have studied manipulation by programmable force fields. For instance, a part resting on a MEMS device with individually moving "motion pixels", a part resting on a vibrating plate, or a part resting on an air table with rotating air jets. Most theoretical work has assumed that the force fields are continuous (part is large relative to the motion pixels), each pixel can apply a force in any direction with any magnitude, etc.

    Interesting questions are: Given a description of a part, what kinds of manipulation (parts transfer, sorting, feeding) is possible if the force magnitudes are discrete? the force directions are discrete? groups of pixels are clumped together with the same action? I am interested in the problems of the existence or nonexistence of stable equilibria for the part, the number of equilibria as a function of the part shape and center of mass, the minimum number of motion pixels (or motion regions) the part must touch to reach a (nearly) unique equilibrium. Also of interest are the second-order dynamics of the motion.

    Usually we take a potential on x-y and "lift" it into a potential on the C-space. Can we define a potential in the C-space and push it back down to x-y? Generally no, overconstrained? What constraints are there? We might also take into account the pressure distribution. Not every pixel of the array applies the same force to the part.

  • Manipulation of flexible materials. An object made of a flexible material has more degrees-of-freedom than a rigid object. So even if we have a 6 DOF manipulator, this is a type of underactuated manipulation. Again we might employ dynamic effects to help control the extra degrees-of-freedom. This is not unlike controlling the passive distal degrees-of-freedom of an underactuated manipulator.

  • Open-loop parts orienting by throwing and catching. A set of parts on a plate covered with a soft, absorbent foam. The plate translates only, so all parts experience the same motion. Plate lifts up, translates horizontally giving some spin to the parts, throws them, and catches them. Parts settle with perfectly plastic impact. Find a sequence of throwing motions to bring a part from any initial orientation to a desired goal orientation.

    Related problem: given a polyhedral part toppling over a contact edge, which face does it end up on?

  • Maximizing impact in a football hit. Playing defense in football, you learn that there are certain very satisfying ways to make a tackle. Usually it involves hitting the person being tackled in the chest with a high horizontal velocity and some upward velocity. What is being optimized here? What is an optimal tackling strategy for different optimization functions? Here's a simple model to think about: the tackler is a point mass moving with a given momentum (or velocity). The tacklee is standing straight up in gravity, with a single hip joint (two rigid bodies attached at a revolute joint). The tacklee can bend forward at the hip, but not backwards (there's a joint stop). Choose a reasonable mass distribution, likely with the tacklee's CM around the hip. Assume plastic impact between the tackler and the tacklee. (If you want, you could also assume that the tacklee's stomach is soft relative to the chest and legs.) Your design variables are the direction of the tackler's velocity and the impact point on the tacklee. Choose a reasonable optimization function and find the optimal tackle. Should you optimize momentum or energy transfer? Post-impact velocity in some direction?

  • Maximum number of push-ups. This isn't a project, just something fun to think about. For your body (height, mass distribution, arm length), what is the maximum number of (good) push-ups you can possibly do in a minute, regardless of your strength? For me, the answer is around 120. So even if you don't have an appreciable percentage of infinite strength, you can do an appreciable percentage of the number of push-ups an infinitely strong person can.

    Where would you want to be if you wanted to further increase that percentage?

  • A spatial conveyor-based parts feeding system using toppling. The 1JOC augmented with a vertical prismatic joint to achieve spatial parts feeding by toppling parts. Some issues:

  • Maximally minimalist robots. Precisely state the conditions under which a dynamic system is (globally) controllable with a single input. An example: a hovercraft with a single bilateral thruster. Not an example: a ball that rolls on a plane that can only translate in one direction. Investigate "curvature" of shape and motion.

  • WPPS pseudo-drift vector fields. Accessible systems with WPPS drift vector fields are globally controllable. The hovercraft drift vector field is not WPPS on its full state space (it is on its body-fixed velocity space, though). However, the single bidirectional input hovercraft is globally controllable on its full state space. One way to show this is to impose a control that is a function of the state of the hovercraft which has the effect of making the "drift" (now pseudo-drift with the control) vector field WPPS on the full state space (for example, by making the hovercraft travel on a fixed orbit in its state space). Then we just use "extra" control in addition to this state-based control to get accessibility, and now we have controllability.

    An interesting problem is to come up with a procedure that, given the system dynamics, systematically calculates a state-based control that yields a WPPS pseudo-drift field.

  • Motion planning with 1-DOF primitive motions. From rest, come up with a 1 parameter set of controls that brings the body back to rest in a 1D set (curve) of configurations. This set is fixed in the body frame. If this 1D set satisfies the property that repeated applications allow the body to reach a full dimensional subset of its C-space, and its C-space is compact, then the body is controllable. Come up with a planning method that takes an arbitrary 1D curve of relative configurations and finds a sequence to reach the goal state.

  • Limit cycles in parts feeding by throwing and catching. We use a 1 joint arm to throw and catch polygonal parts. If we throw the part repeatedly using the same throw, the part tends to enter a limit cycle, where it cycles through the same resting configurations on the arm. Show theoretically that an object always enters a limit cycle if it does not escape the arm. Experimentally (in simulation) demonstrate the regions of attraction to each limit cycle. See if two different parts head to two different limit cycles, making the arm act as a parts sorter. Choose a point on a limit cycle as a "trap": when the part enters the trap, it is captured (in a known orientation) for placement on an assembly. Should be a point on the arm the object can only reach in one orientation.

  • Build a simple parts thrower/accumulator. The device is just a long lever, with a cup at the fulcrum. Make the lever horizontal in gravity, and place small objects (like washers or nuts) at different points on the lever right of the cup. Apply a downward impulse on the lever left of the cup, causing an immediate upward velocity on the right side, launching the objects. If we choose the impulse properly, the small objects fly in a parabolic arcs and all land in the cup, eliminating their position uncertainty.