Flying RPi Navio2 drone with VICON and ROS

Hi,
I have Raspberry Pi + Navio2 drones,
The drones will be connected to the ground station via wifi.
I can use either Ubuntu 16.04 or 18.04 on the ground station.
I want to use VICON position and attitude estimation in the kalman filter.

To do this I though of doing this:
vrpn_client_ros would get the position and attitude of the drone on the ground control.
mavros would then send the ATT_POS_MOCAP to the drone.
So, I have some questions.

How many markers should I put on a drone?
Should I use EKF2 or EKF3 with the MoCap attitude and position?
Do I need to tune the EKF?
Does the kalman filter work for every position and attitude?

I want to run control algorithm on the Rapsberry Pi.
I found that guided mode allow remote control.
Can I use the mavlink messages SET_ATTITUDE_TARGET AND SET_POSITION_TARGET_LOCAL_NED?
At which frequency can I sent these mavlink messages.

Can I display in real time the position of the drone using rviz?
How can I log data of the flight? Can I use mavros with rosbag or something else?

Jonathan