Yesterday I did some testing of sonar.
I see that sonar altitude isn't smooth - it is understandable, as the ground isn't flat (I was flying over grass and small bushes). That implies nervous jumping of my hexa when flying on low altitude.
I think, that sonar data should processed somehow (Kalman, moving average?) before it will be used in altitude calculation.
The second issue is auto-landing. When my hexa touches ground, it starts bouncing.
I think, that using baro, sonar and accelerometers it should be easy to detect when copter touches ground and stop motors. Now I have to switch to manual control and put throttle to 0, just before landing.