Skip to content

Commit dfd2ab7

Browse files
authored
Fix linkage (#367)
1 parent 41cfcfd commit dfd2ab7

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

src/control_interface.cpp

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -186,20 +186,25 @@ void setJointMotorPower(robot::types::jointid_t joint, double power) {
186186
setMotorPower(motorid_t::wristDiffLeft, gearPwr.left);
187187
setMotorPower(motorid_t::wristDiffRight, gearPwr.right);
188188
} else if (joint == jointid_t::fourBarLinkage) {
189-
int currAngle = getJointPos(jointid_t::fourBarLinkage).getData();
190-
currAngle = currAngle / 1000;
191-
if(currAngle > 320 ||
192-
currAngle < 50) {
193-
setMotorPower(motorid_t::fourbar1, power * 0.7);
194-
setMotorPower(motorid_t::fourbar2, power * 0.7);
195-
} else if (currAngle < 265 && power < 0){
196-
setMotorPower(motorid_t::fourbar1, -power);
197-
setMotorPower(motorid_t::fourbar2, -power);
198-
} else {
189+
auto dp = getJointPos(jointid_t::fourBarLinkage);
190+
if (dp.isValid()) {
191+
int currAngle = dp.getData();
192+
currAngle = currAngle / 1000;
193+
if(currAngle > 320 ||
194+
currAngle < 50) {
195+
setMotorPower(motorid_t::fourbar1, power * 0.7);
196+
setMotorPower(motorid_t::fourbar2, power * 0.7);
197+
} else if (currAngle < 265 && power < 0){
198+
setMotorPower(motorid_t::fourbar1, -power);
199+
setMotorPower(motorid_t::fourbar2, -power);
200+
} else {
201+
setMotorPower(motorid_t::fourbar1, power);
202+
setMotorPower(motorid_t::fourbar2, power);
203+
}
204+
} else {
199205
setMotorPower(motorid_t::fourbar1, power);
200206
setMotorPower(motorid_t::fourbar2, power);
201-
}
202-
207+
}
203208
} else {
204209
LOG_F(WARNING, "setJointPower called for currently unsupported joint %s",
205210
util::to_string(joint).c_str());

0 commit comments

Comments
 (0)