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