Index: trunk/extremum_seeking/esc_common/include/esc_common/esc.h
===================================================================
--- trunk/extremum_seeking/esc_common/include/esc_common/esc.h	(revision 9)
+++ trunk/extremum_seeking/esc_common/include/esc_common/esc.h	(revision 13)
@@ -15,31 +15,53 @@
 #include <string>
 #define PI 3.141592654
+
+/// Superclass for extremum seeking control algorithms.
 class ESC
 {
-public:
-
-	enum inputType { inputStateValue, inputValue };
-	enum outputType { outputVelocity, outputPosition };
+  public:
+    /// Controller input type
+    enum inputType
+    {
+      inputStateValue, ///< State-value input.
+      inputValue       ///< Value input.
+    };
+	
+    /// Controller output type.
+    enum outputType
+    {
+      outputVelocity,  ///< Velocity reference output.
+      outputPosition   ///< Position reference output.
+    };
 
 public:
-	virtual ~ESC() { }
+    virtual ~ESC() { }
 
-	virtual std::vector<std::string> monitorNames() { return std::vector<std::string>(); }
-	virtual std::vector<double> monitor() { return std::vector<double>(); }
+    /// Get internal monitor variable names.
+    virtual std::vector<std::string> monitorNames() { return std::vector<std::string>(); }
+	
+    /// Get internal monitor variables.
+    virtual std::vector<double> monitor() { return std::vector<double>(); }
 
-	virtual inputType getInputType() = 0;
-	virtual outputType getOutputType() = 0;
+    /// Get controller input type.
+    virtual inputType getInputType() = 0;
+	
+    /// Get controller output type.
+    virtual outputType getOutputType() = 0;
 
-	virtual std::vector<double> step(std::vector<double> state, double obj_val)
-	{
-		return step(obj_val);
-	}
+    /// Control step function for value-input control algorithms.
+    virtual std::vector<double> step(std::vector<double> state, double obj_val)
+    {
+      return step(obj_val);
+    }
 
-	virtual std::vector<double> step(double obj_val)
-	{
-		return std::vector<double>();
-	}
+    /// Control step function for state-input control algorithms.
+    virtual std::vector<double> step(double obj_val)
+    {
+      return std::vector<double>();
+    }
+
+    /// Reset control algorithm to initial conditions.
+    virtual void reset() = 0;
 };
 
-
 #endif /* ESC_H_ */
