| This dissertation describes a controller and a control framework to enable a robot to rock climb.; The specific application that motivated this research is the exploration of cliff sites on Mars. These steep slopes are of particular interest to researchers because it is believed that they are the most likely location to find evidence of water on Mars. In order to climb these surfaces without disturbing them, a robot will need to carefully pick its way across irregular terrain while utilizing the frictional properties of the surface and being careful not to fall.; A robot climbing in such a scenario is heavily constrained. It has limited torque capabilities, needs to monitor the force conditions in each hand to be sure it's not about to slip off its holds, and must deal with uncertainties in both the state of the robot itself and of the environment its climbing in. A climbing robot also has more actuators than positional degrees of freedom, meaning the motors can be used to accomplish many tasks. For example, they can maintain the robot's position, adjust the forces at each hand to make sure they don't slip, and balance the forces among all the arms.; With these constraints and advantages in mind, a controller is proposed here that calculates motor inputs which satisfy the constraints, follow a planned path, and use the extra degrees of freedom to improve the robot's robustness.; This controller is set in a framework that includes a number of different parts. First, a time is associated with a set of statically stable waypoints that define a route up a wall in order to determine how quickly the robot can feasibly climb. The desired route is then compared with the actual robot body position, which is estimated via a Non-Linear Least Squares (NLLS) technique. A Cartesian controller computes a desired body force and then this force is checked to see if is allowable (i.e., it won't make the robot jump). The body force is then converted to joint torques by using a Linear Program convex optimization technique. This optimization includes all the constraints and objectives of the robot phrased as linear constraints with a linear objective function designed to make the robot more robust. The Cartesian controller, dynamic feasibility check and LP together are called Cartesian Force Convex (CFC) control.; Also included as part of this control technique is a Finite State Machine (FSM) to switch between modes of control when hands become free of their holds or are making and breaking contact. Furthermore, since command of joint torques is a key part of this control, techniques for estimating the torque in each joint are described for both direct drive motors and geared motors with tip force sensors.; This control framework is demonstrated on three robotic platforms. These are JPL's LEMUR robot, the Free-flyer robot, and the Capuchin robot. The experiments and simulations on these platforms demonstrate the controller's ability to operate in real time and to make a robot climb relatively quickly through irregularly placed, difficult, and uncertain terrain. |