This guide outlines the process of setting up a Raspberry Pi onboard companion computer without the need for a mouse or keyboard, using Ubuntu 20.04 Server Image.
Flashing OS on the Board
Install rpi-imager
Run sudo apt install rpi-imager to install the Raspberry Pi Imager.
Insert the microSD card into your computer.
Choose OS and Storage
Open Raspberry Pi Imager and select "Choose OS".
Navigate to the Ubuntu 20.04 Server image.
Select your microSD card under "Choose Storage".
Configure Settings
Click on the settings icon.
Enable "Enable SSH".
Set a username and password (e.g., "pi").
Configure wireless LAN to connect to your Wi-Fi network.
Write OS to microSD
Click "Write" to write the OS to the microSD card.
Boot the Board
Insert the microSD card into the board.
Check the LED status to confirm booting from the card.
# install some dependencies
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
# install MAVROS
sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras
cd ~/
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh
# Install catkin tools
sudo apt-get install python3-catkin-tools
# Updating MAVProxy and pymavlink (new versions released now and then)
sudo pip install --upgrade pymavlink MAVProxy
#Setup MAVROS to begin communication
cd ~/
# Setup MAVROS workspace
mkdir -p ~/ardupilot_ws/src
cd ~/ardupilot_ws
catkin init
# Create launch file for MAVROS
cd src
mkdir launch
cd launch
roscp mavros apm.launch apm.launch
sudo gedit apm.launch #opens a text editor, follow the next command (you can also do it using any other editor of your choice, for eg. by using 'code .' commmand)
#To proxy to a Ground Control Station like QGC or Mission Planner on ground we just need to modify the first line to <arg name="fcu_url" default="udp://:{ground-port}@{ground-hostname}" />. save you file and launch it with-
cd ~/ardupilot_ws/src/launch
roslaunch apm.launch
QGC Setup
To configure QGroundControl for communication with MAVROS:
Open QGroundControl
Launch QGroundControl on your ground station device.
Configure UDP Settings
Navigate to 'Application Settings'.
Go to the 'Comm Links' tab.
Click 'Add' in the options menu.
Select 'Type' as 'UDP'.
Enter the{ground-port} in "Port" and {ground-hostname} in "Server Addresses (optional)"
Connect
Click "OK" to save the settings.
Click on the "Connect" tab to establish the connection from side menu
Ensure that your onboard companion computer and ground station are connected to the same LAN setup via a router for proper communication.
Ensure both the board and the ground station are connected to the same LAN setup for the proxy to work.