| 16 | == BurtSharp Message Types == |
| 17 | |
| 18 | The mainboard control loop runs at 500 Hz, able to do math, send and receive messages in a stable and reliable way. BurtSharp subscribes to mainboard control loop messages. The BurtSharp-CoAP client runs in a separate thread “RunControlCycle()” and executes a callback to form the next control cycle output every time a message is received from the server “OnReceiveServerUpdate()”. This is higher reliable than having the replies be completely asynchronous from the mainboard control loop messages. BurtSharp sends one message (“RobotCommand”) per control cycle. |
| 19 | |
| 20 | * The BurtSharp-CoAP client subscribes to observable resource group packages such as: |
| 21 | * ServerUpdate |
| 22 | * "position": [x, y, z] |
| 23 | * "velocity": [x, y, z] |
| 24 | * "joint_position": [j1, j2, j3] |
| 25 | * "joint_velocities": [j1, j2, j3] |
| 26 | * "timestamp": <u32> |
| 27 | * RobotStatus |
| 28 | * "handedness": u8 |
| 29 | * "Outerlink": u8 |
| 30 | * "Patient": u8 |
| 31 | * "Estop": u8 |
| 32 | |
| 33 | * The BurtSharp-CoAP client sends asynchronous NON-confirmable PUT requests to the mainboard-server through the “AsyncNonPutRequest” method. These requested messages can be one of the following control modes: |
| 34 | * Cartesian Forces |
| 35 | * Joint Torques |
| 36 | * Cartesian Torques |
| 37 | * Cartesian Forces + Joints Torques |
| 38 | |
| 39 | * The BurtSharp-CoAP client subscribes at mainboard fault updates and to observable resource faults information such as: |
| 40 | * MainBoardFault.NotReady |
| 41 | * MainBoardFault.NoCanAtStartup |
| 42 | * MainBoardFault.NoCoapAtStartup |
| 43 | * MainBoardFault.OuterLinkDisconnected |
| 44 | * MainBoardFault.HandednessUnknown |
| 45 | * MainBoardFault.InvalidEepromCrc |
| 46 | * MainBoardFault.EStopPressed |
| 47 | * MainBoardFault.EStopLatched |
| 48 | * MainBoardFault.InitFailed |
| 49 | * MainBoardFault.TorqueLimitJ1 |
| 50 | * MainBoardFault.TorqueLimitJ2 |
| 51 | * MainBoardFault.TorqueLimitJ3 |
| 52 | * MainBoardFault.NotInHomingPositionAtStartup |
| 53 | |
| 54 | |