Homepage Demos Overview Downloads Tutorials Reference
Credits

StartupBehavior_SetupWalkEdit.cc

Go to the documentation of this file.
00001 /*! @file
00002  * @brief Sets up menus for runtime editing of parameters for the CMPack'02 walk engine
00003  *
00004  * Contributed by:
00005  * Pennsylvania Governor's School for the Sciences 2003 Team Project
00006  * Group name: "See, Spot; Run"
00007  * Members: Haoqian Chen, Elena Glassman, Chengjou Liao, Yantian Martin, Lisa Shank, Jon Stahlman
00008  *
00009  * @author PA Gov. School for the Sciences 2003 Team Project - Motion group: Haoqian Chen, Yantian Martin, Jon Stahlman (creators)
00010  * 
00011  * $Author: ejt $
00012  * $Name: tekkotsu-1_5 $
00013  * $Revision: 1.2 $
00014  * $State: Rel $
00015  * $Date: 2003/10/10 00:45:32 $
00016  */
00017 
00018 #include "StartupBehavior.h"
00019 
00020 #include "Behaviors/Controls/ControlBase.h"
00021 
00022 #include "Behaviors/Mon/WalkControllerBehavior.h"
00023 #include "Behaviors/Controls/BehaviorSwitchControl.h"
00024 #include "Behaviors/Controls/LoadWalkControl.h"
00025 #include "Behaviors/Controls/SaveWalkControl.h"
00026 #include "Behaviors/Controls/ValueEditControl.h"
00027 
00028 ControlBase*
00029 StartupBehavior::SetupWalkEdit() {
00030   addItem(new ControlBase("Walk Edit","Edit the walk parameters"));
00031   startSubMenu();
00032   { 
00033     WalkControllerBehavior * walker = new WalkControllerBehavior ;
00034     addItem((new BehaviorSwitchControl<WalkControllerBehavior>("Walk Remote Control",walker)));
00035 
00036     addItem(new ValueEditControl<float>("Slow Motion",walker->getWalkMC()->getSlowMo()));
00037 
00038     addItem(new ControlBase("Body","Edit the walk parameters"));
00039     startSubMenu();
00040     { 
00041       addItem(new ValueEditControl<double>("Body Height",&walker->getWalkMC()->getWP().body_height));
00042       addItem(new ValueEditControl<double>("Body Angle",&walker->getWalkMC()->getWP().body_angle));
00043       addItem(new ValueEditControl<double>("Hop",&walker->getWalkMC()->getWP().hop));
00044       addItem(new ValueEditControl<double>("Sway",&walker->getWalkMC()->getWP().sway));
00045       addItem(new ValueEditControl<long>("Period",&walker->getWalkMC()->getWP().period));
00046     }
00047     endSubMenu();
00048 
00049     addItem(new ControlBase("Neutral","Edit the walk parameters"));
00050     startSubMenu();
00051     { 
00052       addItem(new ValueEditControl<double>("NeuLeg[xFL]",&walker->getWalkMC()->getWP().leg[0].neutral.x));
00053       addItem(new ValueEditControl<double>("NeuLeg[xFR]",&walker->getWalkMC()->getWP().leg[1].neutral.x));
00054       addItem(new ValueEditControl<double>("NeuLeg[xBL]",&walker->getWalkMC()->getWP().leg[2].neutral.x));
00055       addItem(new ValueEditControl<double>("NeuLeg[xBR]",&walker->getWalkMC()->getWP().leg[3].neutral.x));
00056       addItem(new ValueEditControl<double>("NeuLeg[yFL]",&walker->getWalkMC()->getWP().leg[0].neutral.y));
00057       addItem(new ValueEditControl<double>("NeuLeg[yFR]",&walker->getWalkMC()->getWP().leg[1].neutral.y));
00058       addItem(new ValueEditControl<double>("NeuLeg[yBL]",&walker->getWalkMC()->getWP().leg[2].neutral.y));
00059       addItem(new ValueEditControl<double>("NeuLeg[yBR]",&walker->getWalkMC()->getWP().leg[3].neutral.y));
00060       addItem(new ValueEditControl<double>("NeuLeg[zFL]",&walker->getWalkMC()->getWP().leg[0].neutral.z));
00061       addItem(new ValueEditControl<double>("NeuLeg[zFR]",&walker->getWalkMC()->getWP().leg[1].neutral.z));
00062       addItem(new ValueEditControl<double>("NeuLeg[zBL]",&walker->getWalkMC()->getWP().leg[2].neutral.z));
00063       addItem(new ValueEditControl<double>("NeuLeg[zBR]",&walker->getWalkMC()->getWP().leg[3].neutral.z));
00064     }
00065     endSubMenu();
00066 
00067     addItem(new ControlBase("lift_vel","Edit the walk parameters"));
00068     startSubMenu();
00069     { 
00070       addItem(new ValueEditControl<double>("liftLeg[xFL]",&walker->getWalkMC()->getWP().leg[0].lift_vel.x));
00071       addItem(new ValueEditControl<double>("liftLeg[xFR]",&walker->getWalkMC()->getWP().leg[1].lift_vel.x));
00072       addItem(new ValueEditControl<double>("liftLeg[xBL]",&walker->getWalkMC()->getWP().leg[2].lift_vel.x));
00073       addItem(new ValueEditControl<double>("liftLeg[xBR]",&walker->getWalkMC()->getWP().leg[3].lift_vel.x));
00074       addItem(new ValueEditControl<double>("liftLeg[yFL]",&walker->getWalkMC()->getWP().leg[0].lift_vel.y));
00075       addItem(new ValueEditControl<double>("liftLeg[yFR]",&walker->getWalkMC()->getWP().leg[1].lift_vel.y));
00076       addItem(new ValueEditControl<double>("liftLeg[yBL]",&walker->getWalkMC()->getWP().leg[2].lift_vel.y));
00077       addItem(new ValueEditControl<double>("liftLeg[yBR]",&walker->getWalkMC()->getWP().leg[3].lift_vel.y));
00078       addItem(new ValueEditControl<double>("liftLeg[zFL]",&walker->getWalkMC()->getWP().leg[0].lift_vel.z));
00079       addItem(new ValueEditControl<double>("liftLeg[zFR]",&walker->getWalkMC()->getWP().leg[1].lift_vel.z));
00080       addItem(new ValueEditControl<double>("liftLeg[zBL]",&walker->getWalkMC()->getWP().leg[2].lift_vel.z));
00081       addItem(new ValueEditControl<double>("liftLeg[zBR]",&walker->getWalkMC()->getWP().leg[3].lift_vel.z));
00082     }
00083     endSubMenu();
00084 
00085     addItem(new ControlBase("down_vel","Edit the walk parameters"));
00086     startSubMenu();
00087     { 
00088       addItem(new ValueEditControl<double>("downLeg[xFL]",&walker->getWalkMC()->getWP().leg[0].down_vel.x));
00089       addItem(new ValueEditControl<double>("downLeg[xFR]",&walker->getWalkMC()->getWP().leg[1].down_vel.x));
00090       addItem(new ValueEditControl<double>("downLeg[xBL]",&walker->getWalkMC()->getWP().leg[2].down_vel.x));
00091       addItem(new ValueEditControl<double>("downLeg[xBR]",&walker->getWalkMC()->getWP().leg[3].down_vel.x));
00092       addItem(new ValueEditControl<double>("downLeg[yFL]",&walker->getWalkMC()->getWP().leg[0].down_vel.y));
00093       addItem(new ValueEditControl<double>("downLeg[yFR]",&walker->getWalkMC()->getWP().leg[1].down_vel.y));
00094       addItem(new ValueEditControl<double>("downLeg[yBL]",&walker->getWalkMC()->getWP().leg[2].down_vel.y));
00095       addItem(new ValueEditControl<double>("downLeg[yBR]",&walker->getWalkMC()->getWP().leg[3].down_vel.y));
00096       addItem(new ValueEditControl<double>("downLeg[zFL]",&walker->getWalkMC()->getWP().leg[0].down_vel.z));
00097       addItem(new ValueEditControl<double>("downLeg[zFR]",&walker->getWalkMC()->getWP().leg[1].down_vel.z));
00098       addItem(new ValueEditControl<double>("downLeg[zBL]",&walker->getWalkMC()->getWP().leg[2].down_vel.z));
00099       addItem(new ValueEditControl<double>("downLeg[zBR]",&walker->getWalkMC()->getWP().leg[3].down_vel.z));
00100     }
00101     endSubMenu();
00102 
00103     addItem(new ControlBase("lift_time","Edit the walk parameters"));
00104     startSubMenu();
00105     { 
00106       addItem(new ValueEditControl<double>("liftimeLeg[FL]",&walker->getWalkMC()->getWP().leg[0].lift_time));
00107       addItem(new ValueEditControl<double>("liftimeLeg[FR]",&walker->getWalkMC()->getWP().leg[1].lift_time));
00108       addItem(new ValueEditControl<double>("liftimeLeg[BL]",&walker->getWalkMC()->getWP().leg[2].lift_time));
00109       addItem(new ValueEditControl<double>("liftimeLeg[BR]",&walker->getWalkMC()->getWP().leg[3].lift_time));
00110     }
00111     endSubMenu();
00112 
00113     addItem(new ControlBase("down_time","Edit the walk parameters"));
00114     startSubMenu();
00115     { 
00116       addItem(new ValueEditControl<double>("downimeLeg[FL]",&walker->getWalkMC()->getWP().leg[0].down_time));
00117       addItem(new ValueEditControl<double>("downimeLeg[FR]",&walker->getWalkMC()->getWP().leg[1].down_time));
00118       addItem(new ValueEditControl<double>("downimeLeg[BL]",&walker->getWalkMC()->getWP().leg[2].down_time));
00119       addItem(new ValueEditControl<double>("downimeLeg[BR]",&walker->getWalkMC()->getWP().leg[3].down_time));
00120     }
00121     endSubMenu();
00122 
00123     addItem(new LoadWalkControl("Load Walk",walker->getWalkMC()));
00124     addItem(new SaveWalkControl("Save Walk",walker->getWalkMC()));
00125   }
00126   return endSubMenu();
00127 }

Tekkotsu v1.5
Generated Fri Oct 10 15:52:00 2003 by Doxygen 1.3.4