Table of Contents
In-development by TickTock
On this page I will chronicle my efforts to build an octorotor using the Mantis X8 frame and the PX4 autopilot. This is my first custom build and PX4 project so please use caution following my steps as I may very well make mistakes as I learn.
First follow the QuickStart Guide and use qgroundcontrol to flash your px4 using the usb. Do Not connect the 6S battery to the Px4 - it cannot handle the voltage as-is. You should be able, at this point, to communicate with qgroundcontrol via the USB cable. I recommend ensuring this works before attempting to establish communications via the wireless modem. QGC should connect and correctly reflect the PX4 attitude in the flight window.
Some modification to the stock code base is required so follow the Developer Tutorials to install the toolchain.
Modify PX4IO to use 6S Battery Pack
Using the Telemetry Module
As will all things ftdi, I had a hard time getting the RFD900 radio modem to work. If you have working ftdi drivers, it should just work once you set the properties to the default baud rate of 57600 in device manager and in qgroundcontrol. If it works then skip the rest of this section.
No such luck for me. First clue that it was a driver issue was that I was unable to even communicate with the device using the RFD900ModemTools software (although it did come up as a COM port in the device manager). I don't have a clear set of instructions to fix this, but fully uninstalling and reinstalling an older driver (CDM 2.08.28) solved my problem. Not sure if it was the older driver or just the process of reinstalling that solved it. There are actually two devices in the device manager that must be uninstalled: 1) the “USB Serial Port (COMxx)” under “Ports (COM & LPT)” and 2) the “USB Serial Converter” under “Universal Serial Bus Controllers.”
Once you are able to communicate with the modem with the RFD900ModemTools, exit the s/w (I didn't actually have to configure anything - defaulted to 57600 baud) then edit the properties of the COM port in the device manager to be 57600 to match the modem. At this point, I was able to connect to the PX4 through the modem.
Configure PX4 for octorotor
Check for Magnetic Interference
Tune the PID Controller
Using the guide above it is pretty straight-forward. Simply connect to qgroundcontrol and select the Pro–>Plot tab. If you have the “Onboard parameters” widget selected under “Tool Widgets” you will see all the onboard parameters on the right. Expand the MC section to gain access to all the PID coefficients. You can use this widget to adjust the parameter as instructed in the tuning guide. I found that the sensor calibration also left some errors in the pitch and roll which I had to manually adjust. With the craft on level ground, expand the SENS section and adjust SENS_ACC_XOFF until the pitch is centered in qground control and SENS_ACC_YOFF until the roll is centered. For me it meant setting them both to zero. When you are ready to tune the PID settings, you will probably want to slow down the display rate to 30 seconds or so. To constrain motion, I used a scrap piece of 1/2“ solid aluminum rod I had, zip tied it to the bottom of the aircraft and bungee'd the whole thing to two saw horses. Finally, I added two loose tethers to a weight to limit the magnitude of any oscillations I might encounter. Close inspection of the image will reveal that my rod has a square cross-section. This was a mistake. The square profile plus the bungees contributed a torque that isn't present during normal flight and it was very difficult to eliminate the oscillations. Use a round rod.
Here's another good read on PID tuning:
Set up Failsafe
Prepare for First Flight
- If you are seeing instability while in EASY mode when stopping, a likely cause is magnetic declination (compass North is not aligned with GPS North so it doesn't apply the right vector to stop motion since it doesn't know the true orientation of the craft). To correct follow step 4 in the sensor_calibration page.
- After performing sensor calibration, I noticed the pitch and roll had a fair amount of error (bug?). For me, I had to manually set them to zero after cal was complete for the craft to reflect true attitude (my setup apparently has very little error). To do this, just program SENS_ACC_XOFF and SENS_ACC_YOFF (under the SENS category) to zero (or other value that results in the qgc properly indicating attitude).
- If you are hearing S-O-S in morse code, it probably means the SDRAM is not properly seated
- Don't trust zip ties. Always use more than one in case one fails.
- When landing, either switch to manual first, or be ready to flip to manual immediately on touchdown. EASY and SEATBELT modes can go crazy when the landing gear touches down as it tries to control the craft - resulting in flipping and general badness.
- Press [Enter] three times in the terminal to start nsh. Type: “px4io status” to get px4io status