updated ci, updated hunter set brake mode impl

This commit is contained in:
Ruixiang Du
2021-07-29 18:25:22 +08:00
parent 51820bbcb4
commit 5c878914fa
8 changed files with 39 additions and 33 deletions

View File

@@ -39,7 +39,8 @@ struct HunterInterface {
virtual void SetMotionCommand(double linear_vel, double steering_angle) = 0;
virtual void SetBrakeMode(BrakeMode mode) = 0;
virtual void ActivateBrake() = 0;
virtual void ReleaseBrake() = 0;
// get robot state
virtual HunterCoreState GetRobotState() = 0;

View File

@@ -64,6 +64,8 @@ class RobotCommonInterface {
/****** functions not available/valid to all robots ******/
// functions to be implemented by class AgilexBase
virtual void SetMotionMode(uint8_t mode){};
virtual void SetBrakedMode(BrakeMode mode){};
virtual CoreStateMsgGroup GetRobotCoreStateMsgGroup() {
throw std::runtime_error(
"Only a derived version of this function with actual implementation "
@@ -93,8 +95,6 @@ class RobotCommonInterface {
"Only a derived version of this function with actual implementation "
"is supposed to be used.");
};
virtual void EnableBrakeMode(BrakeMode mode){};
};
} // namespace westonrobot

View File

@@ -190,6 +190,17 @@ class AgilexBase : public RobotCommonInterface {
if (can_connected_) can_->StopService();
}
void SetBrakeMode(BrakeMode mode) {
// construct message
AgxMessage msg;
msg.type = AgxMsgBrakeModeConfig;
msg.body.brake_mode_config_msg.mode = mode;
// encode msg to can frame and send to bus
can_frame frame;
if (parser_.EncodeMessage(&msg, &frame)) can_->SendFrame(frame);
}
void ParseCANFrame(can_frame *rx_frame) {
AgxMessage status_msg;
if (parser_.DecodeMessage(rx_frame, &status_msg)) {
@@ -268,17 +279,6 @@ class AgilexBase : public RobotCommonInterface {
break;
}
}
void EnableBrakedMode(BrakeMode mode) {
// construct message
AgxMessage msg;
msg.type = AgxMsgBrakeModeConfig;
msg.body.brake_mode_config_msg.mode = mode;
// encode msg to can frame and send to bus
can_frame frame;
if (parser_.EncodeMessage(&msg, &frame)) can_->SendFrame(frame);
}
};
} // namespace westonrobot

View File

@@ -36,7 +36,6 @@ class HunterBase : public AgilexBase<ParserType>, public HunterInterface {
angular_vel);
}
// get robot state
HunterCoreState GetRobotState() override {
auto state = AgilexBase<ParserType>::GetRobotCoreStateMsgGroup();
@@ -62,8 +61,12 @@ class HunterBase : public AgilexBase<ParserType>, public HunterInterface {
return hunter_actuator;
}
void SetBrakeMode(BrakeMode mode) override{
AgilexBase<ParserType>::EnableBrakeMode(mode);
void ActivateBrake() override {
AgilexBase<ParserType>::SetBrakeMode(BrakeMode::BRAKE_MODE_LOCK);
}
void ReleaseBrake() override {
AgilexBase<ParserType>::SetBrakeMode(BrakeMode::BRAKE_MODE_UNLOCK);
}
};
} // namespace westonrobot

View File

@@ -25,7 +25,8 @@ class HunterRobot : public RobotCommonInterface, public HunterInterface {
void EnableCommandedMode() override;
void SetBrakeMode(BrakeMode mode) override;
void ActivateBrake() override;
void ReleaseBrake() override;
void SetMotionCommand(double linear_vel, double angular_vel) override;