nasa-jpl/fastcat

JSD Speed tracking fault

Closed this issue · 1 comments

While commanded via CSP command, an actuator faults with speed tracking error.
On fastcat configuration yaml, which suppose to overwrite parameters to Elmo motor driver, velocity tracking error is set to be higher than max speed, which means it will not cause tracking fault even in the case the motor is not moving at all when commanded for max velocity.

First, suggestion to printout what is commanded, actual velocity/position when tracking fault happens, if we can retrieve info from Elmo.

[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[8] actual Mode of Operation changed to Cyclic Synchronous Position (0x8)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[9] actual Mode of Operation changed to Cyclic Synchronous Position (0x8)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[10] actual Mode of Operation changed to Cyclic Synchronous Position (0x8)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[11] actual Mode of Operation changed to Cyclic Synchronous Position (0x8)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[12] actual Mode of Operation changed to Cyclic Synchronous Position (0x8)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Fault (0x8)
[ ERROR ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator_fsm_helpers.cc:415) j3: EGD state machine state is off nominal
[ ERROR ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator_fsm_helpers.cc:535) Act j3: Fault Condition present, faulting
[ ERROR ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/manager.cc:255) Process Error j3
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j1
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j1 state transition from CS to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j2
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j2 state transition from CS to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j3
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j3 state transition from CS to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j4
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j4 state transition from CS to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j5
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j5 state transition from CS to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:363) Faulting Actuator j6
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/jsd/actuator.cc:467) Requested Actuator j6 state transition from HALTED to FAULTED
[ WARN  ](/opt/casah/sael_ws/build/fcat/_deps/fastcat-src/src/device_base.cc:46) Faulting device wrist_ati_fts
[ ERROR ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1219) EMCY: on slave id: 10, Description:  JSD_EGD_FAULT_SPEED_TRACKING_ERROR
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[11] actual Mode of Operation changed to Profiled Position (0x1)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[12] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[12] actual Mode of Operation changed to Profiled Position (0x1)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[8] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[8] actual Mode of Operation changed to Profiled Position (0x1)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1103) EGD[9] actual Mode of Operation changed to Profiled Position (0x1)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Operation Enabled (0x27)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Operation Enabled (0x27)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Switched On (0x23)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Quick Stop Active (0x7)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[12] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[8] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[12] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[8] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[12] actual State Machine State changed to Switched On (0x23)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[8] actual State Machine State changed to Switched On (0x23)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Switch On Disabled (0x40)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[10] actual State Machine State changed to Switched On (0x23)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Ready to Switch On (0x21)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[11] actual State Machine State changed to Switched On (0x23)
[ INFO  ](/opt/casah/sael_ws/build/fcat/_deps/jsd-src/src/jsd_egd.c:1091) EGD[9] actual State Machine State changed to Switched On (0x23)

Can you indicate which version of fastcat you are using?

I like your idea of dumping state on an EMCY code - though, It may not help as much as you might think.

  • EMCY code-specific printing will be a large pain since there are over 45 EGD error codes (see jsd/jsd_egd_types.h:jsd_egd_fault_code_t) So I probably won't echo all drive parameter values like the speed tracking faults and instead opt to just display a subset of parameters like cmd and actuator speeds.
  • The PDO-sampled velocity may not be the velocity seen by the ELMO drive itself when it triggered the fault since it runs far faster then the PDO exchange. This might cause you to scratch your head when the reported velocity is under the velocity tracking speed... just FYI