00001 #ifndef _OBSTACLEAVOIDER_H
00002 #define _OBSTACLEAVOIDER_H
00003
00029 #include <ObstacleAvoiderTransport.H>
00030
00031 namespace WURDE{
00032
00040 class ObstacleAvoider : public ObstacleAvoiderTransport {
00041
00042 public:
00043 explicit ObstacleAvoider(const std::string &streamname):
00044 ObstacleAvoiderTransport(streamname){}
00045
00046 ObstacleAvoider(const ConnectionStrategy & strategy,const std::string & gblName):
00047 ObstacleAvoiderTransport(strategy,gblName){}
00048
00049 ObstacleAvoider(const std::string & streamname,const std::string & gblName):
00050 ObstacleAvoiderTransport(streamname,gblName){}
00051
00052 ~ObstacleAvoider(){};
00053
00054 void setAvoidanceRadius(double radius);
00055 void stop();
00056
00057 void moveToPoint(Point &goal);
00058 void moveToPoint(const double &x, const double &y);
00059 void moveToPose(Pose &goal);
00060 void moveToPose(const double &x, const double &y, const double &theta);
00061 void rotateToAngle(const double &theta);
00062
00063 void moveToRelativePoint(Point &goal);
00064 void moveToRelativePoint(const double &x, const double &y);
00065 void moveToRelativePose(Pose &goal);
00066 void moveToRelativePose(const double &x, const double &y, const double &theta);
00067 void rotateToRelativeAngle(const double &theta);
00068
00069 void translateFixedDistance(const double &distance);
00070 void rotateFixedAngle(const double &rotate);
00071
00072 };
00073
00074 }
00075
00076
00077 #endif