Skip to content

PRGWhippet

Chahat Deep Singh edited this page Nov 17, 2019 · 23 revisions

Hardware and Software Setup for the PRGWhippet

Table of Contents

Notes about Whippet dog

1. PRGWhippet Configuration

PRGWhippet comes in the following configurations (Click on the name for hardware and software setup).
Config Autopilot Software
PRGWhippetAlpha Ardupilot

2. What Is PRGWhippetAlpha?

PRGWhippetAlpha is a 110-160 size nano quadrotor built from scratch using the Ardupilot based flight controllers for indoor autonomy using on-board sensing and computation.

2.1. Bill Of Materials

Item Qty Price/Item (USD) Cost (USD) Sourcing Link(s)
T-Motor F20-II 3750 KV Motors 4 18 72 Link
Lumenier 35A 4In1 ESC 1 60 60 Link
Hobbypower PX4Flow v1.3.1 1 62 62 Link
TFMini Lidar Module 1 45 45 Link
Carbon Fiber 200mm x 300mm x 2mm 1 26 26 Link
Tattu 3S Battery 850mAh 1 14.5 14.5 Link
Spektrum DSMX Reciever 1 23 23 Link
Holybro Kakute F7 AIO Flight Controller 1 50 50 Link
Intel Up Core 1 169 169 Link
Pololu 5V 5A Regulator 1 15 15 Link
RayCorp 3030x4 Propeller 1 15 15 Link
Spektrum DXe Transmitter 1 63 63 Link

Note that the above table represents the Bill Of Materials for the best performance quadrotor which are tested, i.e., highest thrust to weight ratio, the best reliable components and best computer that can fit in the maximum size of 160 mm. Some alternate motor and ESC choices are given in the following tables.

Item Qty Price/Item (USD) Cost (USD) Sourcing Link(s) Propeller Pairing
T-Motor F20-II 3750 KV Motors 4 18 72 Link 3030x4
EMAX RS1306B 4000KV Motors 4 11 44 Link 3030x4
T-Motor F15 6000KV Motors 4 15 60 Link 2040x3 2540x3
Lumenier RX1306-7 4000KV Motor 4 15 60 Link 3030x4
Item Qty Price/Item (USD) Cost (USD) Sourcing Link(s)
DYS 4In1 BLHeli_S ESC 1 39 39 Link
Lumenier 35A 4In1 ESC 1 60 60 Link
T-Motor F45A BLHeli_32 4In1 ESC 1 64 64 Link

A cost effective motor + ESC combo will be to use EMAX RS1306B 4000KV Motors with a DYS 4In1 BLHeli_S ESC (not that this ESC is ot BLHeli_32). The smoothest performance will be obtained using any T-Motor motor with the T-Motor 45A ESC.

Also note that, EMAX Bullet Series of ESCs have some problems working with various autopilots and it is highly recommended to avoid them.

2.1.1. Details On Required Bolts, Nuts and Standoffs

Item Qty
6 mm M2 Bolts 4
12 mm M2 Bolts 4
16 mm M2 Bolts 8
20 mm M2 Bolts 4
M2 Nuts 36
6 mm Nylon M3 F-F Standoff 4
12 mm M3 Bolts 8
20 mm Nylon M3 M-F Standoff 12
M3 Nuts 4

2.1.2. Tools And Miscellaneous Items Required

2.2. Where Can I Get Water-jet Cutting And 3D Printing Done?

For University of Maryland, College Park students use Terrapin Works service and submit jobs through Papercut server. Others can use an online service such as this and this or use your own 3D printer/water-jet cutter.

2.3. Assembly Instructions

2.3.1. Wiring Instructions

Wiring for the PRGWhippetAlpha is divided into three steps, these three steps help diagnose the hardware problems early.

The first step is the bare minimum to fly a manual quadrotor. This is similar to a racing quadrotor. This step should help obtain a basic tune before trying out any autonomy functionality.

Once the aforementioned connections are made, please follow the instructions in Sections 2.4.1.1 to 2.4.1.3.

Now assuming you have a stable manually flying quadrotor, now it's time to get into some autonomy. First step is to hold altitude using a TFMini Lidar. The TFMini is connected to the KakuteF7AIO using a serial connection as shown below.

Now, go to Section 2.4.1.4 for software setup instructions.

2.3.2. Hardware Assembly

2.4. Software Setup

2.4.1. ArduPilot Setup

2.4.1.1. Flashing Firmware with Bootloader

