Module 0: UAV Environment Setup


Instructional Content Access

BWSI edX Account

Instructions for BWSI’s edX application. Note: You should already have an account having completed the pre-requisite online portion of this course

GITHUB

Once you have Gthub and Git setup on your laptop. You will be pulling code from the BWSI-UAV Laboratory and drone-control repositories provided by us.


Laptop Setup

In short, when working with the embedded systems involved with robotics, you need a Linux environment on your laptop or desktop. Period.

There are plenty of hacks and tricks for trying to get Windows or MacOS to play nicely with the software tools and libraries used in robotics, but in the end you will waste more time—and endure more frustration—trying to get those tools working than you would if you just commit to working in Linux from the beginning. In short, this class is designed around a Linux operating system and we do not have the bandwidth to provide equivalent instruction for other operating systems.

Below we layout the steps necessary to get you laptop or desktop setup to develop the Intel Ready-To-Fly Drone

Install Ubunutu Linux (Operating System)

There are many “flavors” of Linux; this course will utilize the most popular (arguably) version known as Ubuntu.

NOTE:

As of the Summer of 2024, we will be using Ubuntu 22.04 LTS for this course. Please select this version of Ubuntu while installing using one of the following options.

Option 1: Dual Boot Native Linux

This option tends to be preferred by full-time Linux users. It’s how I set up my personal computers

Dual booting is kinda like creating a separate computer inside your computer. Think of it like your computer having a split personality: any time you turn on your computer it can either be a Windows computer or a Linux computer, depending on what option you pick during startup. This is different from Virtual Machine which is more like one computer running a simulation of another computer.

There are many tutorials online that describe how to create a dual boot Windows/Linux computer; I find Ubuntu’s tutorial the most refined. Please follow instructions below

https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop#0

DISCLAIMER 1:

Dual booting requires partitioning your hard drive which poses risk of losing data on your computer if done incorrectly. It is strongly recommended to backup your hard drive before proceeding.

DISCLAIMER 2:

This process may take roughly an hour for someone who knows what they are doing, but several hours for someone who is doing it for the first time. Plan accordingly.

We argue that, in the long term, the power and flexibility of Linux is worth the risk and effort. It’s almost impossible to be an effective roboticist without it!

Option 2: Virtual Machine Linux Guest

This option can be good when getting started with Linux as it requires less “surgery” on your computer, but it will eventually hit roadblocks/difficulties that a dual-boot avoids

An alternative to dual booting is the create a virtual machine to run a “guest” Linux machine as a program within you native operating system. You should have already done this as part of the online prerequisite course.

As with Dual Booting, there are many online tutorials to follow for creating a Ubuntu Linux virtual machine. Here is a link to one tutorial that uses VirtualBox:

Medium Article on Linux VM Install

Install GIT

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

PX4 Development Environment (UAV Firmware)

https://docs.px4.io/main/en/dev_setup/dev_env_linux_ubuntu.html

Install ROS2 (Robot Middleware)

https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html

Miniconda/Anaconda & Jupyter Notebooks (Package Manager & Interactive Coding)

https://www.hostinger.com/tutorials/how-to-install-anaconda-on-ubuntu/

https://jupyter.org/install