Skip to content

Commit c257a4c

Browse files
committed
added robot velocity into firmware
1 parent 2b0e90c commit c257a4c

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

examples/firmware_01/firmware_01.ino

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,10 +186,16 @@ void loop(){
186186
if (millis()-tmotor>20){
187187
tmotor=millis();
188188
alvik.updateMotors();
189+
alvik.updateKinematics();
190+
// joint speed
189191
msg_size = packeter.packetC2F('j', alvik.getRpmLeft(),alvik.getRpmRight());
190192
alvik.serial->write(packeter.msg,msg_size);
193+
// joint position
191194
msg_size = packeter.packetC2F('w', alvik.getPositionLeft(),alvik.getPositionRight());
192-
alvik.serial->write(packeter.msg,msg_size);
195+
alvik.serial->write(packeter.msg, msg_size);
196+
// robot speed
197+
msg_size = packeter.packetC2F('v', alvik.getLinearVelocity(), alvik.getAngularVelocity());
198+
alvik.serial->write(packeter.msg, msg_size);
193199
}
194200

195201
if (millis()-timu>10){

src/Arduino_AlvikCarrier.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,14 @@ void Arduino_AlvikCarrier::drive(const float linear, const float angular){
681681
setRpm(kinematics->getLeftVelocity(), kinematics->getRightVelocity());
682682
}
683683

684+
float Arduino_AlvikCarrier::getLinearVelocity(){
685+
return kinematics->getLinearVelocity();
686+
}
687+
688+
float Arduino_AlvikCarrier::getAngularVelocity(){
689+
return kinematics->getAngularVelocity();
690+
}
691+
684692

685693
void Arduino_AlvikCarrier::lockingRotate(const float angle){
686694
float initial_angle = kinematics->getTheta();

src/Arduino_AlvikCarrier.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,8 @@ class Arduino_AlvikCarrier{
220220
// Kinematics
221221
void updateKinematics(); // update pose/velocity of the robot and controls
222222
void drive(const float linear, const float angular); // set mm/s and deg/s of the robot
223+
float getLinearVelocity();
224+
float getAngularVelocity();
223225

224226
void move(const float distance); // move of distance millimeters
225227
void rotate(const float angle); // rotate of angle degrees

0 commit comments

Comments
 (0)