00001 /* 00002 * Copyright (c) 2010, Thomas Ruehr <ruehr@cs.tum.edu> 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions are met: 00007 * 00008 * * Redistributions of source code must retain the above copyright 00009 * notice, this list of conditions and the following disclaimer. 00010 * * Redistributions in binary form must reproduce the above copyright 00011 * notice, this list of conditions and the following disclaimer in the 00012 * documentation and/or other materials provided with the distribution. 00013 * * Neither the name of Willow Garage, Inc. nor the names of its 00014 * contributors may be used to endorse or promote products derived from 00015 * this software without specific prior written permission. 00016 * 00017 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00018 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00019 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00020 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 00021 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 00022 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 00023 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00024 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 00025 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 00026 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00027 * POSSIBILITY OF SUCH DAMAGE. 00028 */ 00029 00030 00031 #ifndef __POSES_H__ 00032 #define __POSES_H__ 00033 00034 class Poses { 00035 public: 00036 static double milehighPoseA[7]; 00037 static double milehighPoseB[7]; 00038 //{-0.82681730923312724, 0.15596892532371576, -0.16835406527856578, -1.7773528734848965, -197.19522687315879, -1.0987956365304499, 284.37391632306253}; 00039 // arm joint angles for seeing the marker with the hand camera 00040 //high drawer 00041 static double highPoseA[7]; 00042 static double highPoseB[7]; 00043 00044 //low drawer 00045 static double lowPoseA[7]; 00046 static double lowPoseB[7]; 00047 00048 //middle drawer 00049 static double midPoseA[7]; 00050 static double midPoseB[7]; 00051 00052 //tucking pose, expects left arm to be tucked already 00053 static double tuckPose[7]; 00054 static double tuckPoseForLeft[7]; 00055 //untucking poses, hand follows the base in a circular motion 00056 static double untuckPoseA[7]; 00057 static double untuckPoseB[7]; 00058 00059 static double leftHighB[7]; 00060 static double leftHighA[7]; 00061 00062 static double lf0[7]; 00063 static double lf1[7]; 00064 static double lf2[7]; 00065 static double lf3[7]; 00066 00067 static double dishA[7]; 00068 static double dishB[7]; 00069 static double dishC[7]; 00070 static double dishD[7]; 00071 00072 // robot poses in map frame 00073 static double poseA[4]; // island left 00074 static double poseB[4]; //island middle 00075 static double poseC[4]; //island right 00076 //double poseD[4] = { .212, 2.89, 0, 1}; // below oven 00077 static double poseD[4]; // below oven 00078 static double poseE[4]; //sink left 00079 static double poseF[4]; // sink dishwasher 00080 static double poseG[4]; // sink righ / trash 00081 static double poseH[4]; // right of oven 00082 static double poseI[4]; // fridge 00083 static double poseJ[4]; // fridge 00084 00085 //double poseD1[4] = { -0.996, 2.152, 0.921, -.390}; // %8 00086 //double poseD2[4] = { -.754, 0.239, 0.952, .306}; // %9 00087 //double poseD3[4] = { .242, 2.263, 0, 1}; // right of heater 00088 //double poseD4[4] = { .242, 2.263, 0, 1}; // right of heater 00089 00090 static double pose0[4]; // somewhere in between island and sink 00091 00092 static double *poses[20]; 00093 00094 static int drw_top ; 00095 static int drw_mid ; 00096 static int drw_low ; 00097 00098 static double inDrawer0[]; 00099 00100 static double prepDishL0[7]; 00101 static double prepDishR0[7]; 00102 static double prepDishL1[7]; 00103 static double prepDishR1[7]; 00104 00105 static double prepDishRT[7]; 00106 static double prepDishLT[7]; 00107 00108 00109 private: 00110 Poses(){} 00111 }; 00112 00113 /* 00114 00115 00116 00117 00118 */ 00119 00120 #endif