diff --git a/src/darwin_robot.cpp b/src/darwin_robot.cpp
index 7f2d9939276baaa60b9121e08d4e1128cb2b496c..f33a62d9b21d01f98f9207f5ac55df9329a71fa4 100644
--- a/src/darwin_robot.cpp
+++ b/src/darwin_robot.cpp
@@ -848,6 +848,16 @@ std::vector<double> CDarwinRobot::mm_get_servo_offsets(void)
     throw CDarwinRobotException(_HERE_,"Invalid robot device");
 }
 
+void CDarwinRobot::mm_set_balance_gains(double knee,double ankle_pitch,double hip_roll,double ankle_roll)
+{
+
+}
+
+void CDarwinRobot::mm_get_balance_gains(double *knee,double *ankle_pitch,double *hip_roll,double *ankle_roll)
+{
+
+}
+
 // motion action interface
 void CDarwinRobot::action_load_page(unsigned char page_id)
 {
@@ -1509,6 +1519,27 @@ void CDarwinRobot::joints_load(joints_grp_t group,std::vector<unsigned char> &se
     throw CDarwinRobotException(_HERE_,"Invalid robot device");
 }
 
+std::vector<unsigned char> CDarwinRobot::joints_get_group_servos(joints_grp_t group)
+{
+
+}
+
+std::vector<double> CDarwinRobot::joints_get_group_angles(joints_grp_t group)
+{
+
+}
+
+std::vector<double> CDarwinRobot::joints_get_group_speeds(joints_grp_t group)
+{
+
+}
+
+std::vector<double> CDarwinRobot::joints_get_group_accels(joints_grp_t group)
+{
+
+}
+
+
 void CDarwinRobot::joints_start(joints_grp_t group)
 {
   if(this->robot_device!=NULL)
@@ -1547,6 +1578,73 @@ bool CDarwinRobot::joints_are_moving(joints_grp_t group)
     throw CDarwinRobotException(_HERE_,"Invalid robot device");
 }
 
+// head tracking interface
+void CDarwinRobot::head_set_pan_pid(double p,double i,double d,double i_clamp)
+{
+ 
+}
+
+void CDarwinRobot::head_get_pan_pid(double *p,double *i,double *d,double *i_clamp)
+{
+ 
+}
+
+void CDarwinRobot::head_set_tilt_pid(double p,double i,double d,double i_clamp)
+{
+ 
+}
+
+void CDarwinRobot::head_get_tilt_pid(double *p,double *i,double *d,double *i_clamp)
+{
+ 
+}
+
+void CDarwinRobot::head_set_pan_range(double max,double min)
+{
+ 
+}
+
+void CDarwinRobot::head_get_pan_range(double *max,double *min)
+{
+ 
+}
+
+void CDarwinRobot::head_set_tilt_range(double max,double min)
+{
+ 
+}
+
+void CDarwinRobot::head_get_tilt_range(double *max,double *min)
+{
+ 
+}
+
+void CDarwinRobot::head_start_tracking(double pan,double tilt)
+{
+ 
+}
+
+void CDarwinRobot::head_stop_tracking(void)
+{
+ 
+}
+
+bool CDarwinRobot::head_is_tracking(void)
+{
+ 
+}
+
+void CDarwinRobot::head_set_new_target(double pan,double tilt)
+{
+ 
+}
+
+void CDarwinRobot::head_get_current_target(double pan,double tilt)
+{
+ 
+}
+
+
 CDarwinRobot::~CDarwinRobot()
 {
   if(this->robot_device!=NULL)
diff --git a/src/darwin_robot.h b/src/darwin_robot.h
index 73d5f84d72d0731a6e2acc9f0136913ce29454c6..61014a7fa5074972a9510dd34f267e496e947645 100644
--- a/src/darwin_robot.h
+++ b/src/darwin_robot.h
@@ -166,9 +166,27 @@ class CDarwinRobot
     double walk_get_turn_step(void);
     // joint motion interface
     void joints_load(joints_grp_t group,std::vector<unsigned char> &servos,std::vector<double> &angles,std::vector<double> &speeds,std::vector<double> &accels);
+    std::vector<unsigned char> joints_get_group_servos(joints_grp_t group);
+    std::vector<double> joints_get_group_angles(joints_grp_t group);
+    std::vector<double> joints_get_group_speeds(joints_grp_t group);
+    std::vector<double> joints_get_group_accels(joints_grp_t group);
     void joints_start(joints_grp_t group);
     void joints_stop(joints_grp_t group);
     bool joints_are_moving(joints_grp_t group);
+    // head tracking interface
+    void head_set_pan_pid(double p,double i,double d,double i_clamp);
+    void head_get_pan_pid(double *p,double *i,double *d,double *i_clamp);
+    void head_set_tilt_pid(double p,double i,double d,double i_clamp);
+    void head_get_tilt_pid(double *p,double *i,double *d,double *i_clamp);
+    void head_set_pan_range(double max,double min);
+    void head_get_pan_range(double *max,double *min);
+    void head_set_tilt_range(double max,double min);
+    void head_get_tilt_range(double *max,double *min);
+    void head_start_tracking(double pan,double tilt);
+    void head_stop_tracking(void);
+    bool head_is_tracking(void);
+    void head_set_new_target(double pan,double tilt);
+    void head_get_current_target(double pan,double tilt);
     ~CDarwinRobot();
 };