UAS Operation Education Documentation

This document serves as a suggestion for UAV Educational Resources an individual should take to get started in research in UAS. This document is laid out in a way we suggest you follow, starting from the prerequisite requirements. The section “Mission-specific task” is listed to suggest a few useful tools to tackle specific tasks required for your mission

Prerequisites

To get started on research involving UAS, we suggest following this path to familiarize yourself with the materials needed for UAS research. We recommend following the courses in this order, depending on the nature of your research. A lot of UAS operations can be done through Python codes under a Linux-based Ubuntu environment. However, C++ language can be used for efficiency and further applications in Robotics.

Note that most autopilot source codes are written in C++, which means that any alteration done directly with the autopilot will require sufficient knowledge of the coding language. Therefore, for mission-specific tasks, sufficient knowledge in C++ will be useful for future, more advanced involvements.

Python 3

Useful Additional Tools

Udacity Version Control with Git

  • It is a good practice to have version control repositories when working in a team and documenting each research progress. We suggest individuals know the basics of Git to be able to work collaboratively in a research team.

Udemy Docker Docker is a useful environment for setting up containers and images for each environment and can be applied to create a fast, repeatable environment setup. It allows containers to be built, shared, and run on any device.

Robot Operating Software

Robot Operating Software 2 (ROS2) serves as a set of software libraries and tools for building robot applications, allowing fast, open-source tools to complete any robotic computation, including in applications to UAS operations. The official tutorial page for ROS2 humble can be found here. Please note that your ROS2 version can vary, but we recommend selecting a Long-term support version such as the ROS2 “Humble.”

ROS2: (Highly Recommended) ROS2 Basics: Udemy ROS2 for Beginners This course covers all the ROS2 basic knowledge, including the introductions to nodes, topics, services, parameters, etc. This introduces you to writing your first ROS2 code for future use in communicating between UAS and various other components.

Udemy ROS2 Applications to Gazebo/RViz This course is recommended to further strengthen the knowledge of ROS2 applications in a simulator environment, introducing you to topics of TF, URDF, RVIZ, and gazebo. All of these are required to work with a simulated model, its orientation and dynamics, and the simulator environment.

Other Mission-Specific Tasks

Path Planning and Maze Navigation with ROS2

  • This course is useful to introduce multiple popular and useful algorithms in concepts, including localization, mapping, path planning, and motion planning, all of which are useful for maze application and navigation in applications with computer vision.
  • Udemy ROS2 Path Planning and Maze Solving with Computer Vision

NAV2 Stack with Ros2 for basic waypoint planning

  • NAV2 is a library that allows for stable perception, planning, control, localization, and visualization of robotic autonomous systems. This can be applied through ROS sensors and provide an efficient navigation behavior that is worth knowing as a base operation for Waypoint A to Waypoint B autonomous navigation.
  • Udemy ROS2- NAV2 Stack

Gazebo

  • Gazebo is a software commonly used for robotics simulations that supports connections to ROS environments. It is very useful to use Gazebo for simulations related to UAS models and software for any preventable bugs or unstable algorithms.
  • Mastering Gazebo Simulator