Position tracking problem

Hi all,
First of all thank you for the whole support and community. It looks great. This is my first post on the forum but i will do my best to describe the problem.

We are developing a custom build drone (around 1kg) based on the frame almost identical to s500. We require from it to stay as steady as it is possible in certain moments. Therefore we involved external VIO as source of the position (proved to work well). No GPS involved. However the controller seems not to perform well enough.
I attached the log from the last flight, where the issue appears. Throughout the flight the drone was in position mode and only moved up, hovered for ~30s and landed. There was only movement in Z axis.

  1. The position in x, y, z oscilates ~ 0.3m, 0.15m, 0.2m respectively. This is way too much IMO.
  2. The yaw angle tracking doesn’t perform great as well. The oscilation range is ~7deg. Looking at the Yaw Angular Rate plot it seems that tracking is delayed for ~0.5s however that might be due to the inertia of the body.
  3. Vibrations seem to be a bit high looking at the Actuator Controls FFT and Raw Acceleration (Y axis especially)

I know that tuning PID is the most obvious thing to do, however I already did that and dunno where to look next. Any tips or suggestions would be helpful.

https://review.px4.io/plot_app?log=73a586c8-42bb-4fc2-86f6-6f7d7a8e8c4c