Skip to content

Commit f44b776

Browse files
committed
reset pose
1 parent 8d0f29d commit f44b776

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

examples/firmware_01/firmware_01.ino

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ uint8_t sensor_id = 0;
4545

4646
uint8_t pid;
4747
float kp, ki, kd;
48+
float x, y, theta;
4849

4950
uint8_t servo_A, servo_B;
5051

@@ -150,14 +151,19 @@ void loop(){
150151
break;
151152

152153
case 'R':
153-
packeter.unpacketC1F(code,value);
154+
packeter.unpacketC1F(code, value);
154155
alvik.rotate(value);
155156
break;
156157

157158
case 'G':
158-
packeter.unpacketC1F(code,value);
159+
packeter.unpacketC1F(code, value);
159160
alvik.move(value);
160161
break;
162+
163+
case 'Z':
164+
packeter.unpacketC3F(code, x, y, theta);
165+
alvik.resetPose(x, y, theta);
166+
break;
161167
}
162168
}
163169

@@ -234,4 +240,4 @@ void loop(){
234240
msg_size = packeter.packetC6F('i', alvik.getAccelerationX(), alvik.getAccelerationY(), alvik.getAccelerationZ(), alvik.getAngularVelocityX(), alvik.getAngularVelocityY(), alvik.getAngularVelocityZ());
235241
alvik.serial->write(packeter.msg,msg_size);
236242
}
237-
}
243+
}

src/Arduino_AlvikCarrier.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,10 @@ float Arduino_AlvikCarrier::getTheta(){
716716
return kinematics->getTheta();
717717
}
718718

719+
void Arduino_AlvikCarrier::resetPose(const float x0, const float y0, const float theta0){
720+
kinematics->resetPose(x0,y0,theta0);
721+
}
722+
719723
void Arduino_AlvikCarrier::lockingRotate(const float angle){
720724
float initial_angle = kinematics->getTheta();
721725
float final_angle = angle+initial_angle;

src/Arduino_AlvikCarrier.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ class Arduino_AlvikCarrier{
225225
float getX(); // absolute position in mm
226226
float getY(); // absolute position in mm
227227
float getTheta(); // angle in deg
228+
void resetPose(const float x0=0.0, const float y0=0.0, const float theta0=0.0); // reset pose in kinematics
228229

229230
void move(const float distance); // move of distance millimeters
230231
void rotate(const float angle); // rotate of angle degrees

0 commit comments

Comments
 (0)