Closed orikuma closed 1 year ago
Thank you for your comment. I reflected your modification but it fails in the following tests.
The following tests FAILED:
62 - TestFSMStateOptions (Failed)
63 - TestFSMStateOptions_TVM (Failed)
77 - SampleController_FSM (Failed)
78 - SampleController_FSM_TVM (Failed)
I attached the log file of the test result. LastTest.log
Hi @orikuma
Thanks for testing it out.
I have implemented a different fix in https://github.com/jrl-umi3218/mc_rtc/commit/2bfaf161bb7364dc8bd5aafc7bdabe29aea3027d that should work wherever in its execution an FSM is stoped.
Problem: The weight of the PostureTask is changed to 10000 by startIdleState when
fsm::Controller::reset
is called. However, ifrunning_
is true whenfsm::Controller::reset
is called, the weight remains 10000 after starting execution of states becauseteardownIdleState
will not be called infsm::Controller::run
whilerunning_
remains true. This will cause inconsistency of the motion after changing controllers.Solution: Set
running_=false
infsm::Controller::reset
to callteardownIdleState
infsm::Controller::run
after starting a state.