Footstep.h
Go to the documentation of this file.
00001 // SVN $HeadURL: https://alufr-ros-pkg.googlecode.com/svn/trunk/humanoid_navigation/footstep_planner/include/footstep_planner/Dstar.h $
00002 // SVN $Id: Dstar.h 1168 2011-03-30 03:18:02Z hornunga@informatik.uni-freiburg.de $
00003 
00004 /*
00005  * A footstep planner for humanoid robots
00006  *
00007  * Copyright 2010-2011 Johannes Garimort, Armin Hornung, University of Freiburg
00008  * http://www.ros.org/wiki/footstep_planner
00009  *
00010  * D* Lite (Koenig et al. 2002) partly based on the implementation
00011  * by J. Neufeld (http://code.google.com/p/dstarlite/)
00012  *
00013  *
00014  * This program is free software: you can redistribute it and/or modify
00015  * it under the terms of the GNU General Public License as published by
00016  * the Free Software Foundation, version 3.
00017  *
00018  * This program is distributed in the hope that it will be useful,
00019  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00021  * GNU General Public License for more details.
00022  *
00023  * You should have received a copy of the GNU General Public License
00024  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00025  */
00026 
00027 #ifndef FOOTSTEP_PLANNER_FOOTSTEP_H_
00028 #define FOOTSTEP_PLANNER_FOOTSTEP_H_
00029 
00030 #include <footstep_planner/PlanningState.h>
00031 
00032 
00033 namespace footstep_planner
00034 {
00043 class Footstep
00044 {
00045 public:
00060   Footstep(double x, double y, double theta,
00061            double cell_size, int num_angle_bins, int max_hash_size);
00062   ~Footstep();
00063 
00072   PlanningState performMeOnThisState(const PlanningState& current) const;
00073 
00082   PlanningState reverseMeOnThisState(const PlanningState& current) const;
00083 
00084 private:
00086   typedef std::pair<int, int> footstep_xy;
00087 
00089   void init();
00090 
00106   int calculateForwardStep(Leg leg, int global_theta,
00107                            int* footstep_x, int* footstep_y) const;
00108 
00110   int ivTheta;
00111 
00113   double ivContX;
00115   double ivContY;
00116 
00118   double ivCellSize;
00120   int ivNumAngleBins;
00121 
00123   int ivMaxHashSize;
00124 
00126   std::vector<footstep_xy> ivDiscSuccessorLeft;
00128   std::vector<footstep_xy> ivDiscSuccessorRight;
00130   std::vector<footstep_xy> ivDiscPredecessorLeft;
00132   std::vector<footstep_xy> ivDiscPredecessorRight;
00133 };
00134 } // end of namespace
00135 
00136 #endif  // FOOTSTEP_PLANNER_FOOTSTEP_H_


bipedRobin_footstep_planner
Author(s):
autogenerated on Fri Nov 15 2013 11:11:28