[RobotHardware/robot.cpp] send correct emergency signal when servo alarm #1324
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
RobotHardwareからemergencySignalとして
EMG_SERVO_ERRORが出ていて、このif文によって全身がservo offするにも関わらず、hrpsys-base/rtc/RobotHardware/RobotHardware.cpp
Lines 242 to 243 in 2336d26
実際には
EMG_SERVO_ALARMが発生していて、EMG_SERVO_ERRORは発生していない、というバグがあります。原因は、変数
reasonはenumの初期値としてEMG_SERVO_ERRORが入っていて、hrpsys-base/rtc/RobotHardware/robot.h
Line 254 in 2336d26
SS_EMERGENCYが発生していてm_reportedEmergencyがtrueの場合には変数reasonが初期値のまま変更されずに返るためでした。hrpsys-base/rtc/RobotHardware/robot.cpp
Lines 708 to 717 in 2336d26
このバグがあるとemergencyの原因をデバッグすることが困難になってしまうので、変数
reasonにEMG_SERVO_ALARMを入れてから返るように修正しました。(関連)
2d088ad
#556
#564