On the first version of Alice, in order to ensure user's safety, we opted for an incremental approach in the control scheme. Because of this we decided to start with a very simple control system that manipulated every step separately, instead of a complete routine.
This control scheme consisted of an Open-Loop strategy to minimize the risk in case our sensors failed. In the newest Alice version we have made improvements to ensure robustness on sensors and a good signal quality through digital filters. These changes allowed us to increase the automatization of Alice’s movements through a Closed-Loop algorithm (PID), replacing the Open-Loop strategy. This whole process resulted in 3 different functions: stand-up, walk through 4 movements and sit down.
The PID control scheme was designed and integrated using potentiometer-based feedback referencing joint angles in real time. Third-order Butterworth filtering, anti-windup algorithms, and static friction compensations were implemented to account for potentially larger amounts of noise, mechanical resistance, and overall system nonlinearities. Controller tuning is analogous for the left- and right-side actuators; position mapping parameters are set individually per joint.
To maximize the access through Open Source platforms, the whole control algorithm was implemented on Arduino, creating some custom libraries. We believe that this will allow more people to implement it; however, we are getting to the maximum memory available on Arduino. Following upgrades should consider memory optimization.