/home/fwph/code/wurde/rde/core/ObstacleAvoider.cpp

Go to the documentation of this file.
00001 
00027 #include <ObstacleAvoider.H>
00028 #include <RobotTypes.H>
00029 
00030 using namespace std;
00031 using namespace WURDE;
00032 
00033 void ObstacleAvoider::setAvoidanceRadius(double radius){
00034        Pose goalPose(0,0,0);
00035        requests.avoidanceRadius.setValue(radius);
00036        requests.goalPose.setValue(goalPose);
00037        requests.goalHasTheta.setValue(false);
00038        requests.goalHasLocation.setValue(false);
00039        requests.absolute.setValue(false);
00040        
00041        publishRequest();
00042 }
00043 
00044 void ObstacleAvoider::stop(){
00045        Pose goal_pose(0,0,0);
00046 
00047        requests.goalPose.setValue(goal_pose);
00048        requests.goalHasTheta.setValue(true);
00049        requests.goalHasLocation.setValue(true);
00050        requests.absolute.setValue(false);
00051        requests.brake.setValue(true);
00052 
00053        publishRequest();
00054 }
00055 
00056 void ObstacleAvoider::moveToPoint(Point &goal){
00057        Pose goal_pose(goal.x(),goal.y());
00058 
00059        requests.goalPose.setValue(goal_pose);
00060        requests.goalHasTheta.setValue(false);
00061        requests.goalHasLocation.setValue(true);
00062        requests.absolute.setValue(true);
00063        requests.brake.setValue(false);
00064 
00065        publishRequest();
00066 }
00067 
00068 void ObstacleAvoider::moveToPoint(const double &x, const double &y){
00069        Pose goal_pose(x,y);
00070 
00071        requests.goalPose.setValue(goal_pose);
00072        requests.goalHasTheta.setValue(false);
00073        requests.goalHasLocation.setValue(true);
00074        requests.absolute.setValue(true);
00075        requests.brake.setValue(false);
00076 
00077        publishRequest();       
00078 }
00079 
00080 void ObstacleAvoider::moveToPose(Pose &goal){
00081        requests.goalPose.setValue(goal);
00082        requests.goalHasTheta.setValue(true);
00083        requests.goalHasLocation.setValue(true);
00084        requests.absolute.setValue(true);
00085        requests.brake.setValue(false);
00086 
00087        publishRequest();
00088 }
00089 
00090 void ObstacleAvoider::moveToPose(const double &x, const double &y, const double &theta){
00091        Pose goal_pose(x,y,theta);
00092 
00093        requests.goalPose.setValue(goal_pose);
00094        requests.goalHasTheta.setValue(true);
00095        requests.goalHasLocation.setValue(true);
00096        requests.absolute.setValue(true);
00097        requests.brake.setValue(false);
00098 
00099        publishRequest();       
00100 }
00101 
00102 void ObstacleAvoider::rotateToAngle(const double &theta){
00103        Pose goal_pose(0,0,theta);
00104 
00105        requests.goalPose.setValue(goal_pose);
00106        requests.goalHasTheta.setValue(true);
00107        requests.goalHasLocation.setValue(false);
00108        requests.absolute.setValue(true);
00109        requests.brake.setValue(false);
00110 
00111        publishRequest();       
00112 }
00113 
00114 void ObstacleAvoider::moveToRelativePoint(Point &goal){
00115        Pose goal_pose(goal.x(),goal.y());
00116 
00117        requests.goalPose.setValue(goal_pose);
00118        requests.goalHasTheta.setValue(false);
00119        requests.goalHasLocation.setValue(true);
00120        requests.absolute.setValue(false);
00121        requests.brake.setValue(false);
00122 
00123        publishRequest();
00124 }
00125 
00126 void ObstacleAvoider::moveToRelativePoint(const double &x, const double &y){
00127        Pose goal_pose(x,y);
00128 
00129        requests.goalPose.setValue(goal_pose);
00130        requests.goalHasTheta.setValue(false);
00131        requests.goalHasLocation.setValue(true);
00132        requests.absolute.setValue(false);
00133        requests.brake.setValue(false);
00134 
00135        publishRequest();       
00136 }
00137 
00138 void ObstacleAvoider::moveToRelativePose(Pose &goal){
00139        requests.goalPose.setValue(goal);
00140        requests.goalHasTheta.setValue(true);
00141        requests.goalHasLocation.setValue(true);
00142        requests.absolute.setValue(false);
00143        requests.brake.setValue(false);
00144 
00145        publishRequest();
00146 }
00147 
00148 void ObstacleAvoider::moveToRelativePose(const double &x, const double &y, const double &theta){
00149        Pose goal_pose(x,y,theta);
00150 
00151        requests.goalPose.setValue(goal_pose);
00152        requests.goalHasTheta.setValue(true);
00153        requests.goalHasLocation.setValue(true);
00154        requests.absolute.setValue(false);
00155        requests.brake.setValue(false);
00156 
00157        publishRequest();       
00158 }
00159 
00160 void ObstacleAvoider::rotateToRelativeAngle(const double &theta){
00161        Pose goal_pose(0,0,theta);
00162 
00163        requests.goalPose.setValue(goal_pose);
00164        requests.goalHasTheta.setValue(true);
00165        requests.goalHasLocation.setValue(false);
00166        requests.absolute.setValue(false);
00167        requests.brake.setValue(false);
00168 
00169        publishRequest();       
00170 }
00171 
00172 
00173 void ObstacleAvoider::translateFixedDistance(const double &distance){
00174        Pose goal_pose(distance,0);
00175 
00176        requests.goalPose.setValue(goal_pose);
00177        requests.goalHasTheta.setValue(false);
00178        requests.goalHasLocation.setValue(false);
00179        requests.absolute.setValue(false);
00180        requests.brake.setValue(false);
00181        
00182        publishRequest();
00183 }
00184 
00185 void ObstacleAvoider::rotateFixedAngle(const double &rotate){
00186        Pose goal_pose(0,0,rotate);
00187 
00188        requests.goalPose.setValue(goal_pose);
00189        requests.goalHasTheta.setValue(true);
00190        requests.goalHasLocation.setValue(false);
00191        requests.absolute.setValue(false);
00192        requests.brake.setValue(false);
00193        
00194        publishRequest();
00195 }
00196 

Generated on Thu Feb 1 15:31:54 2007 for WURDE by  doxygen 1.5.1