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.
- Install rpi-imager
- Run
sudo apt install rpi-imager
to install the Raspberry Pi Imager. - Insert the microSD card into your computer.
- Run
- 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.
-
Basic Linux Setup
sudo apt-get update sudo apt-get upgrade timedatectl set-local-rtc 1 --adjust-system-clock sudo apt-get install git
-
ROS Setup
# Setup sources.list sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # Setup keys sudo apt install curl curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - # Installation sudo apt update sudo apt install ros-noetic-base # Initialize rosdep sudo apt install python3-rosdep sudo rosdep init rosdep update # Setup environment echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc # Fulfill dependencies sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
-
MAVROS Setup
# 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.
- Open QGroundControl
Ensure both the board and the ground station are connected to the same LAN setup for the proxy to work.