  We present an algorithm for steering the output of a linear system from a
feasible initial condition to a desired target position, while satisfying input
constraints and non-convex output constraints. The system input is generated by
a collection of local linear state-feedback controllers. The path-planning
algorithm selects the appropriate local controller using a graph search, where
the nodes of the graph are the local controllers and the edges of the graph
indicate when it is possible to transition from one local controller to another
without violating input or output constraints. We present two methods for
computing the local controllers. The first uses a fixed-gain controller and
scales its positive invariant set to satisfy the input and output constraints.
We provide a linear program for determining the scale-factor and a condition
for when the linear program has a closed-form solution. The second method
designs the local controllers using a semi-definite program that maximizes the
volume of the positive invariant set that satisfies state and input
constraints. We demonstrate our path-planning algorithm on docking of a
spacecraft. The semi-definite programming based control design has better
performance but requires more computation.
