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:
- Find toppling transition directed graphs for 3D parts, maybe using
simulation.
- Find time-optimal plans for repositioning parts. One possibility
is to use nonlinear optimization, a la the 1JOC, using CFSQP, GINO,
or Matlab routines. Another possibility is to do a search for all
possible combinations of pushes and topples that get to the goal
configuration. Then for each of these, optimize the pushing angles
to minimize time. This can be done with nonlinear optimization, or
with a discretized search. Should satisfy radius constraints.
Then find the minimum time of all the possibilities, execute that.
- 3D pushing with out-of-plane forces, 3D toppling force-balance.
- Investigate the connectivity of the toppling transition directed
graph as a function of the geometry of the part, conveyor friction,
and fence friction.
- Computer control of the conveyor velocity.
- Fixed-height fence toppling.
- 3D analysis of toppling at an angle, backwards toppling, turning off the
conveyor and seeing what's possible.
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.