Updating absolute position via VIO


I am looking at Ardupilot and PX4 as options for autonomy research, I had a question - I am going to be using an external VIO system and I wanted to known the standard way to send absolute position data to the flight controller via USB.

What is the standard approach to this?

You can send this MAVLINK_MSG_ID_ODOMETRY message.
Then a USB to serial hardware is required, which is connected to the drone flight control through the serial port.And configure this serial port to receive Mavlink messages

More help: Visual Inertial Odometry (VIO) | PX4 Guide (main)


Does PX4 have to use a serial port vs a USB stack? I assumed some controllers ran USB communication.