The Lokomat has a lot of different devices with a lot of different input and outputs. The flowchart underneath may help you debugging issues and writing new functionality.
Flowchart is still WIP. Not sure yet exactly which sensors are used for what. Constructed by looking at simulink model.
flowchart LR
subgraph Inputs
PelvisCommand
Motor_commands_orthoses[Motor commands orthesis]
MotorRefForcePelvis
MotorRefForceBWS
MotForceKnee
end
PelvisCommand-->LM_P
Motor_commands_orthoses-->LM_O
MotorRefForcePelvis-->LM_P
MotForceKnee-->Loko
MotorRefForceBWS-->Loko
subgraph Devices
LM_P{LinMot Pelvis}
LM_O{LinMot Orthesis <br> 4 Motors}
Loko{Lokomat<br>Original}
BH{Beckhoff <br> Terminal}
PP{Pelvis Plate}
end
BH-->Knee_Poti & LM_P_Poti & BWS_Poti
LM_P-->LM_P_Enc
LM_O-->LM_O_Enc
Loko-->BWS_Enc & Knee_Enc
PP-->IMU & PA_Cam & SP_Cam
subgraph Sensors
LM_P_Enc(Encoder)
LM_O_Enc(Encoders)
SP_Cam(Serial Port <br> Camera)
IMU(IMU)
PA_Cam(PixArt Camera <br> Qualisys)
LM_P_Poti(Pelvis Poti)
BWS_Poti(BWS Poti)
BWS_Enc(BWS Encoder)
Knee_Poti(Knee Potis <br> Left and Right)
Knee_Enc( NO Knee Encoders ??)
end
LM_P_Enc -->LM_P_pos & LM_P_vel
LM_O_Enc-->LM_O_pos & LM_O_vel
SP_Cam-->SP_Cam_coord
PA_Cam-->PA_Cam_pos
IMU-->IMU_accel & IMU_gyro & IMU_magneto
LM_P_Poti --> LM_P_Poti_out
BWS_Poti --> BWS_Poti_out
BWS_Enc --> Enc_BWS_vel & Enc_BWS_acc
Knee_Poti-->Knee_Poti_out
subgraph Outputs
LM_P_pos[Position Motor]
LM_P_vel[Velocity Motor]
LM_O_pos[Positions Motors]
LM_O_vel[Velocities Motors]
SP_Cam_coord[Position Plate]
PA_Cam_pos[Qualisys ?]
IMU_accel[Acceleration Plate]
IMU_gyro[Gyro ?]
IMU_magneto[Magneto ?]
LM_P_Poti_out[Poti Calibration ?]
BWS_Poti_out[Poti Calibration ?]
Knee_Poti_out[Poti Calibration ?]
Enc_BWS_vel[Velocity BWS]
Enc_BWS_acc[Acceleration BWS]
end
IMU_accel & SP_Cam_coord & LM_P_pos -->KalmanFilter
subgraph Postprocessing
KalmanFilter-->Plate_pos[Position Plate] & Plate_vel[Velocity Plate] & springypos[springypos ?]
end