[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