00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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 }