Skip to main content

Guide

Cheklist is provided at the bottom of this page

This checklist outlines the steps for setting up and testing a UAV, assuming the following:

  • In the install screen of Ubuntu 20.04, the values should be filled as follows:
  • Your name: uav
  • Your computer's name: uav1 (or uav2, uav3 etc.)
  • Pick a username: uav
  • Choose a password: f4f
  • Ubuntu 20.04 is installed.
  • The MRS UAV System is installed via the install_script.
  • Pixhawk setup is completed, as described in the PX4 configuration guide.

After running the install script, the UAV should have a git folder containing basic packages (notably mrs_uav_deployment) and a ROS workspace called "workspace" with essential packages set up.

Standard networking:

  • WiFi ssid: f4f_robot
  • WiFi pass: mikrokopter
  • Router ip range: 192.168.12.1-255
  • UAV static ip: 192.168.12.101 (for UAV1), 192.168.12.102 (for UAV2) etc.
  • Disable 2.4GHz network, use only 5GHz (to avoid interference with RC)

Cudy router networking:

  • WiFi ssid: f4f_cudy (To avoid conflict with the SSIDs in the office)
  • WiFi pass: f4f_cudy (To avoid leak of mikrokopter password)
  • Router ip range: 192.168.12.1-255
  • UAV static ip: 192.168.12.101 (for UAV1), 192.168.12.102 (for UAV2) etc.
  • Disable 2.4GHz network, use only 5GHz (to avoid interference with RC)

