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
- 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).
- Install drivers for all onboard sensors (cameras, LiDARs, etc.).
- Install any additional software specified by the client (SLAM, collision avoidance, etc.).
- Clone all required packages into the
gitfolder and create symbolic links toworkspace/src. - Verify that the installed sensor drivers are running and producing the expected output (camera images, LiDAR data, etc.).
- Focus camera lenses (if applicable) and secure them in the focused position using black hot glue.
- Calibrate cameras (if applicable) following the camera calibration guide.
- Check
.bashrcvariables to ensure correct setup, particularlyUAV_TYPEandUAV_MASS.UAV_TYPEshould match one of the files ingit/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.
- TODO: If a new drone/frame/motor/propeller configuration is used, perform setup (measure thrust constants).
- Run
uav_checkfrom the install script and ensure all checks pass. - Remove unnecessary folders (Desktop, Documents, Videos, Music, Downloads, etc.) from the default Ubuntu installation, retaining only the
gitfolder,example_session, and the ROS workspace.
Tmux Session Preparation
- Start with a known, up-to-date tmux session (e.g.,
just_flyingfrom mrs_uav_deployment). - 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. - Configure the
example_sessionto launch all sensors and additional software. - Place all customized launch files in the
launchfolder within the session. Avoid modifying the base system installation or git repositories. - Place all customized configuration files in the
configfolder within the session. Avoid modifying the base system installation or git repositories. - Store camera calibrations in the
config/camera_calibrationsfolder. - The
launchfolder should contain atf_static.launchfile with static transforms for all UAV sensors (cameras, LiDARs) if not provided by the MRS System. - 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.
- After setting up all transforms, run the tmux session and visualize them in RViz to verify correctness.
- Configure MRS UAV Status to display rates for additional sensors (LiDARs, cameras) via the
config/custom_config.yamlfile. Thewant_hzarray 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/. - Caution: Monitoring high-bandwidth topics (e.g., camera images) can overload the network. Monitor lower-bandwidth alternatives (e.g.,
camera_infofor cameras, IMU topics for LiDARs). - With all sensors configured, static transforms set, and displayed in MRS UAV Status, run the tmux session and verify functionality.
- While the session and sensors are running, start the
record.shscript and check the recording rate. Aim for below 10 MB/s; rates over 100 MB/s are problematic. Adjustrecord.shto exclude high-bandwidth topics if necessary.
Test Flights
- Record all flights on video to capture any unexpected behavior.
- Calibrate the UAV through QGroundControl (accelerometer, gyro, level horizon, and compass).
- Verify the failsafe on the RC (turning off the RC should display "Manual control lost" in QGroundControl).
- Spin the motors and check their rotation direction.
- Perform initial flights with the main computer (NUC) turned off.
- Test fly the UAV sequentially in "Manual," "Altitude," and "Position" modes. In "Position" mode, induce whirpooling by changing the Yaw.
- If manual flights are successful, proceed to autonomous flight.
- Perform an autonomous takeoff, execute maneuvers using arrow keys through MRS UAV Status, and then initiate a "land_home" command.
- Demonstrate any client-requested features (precise landing, obstacle avoidance, etc.) during the autonomous flight.
- 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
- After successful autonomous test flights and before shipping, back up the
example_session, PX4 parameters, and the entire drive. - Delete the
bag_filesfolder to avoid backing up ROSbags. - Upload the final
example_sessionto the "backup" folder in the project's Google Drive folder. - Download all PX4 parameters through QGroundControl and upload them to Google Drive.
- Create a full disk backup of the UAV using Clonezilla. Compress the image folder into a
.zipfile and upload it to Google Drive.
Stuff for documentation
- Measure the mass of the UAV with the intended battery and propellers, write it down.
- 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