Skip to content

Commit 9db6cef

Browse files
committed
Merge branch 'CAN-updates' of github.com:huskyroboticsteam/Resurgence into CAN-updates
2 parents 4c4ad9c + b35aa81 commit 9db6cef

7 files changed

Lines changed: 27 additions & 16 deletions

File tree

src/CAN/CANBoard.cpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,19 +162,23 @@ void CANBoard::setMotorVel(int8_t velocity) {
162162
sendCANPacket(p);
163163
}
164164

165+
void CANBoard::setStepperRevs(float revs) {
166+
if (!this->device.motorDomain) {
167+
LOG_F(WARNING, "setMotorPower called for board not in motor domain!");
168+
return;
169+
}
170+
171+
CANPacket_t p = CANMotorPacket_Stepper_DriveRevolutions(
172+
Constants::JETSON_DEVICE, this->device, revs
173+
);
174+
sendCANPacket(p);
175+
}
176+
165177
void CANBoard::read(uint16_t endpoint) {
166178
CANPacket_t p = CANMotorPacket_BLDC_DirectRead(
167179
Constants::JETSON_DEVICE, this->device, endpoint
168180
);
169181
sendCANPacket(p);
170182
}
171183

172-
/*
173-
void setStepper(float revs) {
174-
CANMotorPacket_Stepper_DriveRevolutions()
175-
sendCanPacket
176-
}
177-
178-
*/
179-
180184
} // namespace can

src/CAN/CANBoard.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ class CANBoard {
1616
void setMotorPower(double power);
1717
void setMotorState(can::motor::axis_state_t state);
1818
void setMotorVel(int8_t velocity);
19-
20-
// Motor/Peripheral
21-
void setStepper(float revs);
19+
void setStepperRevs(float revs);
2220

2321
// Universal
2422
void read(uint16_t endpoint);

src/control_interface.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,7 @@ void setJointMotorPower(robot::types::jointid_t joint, double power) {
189189
setMotorPower(boardid_t::wristDiffLeft, gearPwr.left);
190190
setMotorPower(boardid_t::wristDiffRight, gearPwr.right);
191191
} else if (joint == jointid_t::hand) {
192-
// we need a stepper power packet in real_world_interface (by extension in world_interface and simuator_interface)
193-
// that we can call here with boardid_t::hand and float revs
192+
setStepperRevs(boardid_t::hand, static_cast<float>(power));
194193
} else {
195194
LOG_F(WARNING, "setJointPower called for currently unsupported joint %s",
196195
util::to_string(joint).c_str());

src/control_interface.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,4 @@ void setJointPos(types::jointid_t joint, int32_t targetPos);
5050
*/
5151
types::DataPoint<int32_t> getJointPos(types::jointid_t joint);
5252

53-
void setScienceServoPos(uint8_t servoNum, int32_t angle);
5453
} // namespace robot

src/world_interface/real_world_interface.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,13 @@ void handleMotorEncoderEstimate(robot::types::boardid_t board, int32_t positionM
302302
}
303303
}
304304

305+
void setStepperRevs(robot::types::boardid_t board, float revs) {
306+
std::shared_ptr<can::CANBoard> board_ptr = getBoard_(board);
307+
if (board_ptr) {
308+
board_ptr->setStepperRevs(revs);
309+
}
310+
}
311+
305312
/*
306313
307314
void setStepper(boardid_t board, float revs) {

src/world_interface/simulator_interface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -476,9 +476,9 @@ void setIndicator(indication_t signal) {
476476
}
477477
}
478478

479-
void handleMotorEncoderEstimate(robot::types::boardid_t board, int32_t positionMdeg) {
479+
void handleMotorEncoderEstimate(robot::types::boardid_t board, int32_t positionMdeg) {}
480480

481-
}
481+
void setStepperRevs(robot::types::boardid_t board, float revs) {}
482482

483483
} // namespace robot
484484

src/world_interface/world_interface.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,10 @@ types::DataPoint<int32_t> getMotorPos(robot::types::boardid_t motor);
229229

230230
void handleMotorEncoderEstimate(robot::types::boardid_t board, int32_t positionMdeg);
231231

232+
void setStepperRevs(robot::types::boardid_t board, float revs);
233+
234+
235+
232236
using callbackid_t = unsigned long long;
233237

234238
callbackid_t addLimitSwitchCallback(

0 commit comments

Comments
 (0)