Companion Computers can be used to interface and communicate with ArduPilot on a flight controller using the MAVLink protocol. By doing this your companion computer gets all the MAVLink data produced by the autopilot (including GPS data) and can use it to make intelligent decisions during flight. For example, "take a photo when the vehicle is at these GPS co-ordinates".
Related topics on this wiki include:
.. toctree:: :maxdepth: 1 APSync <apsync-intro> DroneKit Tutorial <droneapi-tutorial> FlytOS <flytos> Maverick <https://goodrobots.github.io/maverick/#/> ROS <ros> Raspberry Pi <raspberry-pi-via-mavlink> ODroid <odroid-via-mavlink> Intel Edison <intel-edison> NVidia TX2 <companion-computer-nvidia-tx2> NVidia TX1 <companion-computer-nvidia-tx1> BeaglePilot Project <beaglepilot> Turnkey Companion Computer Solutions <turnkey-companion-computer-solutions>