Footstep.h
Go to the documentation of this file.
00001 /*
00002  * A footstep planner for humanoid robots
00003  *
00004  * Copyright 2010-2011 Johannes Garimort, Armin Hornung, University of Freiburg
00005  * http://www.ros.org/wiki/footstep_planner
00006  *
00007  *
00008  *
00009  * This program is free software: you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation, version 3.
00012  *
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00020  */
00021 
00022 #ifndef FOOTSTEP_PLANNER_FOOTSTEP_H_
00023 #define FOOTSTEP_PLANNER_FOOTSTEP_H_
00024 
00025 #include <footstep_planner/PlanningState.h>
00026 
00027 
00028 namespace footstep_planner
00029 {
00038 class Footstep
00039 {
00040 public:
00055   Footstep(double x, double y, double theta,
00056            double cell_size, int num_angle_bins, int max_hash_size);
00057   ~Footstep();
00058 
00067   PlanningState performMeOnThisState(const PlanningState& current) const;
00068 
00077   PlanningState reverseMeOnThisState(const PlanningState& current) const;
00078 
00079 private:
00081   typedef std::pair<int, int> footstep_xy;
00082 
00084   void init(double x, double y);
00085 
00103   int calculateForwardStep(Leg leg, int global_theta,
00104                            double x, double y,
00105                            int* footstep_x, int* footstep_y) const;
00106 
00108   int ivTheta;
00109 
00111   double ivCellSize;
00113   int ivNumAngleBins;
00114 
00116   int ivMaxHashSize;
00117 
00119   std::vector<footstep_xy> ivDiscSuccessorLeft;
00121   std::vector<footstep_xy> ivDiscSuccessorRight;
00123   std::vector<footstep_xy> ivDiscPredecessorLeft;
00125   std::vector<footstep_xy> ivDiscPredecessorRight;
00126 };
00127 } // end of namespace
00128 
00129 #endif  // FOOTSTEP_PLANNER_FOOTSTEP_H_


footstep_planner
Author(s): Johannes Garimort, Armin Hornung
autogenerated on Wed Aug 26 2015 11:54:31