So I think it should be possible to fully automate climbing(besides lining up) in two commands, first a pressed to release the climber, and a while held to climb so we can abort if needed and resume to manual control.
use velocity based pid to unwinch to the point that the spool can go out at full speed with out tangling
use position pid to unwinch until full extension setpoint
Second command
Pull up with velocity pid until close to position
Move poles as required(we can use a gyro to tell if we are tilted and move the poles. Or could just assume they need to be in a certain spot at certain main winch positions
Finish pull up with position command
Once at the required height we move the poles using positional pid to shift the robot back(until the poles are at the correct position(maintaining the winch position))
Lower the robot slightly by adjusting the setpoint for the main winches
Passive hooks should be above the traversal rung at this point
Then we move our poles to a disengaged set point and release the winch.
So I think it should be possible to fully automate climbing(besides lining up) in two commands, first a pressed to release the climber, and a while held to climb so we can abort if needed and resume to manual control.
Second command
The steps can be seen executing in this gif https://imgur.com/a/Nxa1mFn (edited)