# Offboard Control
The idea behind off-board control is to be able to control the PX4 flight stack using software running outside of the autopilot. This is done through the MAVLink protocol, specifically the SET_POSITION_TARGET_LOCAL_NED (opens new window) and the SET_ATTITUDE_TARGET (opens new window) messages.
# Offboard Control Firmware Setup
There are two things you want to setup on the firmware side before starting offboard development.
# Map an RC switch to offboard mode activation
To do this, load up the parameters in QGroundControl and look for the RC_MAP_OFFB_SW parameter to which you can assign the RC channel you want to use to activate offboard mode. It can be useful to map things in such a way that when you fall out of offboard mode you go into position control.
Although this step isn't mandatory since you can activate offboard mode using a MAVLink message. We consider this method much safer.
# Enable the companion computer interface
Enable MAVLink on the serial port that you connect to the companion computer (see Companion computer setup).
# Hardware setup
Usually, there are three ways of setting up offboard communication.
# Serial radios
- One connected to a UART port of the autopilot
- One connected to a ground station computer
Example radios include:
# On-board processor
A small computer mounted onto the vehicle connected to the autopilot through a UART to USB adapter. There are many possibilities here and it will depend on what kind of additional on-board processing you want to do in addition to sending commands to the autopilot.
Small low power examples:
- Odroid C1+ (opens new window) or Odroid XU4 (opens new window)
- Raspberry Pi (opens new window)
- Intel Edison (opens new window)
Larger high power examples:
# On-board processor and wifi link to ROS (Recommended)
A small computer mounted onto the vehicle connected to the autopilot through a UART to USB adapter while also having a WiFi link to a ground station running ROS. This can be any of the computers from the above section coupled with a WiFi adapter. For example, the Intel NUC D34010WYB has a PCI Express Half-Mini connector which can accommodate an Intel Wifi Link 5000 (opens new window) adapter.