Download the arducopter firmware with bootloader ``arducopter_with_bl.hex`` from [here](http://firmware.ardupilot.org/Copter/stable-3.6.11/KakuteF7/). Any version should ideally work, but the suggested version is 3.6.11 as currently it is tested and the latest stable version.

To flash the arducopter firmware with bootloader you need to download the Betaflight configurator chrome app from here. You'll need Google Chrome web browser for this step. If you don't have Google Chrome, please download it from here.

Now, follow the instructions from the offical Kakute F7 AIO Manual to install the drivers for your particular operating system. Though Windows is the hardest to get to work, we suggest using Windows since it had the most stable performance in our experience.

Now, press and hold the DFU button as shown below on the Kakute F7AIO while you plug in the USB to your computer.

Now, open the Betaflight configurator chrome app, it should say DFU on the top right corner as shown below. If this is not the case, follow the previous steps again carefully.

Now, select the correct board KakuteF7, check Full chip erase and click on Load Firmware [Local] on the bottom right corner as shown below (Image Credits: OscarLiang.com). Then select the arducopter_with_bl.hex file we downloaded before.

The click on Flash Firmware once the loading is complete. Wait for the firmware to complete flashing.

If you have done all the previous steps correctly, the flight controller should show a COM port on the top right. The COM port will have different names based on the operating system you are on. Now, proceed to the next step if everything worked else repeat previous steps.

2.4.1.2. Calibration with Arducopter

Download Mission Planner for Windows from [here](http://ardupilot.org/planner/docs/mission-planner-installation.html). Note that this is officially supported on Windows for now. However, many people have gotten it to work on Linux, more details about this can be found [here](https://discuss.ardupilot.org/t/running-mission-planner-on-linux/19100).

Now, follow the steps here to calibrate your accelerometer.

Now, follow the steps here to calibrate your RC transmitter after binding with your reciever.

2.4.1.3. Motor Test and first flight

Now, test the motors following the instructions here, if the order is wrong, please verify the motor connections for your ESC (the connections shown in our diagram in Section 2.4.1.1 are for Lumenier 35A 4in1 ESC).

If any of the motors spin in the wrong direction, i.e., opposite to the one shown below, swap any two of the three wires for that particular motor which connect to the ESC.

Once all the motors are in the correct order and they spin in the correct direction, calibrate the ESCs by following the instructions here.

  • Load params. (resets your calibration, sets up serial and stuff).
  • Test directions transmitter swap. TRPY order. Change order here http://ardupilot.org/copter/docs/common-rcmap.html
  • Now, go to an open area outdoor or a netted area indoor for your first flight test.
  • Tune in Acro mode.

2.4.1.4. AltHold Mode

Go back to Section 2.3.1 for the wiring diagram to connect the TFMini Lidar, which we'll use to hold altitude. Set the following parameters to start using TFMini (Use the search bar in Full Parameter List tab in CONFIG\TUNING tab in Mission Planner). Here we connected the TFMini to UART2, please adapt the SERIAL number if you changed the UART port.

Parameter Value
SERIAL2_PROTOCOL 9
SERIAL2_BAUD 115
RNGFND1_TYPE or RNGFND_TYPE 20
RNGFND1_MIN_CM or RNGFND_MIN_CM 30
RNGFND1_MAX_CM or RNGFND_MAX_CM 1000 (indoors) or 600 (outdoors)
RNGFND1_GNDCLEAR or RNGFND_GNDCLEAR 10 (distance of sensor from ground when vehicle is landed)

Restart your flight-controller by power cycling and disconnecting the USB cable. You should see the sonarrange values changing in Status tab of Mission Planner when you move the vehicle/TFMini.

Note that to have quick access to this parameter you can right click on the numbers in the quick access tab in Mission Planner and change the number or rows and columns as shown below.

The double click any icon and check the parameter you want to be displayed there as shown below.

Now, go to Initial Setup > Flight Modes and change one of the modes to AltHold as shown below.

  • Enable Flight Mode switch

2.4.1.5. (Optional) Fine-tune PIDs using Autotune

2.4.1.5. FlowHold Mode

  • Current problems with Loiter, PosHold.

2.4.2. Up Board Setup

2.4.2.1. Ubuntu 16.04 Installation

The Intel Up Core board does NOT support legacy setting in BIOS. It ONLY has UEFI mode so do not use tools like rufus or PowerISO to create the Ubuntu Bootable disk. You can install Ubuntu with rufus but the bootloader (GRUB) won't be installed.

  • Download Ubuntu 16.04.6 iso file from the Ubuntu download page (link)
  • Create a USB disk (minimum 8GB space) using etcher tool which creates UEFI bootable disk. You can download etcher from here.
  • Install Ubuntu the regular way and everything should work.

Note: In BIOS settings, make sure you have OS type selected as Android/Linux, not Windows.

2.4.2.2. Update Ubuntu Kernel for Up Core

  1. After the reboot you need to add our repository:
sudo add-apt-repository ppa:ubilinux/up
  1. Update the repository list
sudo apt update
  1. Remove all the generic installed kernel
sudo apt-get autoremove --purge 'linux-.*generic'
  1. Install our kernel
sudo apt-get install linux-image-generic-hwe-16.04-upboard
  1. Install the updates (please make sure to not upgrade the system to Ubuntu 18.04)
sudo apt dist-upgrade -y
sudo reboot
  1. Reboot
sudo reboot
  1. After the reboot you can verify that the kernel is indeed installed by typing
$ uname -a
Linux upsquared-UP-APL01 4.15.0-37-generic #40~upboard03-Ubuntu SMP Wed Dec 12 16:21:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

2.4.2.3. Install the Ampak firmware for WiFi and Bluetooth

This firmware is available for UP Core (AP6214A chipset) and UP Core Plus (AP6355 chipset).

Just run the next command

sudo apt install firmware-ampak

Reboot your machine to get the firmware working:

sudo reboot

WiFi First at all, you may need to connect a WiFi antenna to your UP Core board [ANT1 connector]. Check the UP Core connectors in https://downloads.up-community.org/download/up-core-connectors-description/.

Scan your available WiFi networks:

sudo iwlist wlan0 scan

You will see all the WiFi interfaces in your area.

Bluetooth Check your Bluetooth devices in your area:

hcitool scan

For other Kernel level and Networking changes, please follow these instructions.

2.5. Autonomous Trajectory Following

Clone this wiki locally