You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It could be interesting to handle missing devices (e.g., not connected, broken cable, not powered, etc.) directly at the driver level.
For instance, to fill data with NaN or even trigger a fatal error and stop the controller manager.
@yguel as we discussed, here is the result with the f/t sensor using generic slave config.
1) Device not connected
Description
The sensor is not connected to the master PC when the controller manager is launched.
Force / Torques equal to offset (based value is null, plus scaling and offsets):
Expected result
Configured failed.
Warning
Among the 3 described scenario, this is the most dangerous!
If the offsets are large, it might cause large robot motions at startup (e.g., under force or admittance control).
2) Device disconnected at runtime
Description
The sensor is correctly connected to the master PC when the controller manager is launched.
At runtime, the device is disconnected (cable suddenly unplugged).
Results
No error or warning in the main terminal.
But there are some errors logged by the OS :
$ sudo dmesg -c
[18872.054777] EtherCAT: Requesting master 0...
[18872.054781] EtherCAT: Successfully requested master 0.
[18872.056826] EtherCAT 0: Domain0: Logical address 0x00000000, 40 byte, expected working counter 3.
[18872.056828] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 40 byte, type LRW.
[18872.056840] EtherCAT 0: Master thread exited.
[18872.056841] EtherCAT 0: Starting EtherCAT-OP thread.
[18872.056884] EtherCAT WARNING 0: 1 datagram UNMATCHED!
[18875.330265] EtherCAT 0: Domain 0: Working counter changed to 3/3.
[18875.358560] EtherCAT 0: Slave states on main device: OP.
[18888.858139] EtherCAT 0: Domain 0: Working counter changed to 0/3.
[18888.862718] e1000e 0000:00:1f.6 enp0s31f6: NIC Link is Down
[18888.866123] EtherCAT 0: Link state of ecm0 changed to DOWN.
[18888.882423] EtherCAT 0: 0 slave(s) responding on main device.
[18889.230361] EtherCAT WARNING 0: 1 datagram TIMED OUT!
[18889.306068] EtherCAT WARNING: Datagram 0000000076fc4abc (domain0-0-main) was SKIPPED 2 times.
[18894.275755] EtherCAT 0: Releasing master...
[18894.275900] EtherCAT 0: Master thread exited.
[18894.275905] EtherCAT 0: Starting EtherCAT-IDLE thread.
[18894.276118] EtherCAT 0: Released.
However, the last sensor value is maintained !
Expected result
AT least a big warning in the terminal.
Set all concerned data to NaN.
Optionally, trigger controller manager ERROR / FATAL ERROR.
3) Ethercat driver and controller out of sync
Description
All OK hardware-wise, but bad config.
For instance:
Device update rate is 200Hz in the ros2-control config (xacro file)
It could be interesting to handle missing devices (e.g., not connected, broken cable, not powered, etc.) directly at the driver level.
For instance, to fill data with NaN or even trigger a fatal error and stop the controller manager.
@yguel as we discussed, here is the result with the f/t sensor using generic slave config.
1) Device not connected
Description
The sensor is not connected to the master PC when the controller manager is launched.
Results
No error or warning in the main terminal.
But there are some errors logged by the OS :
$ sudo dmesg -c [18059.135727] EtherCAT 0: Releasing master... [18059.135808] EtherCAT 0: Master thread exited. [18059.135812] EtherCAT 0: Starting EtherCAT-IDLE thread. [18059.135989] EtherCAT 0: Released. [18059.437111] EtherCAT WARNING: Datagram 00000000321c0157 (master-fsm) was SKIPPED 1 time. [18061.009446] EtherCAT: Requesting master 0... [18061.009450] EtherCAT: Successfully requested master 0. [18061.011460] EtherCAT 0: Domain0: Logical address 0x00000000, 40 byte, expected working counter 3. [18061.011463] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 40 byte, type LRW. [18061.011475] EtherCAT 0: Master thread exited. [18061.011476] EtherCAT 0: Starting EtherCAT-OP thread.
Force / Torques equal to
offset
(based value is null, plus scaling and offsets):Expected result
Configured failed.
Warning
Among the 3 described scenario, this is the most dangerous!
If the offsets are large, it might cause large robot motions at startup (e.g., under force or admittance control).
2) Device disconnected at runtime
Description
The sensor is correctly connected to the master PC when the controller manager is launched.
At runtime, the device is disconnected (cable suddenly unplugged).
Results
No error or warning in the main terminal.
But there are some errors logged by the OS :
However, the last sensor value is maintained !
Expected result
AT least a big warning in the terminal.
Set all concerned data to NaN.
Optionally, trigger controller manager ERROR / FATAL ERROR.
3) Ethercat driver and controller out of sync
Description
All OK hardware-wise, but bad config.
For instance:
Device update rate is 200Hz in the ros2-control config (xacro file)
But controller manager has a 125 Hz update rate.
Results
Terminal :
Dmeg :
Sensor data:
Mostly OK, but sometime it freezes (stops updating) for a few seconds.
NB: very hard to reproduce this last one, maybe there are multiple causes???
Expected result
AT least a big warning in the terminal.
Optionally, trigger controller manager ERROR / FATAL ERROR.
The text was updated successfully, but these errors were encountered: