Adding a deflection estimator to the stabilizer #39
Replies: 1 comment
-
Hi @Saeed-Mansouri, Your question is many-fold so let me title my answers 😉 Admittance control
Note that admittance control, applied at the support leg while the other one is swinging, is not directly meant to compensate the swing end-effector position. Rather, its goal is to realize the command force, which in turns aim to control the DCM for balance. That being said, the feedback loop in this controller that compensates the swing foot position is an indirect consequence of admittance control. It lies in choosing the pelvis orientation as the orientation of the anchor frame, which itself averages foot link orientations, which are updated by admittance control. This is how in this example the robot adapts to changes in ground orientation. Deflection estimator
Implementing a deflection estimator makes sense when the system has unobserved flexible joints. For humanoid robots with flexible joints below the ankle, Vaillant et al. implemented an estimator in SpringEstimator, the details of which can be found around Fig. 8 of this paper. For exoskeletons, make sure to check out what the people at Wandercraft/ENSMP have tried in Estimation of Multiple Flexibilities of an Articulated System Using InertialMeasurements. Adapting the LIPM walking controller
The controller assumes stiff position control of all joints. If your deflection corrector works at the lower level and is able to make joints stiffer (i.e. reach their commanded positions faster) then the LIPM controller will work better and you may not need to adapt it. In practice joints are never perfectly stiff, and encoder joint angles do not match commanded values. The LIPM controller will see these errors as a DCM offset, and try to compensate it (to some extent) by its integral term. For static standing this might be enough, but of course, the less stiff your joints are, the more offset there will be, and the balancing performance (ability to reject disturbances / walk on uneven terrains) will overall degrade. On a final piece of advice, CoP admittance is the primary parameter to tune to the performance of your ankle joints. More details in the stabilizer tuning documentation.
You will find in the code references to |
Beta Was this translation helpful? Give feedback.
-
Hi Dr. Caron,
We finally installed the LIPM package and are in the process of implementing that on our robot (an exoskeleton robot). First, we need to thank you and your team for the great effort and time you put into it. It took us a while but we believe it will definitely worth it.
1- As you probably know, exoskeletons have some limitations (weight and size of the robot and the robotic joint locations) compared to humanoids. A direct consequence of that is larger deformations that may hinder the effectiveness of the control algorithms that are developed for humanoids. To give you an idea, the measured deviation of the ankle position of swing foot from our simulation is in the order of few centimetres in each x-y-z directions. We have not done any experiments with the LIPM package yet, but we thought these deflections are larger than those that can be compensated by the admittance control applied in the LIPM package. If it is the case, we are thinking to develop a deflection estimator and apply it as a feedforward control for compensating robot's deflections. In this case, corrections would be added to the joint angles calculated by inverse kinematics (IK). I wanted to run this idea to you and see if you have a different opinion or suggestion.
2- If you approve the approach we suggested in the previous question, do we need to make any adjustments in the LIPM for other modules to work properly (e.g. deduce the deflection corrections obtained from the real robot in the rigid robot model of LIPM)?
3- Does the calculation of the Jacobian matrix in the IK use encoder data of the real robot?
Thanks,
Beta Was this translation helpful? Give feedback.
All reactions