Skip to content

Commit 2b0e90c

Browse files
committed
fixed move and updateKinematics
1 parent 6b14e79 commit 2b0e90c

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

src/Arduino_AlvikCarrier.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ Arduino_AlvikCarrier::Arduino_AlvikCarrier(){
8080
previous_travel = 0.0;
8181
move_direction = 0.0;
8282
rotate_pid = new PidController(ROTATE_KP_DEFAULT, ROTATE_KI_DEFAULT, ROTATE_KD_DEFAULT, ROTATE_CONTROL_PERIOD, ROTATE_MAX_SPEED);
83-
move_pid = new PidController(MOVE_KP_DEFAULT, MOTOR_KI_DEFAULT, MOVE_KD_DEFAULT, MOVE_CONTROL_PERIOD, MOVE_MAX_SPEED);
83+
move_pid = new PidController(MOVE_KP_DEFAULT, MOVE_KI_DEFAULT, MOVE_KD_DEFAULT, MOVE_CONTROL_PERIOD, MOVE_MAX_SPEED);
8484
}
8585

8686
int Arduino_AlvikCarrier::begin(){
@@ -747,6 +747,7 @@ void Arduino_AlvikCarrier::lockingMove(const float distance){
747747
void Arduino_AlvikCarrier::move(const float distance){
748748
move_pid->reset();
749749
previous_travel=kinematics->getTravel();
750+
actual_direction=1.0;
750751
if (distance<0){
751752
move_direction=-1.0;
752753
}
@@ -772,10 +773,10 @@ void Arduino_AlvikCarrier::updateKinematics(){
772773
if (kinematics_movement==MOVEMENT_MOVE){
773774
move_pid->update((kinematics->getTravel()-previous_travel)*move_direction);
774775
drive(round(move_pid->getControlOutput()/10.0)*10, 0);
775-
776776
if (abs(move_pid->getError())<MOVE_THREADSHOLD){
777777
kinematics_achieved=true;
778778
}
779+
779780
}
780781
}
781782
}

src/Arduino_AlvikCarrier.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class Arduino_AlvikCarrier{
7373
bool kinematics_achieved;
7474
float previous_travel;
7575
float move_direction;
76+
float actual_direction;
7677

7778
PidController * rotate_pid;
7879
PidController * move_pid;
@@ -217,15 +218,15 @@ class Arduino_AlvikCarrier{
217218

218219

219220
// Kinematics
220-
void updateKinematics();
221+
void updateKinematics(); // update pose/velocity of the robot and controls
221222
void drive(const float linear, const float angular); // set mm/s and deg/s of the robot
222223

223224
void move(const float distance); // move of distance millimeters
224225
void rotate(const float angle); // rotate of angle degrees
225226

226227

227-
void lockingRotate(const float angle);
228-
void lockingMove(const float distance); // move of distance millimeters
228+
void lockingRotate(const float angle); // rotate of angle degrees
229+
void lockingMove(const float distance); // move of distance millimeters
229230

230231
void disableKinematicsMovement();
231232
bool isTargetReached();

0 commit comments

Comments
 (0)