This site will work and look better in a browser that supports web standards, but it is accessible to any browser or Internet device.
The goal of my research is to create useful autonomous systems that can perform difficult, dangerous, or tedious tasks. These systems should be safe, user-friendly, context-aware, highly mobile, and intervention-capable. To that end, I am currently working on the design of motion strategies for autonomous mobile robots. Different applications (e.g., rock-climbing, dynamic movement, or group navigation) require different strategies. However, by considering a variety of these applications, I hope to develop fundamental design principles which can be applied to new situations.
Simulation of a 3D climbing robot, modelled after a real hardware system.
Simulation of a planar, three-limbed climbing robot. Click to view a movie of this robot ascending a large vertical environment. [AVI] [MPEG-1]
A human climber (me) performing a classic back-step move at Castle Rock State Park, CA.
The planar robot performing a similar back-step move in a simulated environment.
Click to watch a preliminary, first-ever demonstration of a real robot climbing through a real (well, climbing-wall style) vertical environment consisting of arbitrarily placed holds. (Note: the movie has been edited and sped-up for ease of viewing, but it was taken in a single run and all of the motion planning was online and autonomous.) [MOV]
A new and improved video of LEMUR IIb climbing. [MPEG-1]
The goal of this project is to enable a multi-limbed robot to climb vertical rock, using skills and techniques similar to those developed by human climbers. In particular, I want the robot to free-climb (i.e., use only natural features and friction of the terrain for upward progress) rather than aid-climb (i.e., rely on on additional gear for progress).
Climbing is hard! I believe it can become a driving problem for robotics. It involves many fundamental issues, such as hardware design, sensing, control, planning, and grasping. Fields such as computer vision, manipulation and tactile perception, and mechatronics are all related to the problem.
Motion planning is the current focus of my research. Various people have asked me why I want to address planning before addressing the problem of hardware design. The quick answer is that these are just two parts of a larger problem—I'm working on one part, while other people are working on other parts (e.g., some neat research on Gecko-type adhesion). However, this is also a difference in philosophy. I am not interested in designing a new climbing robot. Instead, I want to expand the range of mobility of existing robots. Using smart motion-planning techniques, robots that have not been specifically designed for climbing may still do so. This philosophy is motivated by the human approach!
Humans are not designed to climb steep natural rock terrain. (Leave stuff like that to lizards and mountain goats!) Nevertheless, they do so, using learned techniques for sensing, control, planning, and grasping. I am developing the same types of techniques for general multi-limbed robots.
Potential applications include search-and-rescue in mountainous terrain or broken urban environments, exploration of sub-surface environments such as caves, and planetary exploration. Granted, these applications are far-out and ambitious! But along the way, this research may also yield the discovery of new modes of mobility and new motion strategies for other, non-climbing, limbed robots. Human climbers often report on discovering these new degrees of freedom providing increased balance and range of movement in everyday activity.
The first step in developing new motion-planning algorithms for climbing robots was to look at a simple example system. I chose a planar three-limbed robot, because it was possible (althought not easy) both to get a good intuitive grasp and to perform a complete analytical study of the problem. The robot was assumed to always be in quasi-static motion. I developed a constructive specification of the equilibrium constraint, which I used to decompose the degrees of freedom of the robot and implement a fast, online algorithm for computing one-step motions. This decomposition was based on an analysis of the connectivity of the free space, which I also used to design a good heuristic for finding long paths through environments with many arbitrarily angled and placed climbing holds, reducing typical planning times from 30 minutes to 1-2 seconds.
The next step was to take these techniques and extend them to a 3D robot, moving through 3D terrain. I modelled this robot after LEMUR II, currently being developed in the Planetary Robotics Laboratory at NASA-JPL. This robot has 22 degrees of freedom (DOF), in contrast to the 6 DOF of the planar robot. (These numbers become 13 and 4, respectively, with the closed chain constraint.) This increase in complexity makes it difficult to directly scale the analytical techniques I used to design a fast continuous planning algorithm for the planar robot. However, my general planning framework (and intuition) can be scaled. Screenshots of preliminary results are shown below. (I included a similar motion by a human climber as a point of comparison.)
Just recently, I implemented my motion-planning algorithm on actual hardware, using LEMUR IIb, a planar version of LEMUR II! This is an on-going project, with a huge number of problems remaining to be solved.
Collaborators: Teresa Miller, Kris Hauser, Stephen Rock, and Jean-Claude Latombe.
Publications: See my publications page.
Example of motion computed by my planning algorithm for the 3D four-limbed robot modelled after LEMUR II (Planetary Robotics Laboratory, NASA-JPL).
Problem setup for a simple "monkey-like" robot jumping between two pegs.
Comparison between a nominal jump trajectory and the trajectory designed by my algorithm, for the robot jumping between pegs.
Close-up of the two trajectories. The robust trajectory stays inside the goal preimage longer than the nominal trajectory. I've also generated movies of a successful (nominal) jump, an unsuccessful (nominal) jump, and a successful robust jump.
The goal of this project is to enable robust execution of aggressive maneuvers, such as jumping or hopping, by autonomous robots. These maneuvers are difficult, since success depends critically on the state of the system as it begins them. Typically the robot will be moving rapidly in order to build up momentum for the jump, so attaining a particular state is hard.
My approach is to explicitly consider uncertainty in the execution of aggressive maneuvers when designing the maneuver trajectory. I have defined several different criteria which can be used as constraints when planning, in order to guarantee a certain level of robustness to this uncertainty.
For example, assume that I want a "monkey-type" robot (as shown at right) to jump between two pegs. It can do this by exerting torque on the first peg, swinging up to gain momentum, then letting go, flying through the air, and hopefully attaching to the second peg. For this simple system, I can explicitly calculate the goal preimage, or that set of initial states that will bring the robot safely to the second peg, in the presence of process and sensor noise enroute. However, this doesn't consider noise in the time that the robot lets go of the first peg. One appropriate robustness criterion for designing a maneuver trajectory is that this trajectory should pass through and remain in the goal preimage for at least as long as the range over which the release-time is expected to vary.
The trajectory design problem given this robustness criterion can actually be formulated as a convex optimization (for lots more information about this type of optimization problem see Stephen Boyd's web page.) In other words, it can be solved extremely fast.
Results currently exist only in simulation, as I have stopped work on this project. However, I believe that these ideas will eventually be applied to real systems. In fact, the trajectory design method is applicable to a much broader class of systems than just hopping and jumping robots. Any system that needs to make a precise transition between two discrete states, in the presence of continuous dynamics, could be made more robust using my techniques. If nothing else, this project represents an interesting application of convex optimization to trajectory design.
Collaborators: Stephen Rock.
Publications: See my publications page.
The robots we use in the ARL for hardware demonstrations.
The goal of this project is to enable groups of mobile robots to perform tasks faster, better, or more robustly than a single robot. Research in the Aerospace Robotics Lab has focused on sensing (passive and active), control, motion planning, assembly planning, and high-level task planning for groups of robots. Currently I have a peripheral role in this project.
For more information, please see the official ARL project web site or the web page of Chris Clark.
Collaborators: Chris Clark and Stephen Rock.
Publications: See my publications page.