Hardware and Software Installation

  1. Consult the UAV proposal document (in the project's Google Drive folder) for a description of all sensors, their connection points, and any required additional software (e.g., SLAM, collision avoidance).
  2. Install drivers for all onboard sensors (cameras, LiDARs, etc.).
  3. Install any additional software specified by the client (SLAM, collision avoidance, etc.).
  4. Clone all required packages into the git folder and create symbolic links to workspace/src.
  5. Verify that the installed sensor drivers are running and producing the expected output (camera images, LiDAR data, etc.).
  6. Focus camera lenses (if applicable) and secure them in the focused position using black hot glue.
  7. Calibrate cameras (if applicable) following the camera calibration guide.
  8. Check .bashrc variables to ensure correct setup, particularly UAV_TYPE and UAV_MASS.
    • UAV_TYPE should match one of the files in git/mrs_uav_deployment/config/mrs_uav_system. The files follow the pattern <frame_name>_<motor_model>_<add_info>.yaml. If no motor_model is specified, it is assumed that the UAV uses the original/standard motor model for that frame.
  9. TODO: If a new drone/frame/motor/propeller configuration is used, perform setup (measure thrust constants).
  10. Run uav_check from the install script and ensure all checks pass.
  11. Remove unnecessary folders (Desktop, Documents, Videos, Music, Downloads, etc.) from the default Ubuntu installation, retaining only the git folder, example_session, and the ROS workspace.

Tmux Session Preparation

  1. Start with a known, up-to-date tmux session (e.g., just_flying from mrs_uav_deployment).
  2. Copy the session to the home folder and rename it to example_session. Create multiple sessions for different scenarios (e.g., indoor/outdoor) as needed.
  3. Configure the example_session to launch all sensors and additional software.
  4. Place all customized launch files in the launch folder within the session. Avoid modifying the base system installation or git repositories.
  5. Place all customized configuration files in the config folder within the session. Avoid modifying the base system installation or git repositories.
  6. Store camera calibrations in the config/camera_calibrations folder.
  7. The launch folder should contain a tf_static.launch file with static transforms for all UAV sensors (cameras, LiDARs) if not provided by the MRS System.
  8. For adding static transforms, request sensor offset data from CAD from the hardware team. Use the tf_reconfigure tool (see the tf reconfigure guide) to set up the transforms.
  9. After setting up all transforms, run the tmux session and visualize them in RViz to verify correctness.
  10. Configure MRS UAV Status to display rates for additional sensors (LiDARs, cameras) via the config/custom_config.yaml file. The want_hz array contains monitored topics and expected rates in the format: "monitored_topic name_displayed expected_rate". Absolute paths (starting with "/") are used directly; relative paths (without "/") are prefixed with /$UAV_NAME/.
  11. Caution: Monitoring high-bandwidth topics (e.g., camera images) can overload the network. Monitor lower-bandwidth alternatives (e.g., camera_info for cameras, IMU topics for LiDARs).
  12. With all sensors configured, static transforms set, and displayed in MRS UAV Status, run the tmux session and verify functionality.
  13. While the session and sensors are running, start the record.sh script and check the recording rate. Aim for below 10 MB/s; rates over 100 MB/s are problematic. Adjust record.sh to exclude high-bandwidth topics if necessary.

Test Flights

  1. Record all flights on video to capture any unexpected behavior.
  2. Calibrate the UAV through QGroundControl (accelerometer, gyro, level horizon, and compass).
  3. Verify the failsafe on the RC (turning off the RC should display "Manual control lost" in QGroundControl).
  4. Spin the motors and check their rotation direction.
  5. Perform initial flights with the main computer (NUC) turned off.
  6. Test fly the UAV sequentially in "Manual," "Altitude," and "Position" modes. In "Position" mode, induce whirpooling by changing the Yaw.
  7. If manual flights are successful, proceed to autonomous flight.
  8. Perform an autonomous takeoff, execute maneuvers using arrow keys through MRS UAV Status, and then initiate a "land_home" command.
  9. Demonstrate any client-requested features (precise landing, obstacle avoidance, etc.) during the autonomous flight.
  10. Upload the autonomous test flight video to the project's Google Drive folder.

NOTE: For this step of testing, use the Cudy router that was supplied with the drone.

Backups

  1. After successful autonomous test flights and before shipping, back up the example_session, PX4 parameters, and the entire drive.
  2. Delete the bag_files folder to avoid backing up ROSbags.
  3. Upload the final example_session to the "backup" folder in the project's Google Drive folder.
  4. Download all PX4 parameters through QGroundControl and upload them to Google Drive.
  5. Create a full disk backup of the UAV using Clonezilla. Compress the image folder into a .zip file and upload it to Google Drive.

Stuff for documentation

  1. Measure the mass of the UAV with the intended battery and propellers, write it down.
  2. Measure the dimensions with and without propellers in cm. (width, height, length) write them down.

Checklist

I. Hardware and Software Installation:

  • Review UAV proposal document (Google Drive) for sensor details and software requirements.
  • Install drivers for all onboard sensors (cameras, LiDARs, etc.).
  • Install any additional client-specified software (SLAM, collision avoidance, etc.).
  • Clone required packages into the git folder.
  • Create symbolic links from cloned packages to workspace/src.
  • Verify sensor driver operation and output.
  • Focus camera lenses (if applicable) and secure them.
  • Calibrate cameras (if applicable) using the provided guide.
  • Verify .bashrc variable setup (UAV_TYPE, UAV_MASS).
  • TODO: Perform setup for new drone/frame/motor/propeller configurations (measure thrust constants).
  • Run uav_check and verify all checks pass.
  • Remove unnecessary folders from the Ubuntu installation.

II. Tmux Session Preparation:

  • Locate a suitable base tmux session (e.g., just_flying). TODO: Create a custom session if needed.
  • Copy and rename the session to example_session. Create additional sessions for different scenarios if required.
  • Configure example_session to launch all sensors and software.
  • Place customized launch files in the launch folder within the session.
  • Place customized configuration files in the config folder within the session.
  • Place camera calibrations in the config/camera_calibrations folder.
  • Create/modify tf_static.launch in the launch folder with necessary static transforms.
  • Obtain sensor offset data from CAD (if needed) from the hardware team.
  • Use tf_reconfigure to set up static transforms.
  • Run the tmux session and visualize transforms in RViz.
  • Configure MRS UAV Status to monitor additional sensors in config/custom_config.yaml.
  • Verify sensor data display in MRS UAV Status.
  • Run record.sh and check the recording rate. Adjust as needed to exclude high-bandwidth topics.

III. Test Flights:

  • Record all test flights on video.
  • Calibrate the UAV through QGroundControl.
  • Verify RC failsafe functionality in QGroundControl.
  • Check motor rotation directions.
  • Perform initial flights with the NUC turned off.
  • Test fly in "Manual," "Altitude," and "Position" modes.
  • Perform autonomous takeoff and maneuvers.
  • Test "land_home" functionality.
  • Demonstrate any client-requested features (precise landing, obstacle avoidance, etc.).
  • Upload the autonomous test flight video to Google Drive.

IV. Backups:

  • Delete the bag_files folder.
  • Upload the final example_session to the "backup" folder in Google Drive.
  • Download PX4 parameters through QGroundControl and upload them to Google Drive.
  • Create a full disk backup using Clonezilla.
  • Compress the Clonezilla image and upload it to Google Drive.

V. Documentation:

  • Measure mass of the UAV in the full configuration (with battery and props)
  • Measure the dimensions of the UAV with and without propellers