We have moved! Please visit us at ANTHROECOLOGY.ORG. This website is for archival purposes only.

May 08 2012

Arducopter Back in Flight

After a steep learning curve for Arducopter, we have it flying.  Garret left us the Arducopter after graduating, I had never so much as worked with Arducopter before.  Of course I had never worked with Mikrokopters either, but Jonathan was here to teach me everything I need to know about them.  I didn't have that luxury for Arducopter, so progress was a bit slower.

The first thing I did when Istarted working with the ardu was to load new firmware and update to the new mission planner.  Since this was all new software, the Arducopter had to be calibrated from scratch.  After crashes during motor tuning, we had multiple delays while waiting for new parts to come in.

But the Arducopter is flying now, and not a moment too soon.  With summer rapidly approaching and all the orders in, I'm going to start building the Octocopter very soon.  It gives me some assurance that I was able to get the quad Arducopter flying, since the Octocopter also uses Ardupilot.

Apr 26 2012

Arducopter Progresses, Octocopter Components Still Arriving

It’s been slow going with the Arducopter, working with it this semester has often seemed like two steps forward and one step back.  However after several stumbling blocks like the Ardupilot board being of the older model now, and  ailing Electronic Speed Controllers:  things are starting to look up!

I was able to update the Arducopter to four brand new ESCs, since one of our big orders just came in (will get to that in a bit).   Earlier we’d had trouble calibrating the Arducopter for flight, it kept wobbling and flipping over.  I feel rather foolish now; the problem was that the ESCs were mismatched!  One had been replaced because it was suspected to be burned out.  I only yesterday realized that of course it would need four identical speed controllers to fly stabile.  Since our Octokopter order of ESCs came in, there were enough spares to outfit the Arducopter for testing.

So a new order did come in!  Our large order from DIYDrones is now in the lab: it included ESCs, propellers, power distribution boards, and Ardupilot boards.  Combined with our previous order from Aeroquad (Mikrokopter OctoXL Frame), we now have most of the components to build an Octokopter, and enough spare parts to build a second one (minus what we’re still waiting on.)  The jDrones order went out yesterday; it was mostly parts that have been out of stock until now.  This order includes the last set of components we’ll need to make a working Octo, the motors.

Things are looking good for the next gen of Ecosynth aircraft; at this point I think that Octokopter work will start as soon as summer research starts, when aircraft moves into the bigger lab.

Nov 01 2011

Personal remote sensing goes live: Mapping with Ardupilot

Folks all over are waking up to the fact that remote sensing is now something you really should try at home!  Today DIYDrones published a fine example of homebrew 3D mapping using an RC plane, a regular camera, and a computer vision software: hypr3d (one I’ve never heard of).  Hello Jonathan!


PS: I’d be glad to pay for a 3D print of our best Ecosynth- hypr3D can do it, so can landprint.com

Jul 27 2011

ArduPilot/ArduCopter Update

As many of you know our attempt at photographing Elbow Ridge Farm via two EasyStars this past weekend was anything but successful. Although the primary issue of Auto mode being inactive was eventually resolved at the field by trimming the endpoints on the mode toggle switch, we were still unable to fly our missions due to the system failing to obtain a GPS lock. Even after that weekend when the GPS was relocated to a more familiar region it was unable to obtain a GPS signal. Out of frustration I had decided to clear the GPS settings and delete the current firmware. Starting from scratch I reloaded both the firmware for the GPS as well as a script which enables it to communicate with the ArduPilot. In doing this I had also updated the GPS to a more recent firmware version. Just as it had in the past the ArduPilot was able to get a GPS lock within 5 minutes of being powered up (as indicated by the solid blue LED on IMU shown in the above picture). I’m planning on flying a short mission with the EasyStar tomorrow afternoon to make sure everything is working as it should be. Hopefully this will better prepare us for our next trip to Elbow Ridge Farm.

This week Jonathan had given me the camera mount and landing gear from one of the old Gaui quads so I could attach it to the new ArduCopter system. I just figured I’d post a picture of the new setup. The landing gear had to be extended by 2 in to provide enough clearance for the camera so I drew up a CAD model and laser cut a set of extensions out of 1/8’’ thick plastic sheet (triangular support structure on bottom). I had also added a servo to the camera mount and attached it to one of the output ports on the ArduPilot Mega to provide automatic camera stabilization. So far it seems to work great but we’ll need to upgrade the stabilizing servo if we plan to fly missions with camera stabilization activated.       

Jan 04 2011

First Flight With the ArduPilot

Prior to the first flight test I wanted to insure that the servos would remain stable throughout the flight so last night I was trying to figure out why I had experienced occasional servo jitter when in manual mode but not in any of the other flight modes. I had eventually found a line in the code which had indicated that the flight mode was designated by the magnitude of the servo rotation value indicated on the transmitter. My problem was a result of the manual mode switch position being too close to the minimum manual mode switch position value indicated in the code. I was able to increase the switch's magnitude to 140%, well above the minimum value of 37% indicated in the code. The servo jitter problem had not occurred since. 

Today I had visited a local flying field to test the EasyStar in both the Manual and Stabilization modes. In order to simulate the weight of the SD4000 digital camera 165 grams of washers were mounted inside the EasyStar’s fuselage where the digital camera will eventually be placed. The first flight was in manual mode to insure that the CG was located in the correct position and make sure that all the trims were correctly positioned. After making a few adjustments I had switched it over to stabilization mode to see how the plane would respond. Everything had seemed to be in working order. When I had tilted the plane sharply on its side and quickly let go of the stick the plane would correct its orientation and continue on a level flight path. The same would result if the pitch was changed abruptly. Due to a low laptop battery I was unable to optimize the PID gain values or test any of the other flight modes. I will continue with the flight tests tomorrow and am going to work on getting the XBees working so I can record the test flights to make sure the GPS is working properly.

In order to help with calibrating the gain values in the field I had organized the information presented on the DIY Drones website into an easy to follow field guide which is attached as a word document.

Setting PID gain values.docx (15.21 kb)

Dec 02 2010

ArduPilot Fixed Once Again

Just prior to Thanksgiving break the ArduPilot board had stopped powering on once again. I had spent this past week troubleshooting the board and had found that another one of the imbedded wires had become disconnected. Unlike the last time this had happened, this wire appeared to have be charred indicating that the board had shorted out while I was working on it. After double checking the polarity of the cables and reviewing the diagrams on DIY drones I was unable to find and connection errors. I was able to fix the board by using yet another jumper cable to complete the circuit. The image below shows the location of the two jumper wires that are currently attached to the board (indicated by white lines). Once again, the ArduPilot powered up and had shown no signs of further damage. It wasn’t until later on in the week that I had noticed that the desk I  had been working on had collected a large amount of solder globs and loose wires. This had led me to believe that while I was working on the ArduPilot I had placed in on top of a loose wires or A solder glob, causing the board to short out. Yet another reason to keep your soldering area clean.    

Nov 05 2010

Finalized ArduPilot Parts List

Last Friday the Ecosynth Team had placed an order at Tower Hobbies for an almost ready to fly(ARF) EasyStar. Although it has not yet arrived this progress had encouraged me to finalize the complete parts list for the EasyStar project. Over the past few weeks the ArduPilot Shield V2 had been listed as being out of stock on the SparkFun Electronics website. Because of this I have been holding off on creating this list until it was confirmed that this component wasn’t in the process of being replaced by an newer version. As of 11/3/2010, all of the required components are in stock, each of which is listed below.

  1.          Component                   Price/unit
  2. ArduPilot                               24.95
  3. ArduIMU+ V2.                        99.90
  4. ArduPilot Shield V2                 57.20
  5. uBlox 5 GPS                           87.90
  6. GPS Adapter                          19.50
  7.   GPS Cable                            1.95
  8.   Break Away Headers               2.50
  9.   Programming Cable                17.95
  10.   Servo Extension Cable(x4)       1.50
  11.   Air Xbee4                              2.95
  12.   Air Xbee Adapter                    10.00
  13.   Air Xbee Jumper Wires            3.95
  14.   Ground Xbee                          44.95
  15.   Ground Xbee antenna              7.95
  16.   Ground Xbee Adapter Board      24.95

The total cost comes to $452.60, not including the EasyStar, radio gear or battery pack. Although the Xbees aren’t required for autonomous flight they make revising and uploading waypoints in the field more convenient as well as relay live updates to a nearby field computer. For the initial test flights I plan on using a 11.1, 2300 mAh lipo battery which will eventually be upgraded to a higher capacity battery in order to achieve a total flight time of 15 minutes.

Once the EasyStar arrives I will begin to modify the frame and install the brushless motor and ESC. An order for the ArduPilot components will hopefully be placed within the next few days. I have already downloaded the Arduino Program Editor and had started to modify the code such that it will be compatible with all of the above components. I have already spent a significant amount of time reviewing the code and trying to understand what the program is doing and the methodology behind its operation. The majority of my focus has been on the IMU sensor and the process by which it records measured data and transforms it into values that define the plane’s attitude with respect to the earth. Bill Premmerlani had posted a tutorial on the mathematical operations involved in this procedure here.

I had previously mentioned the possibility of integrating a self-deploying parachute into the EasyStar’s fuselage which would enable the plane to land autonomously in small fields. I had recently come across RocketChutes.com, a website that sells inexpensive model rocket parachutes ranging in size from 12’’ to 48’’  in diameter. A chart on RocketChutes.com indicates that their largest parachute (48’’) would be ideal for 48-64oz rockets; well above the weight capacity that would be required for a fully loaded EasyStar. Once this platform is able to fly autonomously I will continue to look into alternative features such as this.

Oct 16 2010

ArduPilot Flight Modes

Over the past two weeks I’ve been trying to determine what the ArduPilot system is actually capable of. In order to insure the success of this autonomous UAV project, it’s critical that we find a Autopilot system which can support all of the features mentioned in the Autonomous EasyStar post. For more information concerning the ArduPilot system visit the ArduPilot online manual. provided by DIY Drones.

Although the ArduPilot will primarily be used for its autonomous flight capabilities, it also supports a  variety of other flight modes which are described below. Only three of the following modes can be programmed to the AdruPilot at a time and a three way toggle switch on the transmitter is used to activate one of these three modes.

Manual Mode: Yup, its exactly what it sounds like. This mode enables the user to operate the plane manually without any help form the ArduPilot. This mode would mostly be used for takeoffs, landings and positioning the plane at its starting location.

Stabilize: Similar to manual mode, only the ArduPilot will process its kinematics to help the user fly the plane. If the user find him/herself in trouble then all that he/she must do is release the control sticks while the plane levels itself into stable flight. For this mode the airspeed must still be controlled manually.

Fly By Wire A: This is a slightly more autonomous version of “Stabilize” mode in which the airspeed, stability and altitude are controlled by the ArduPilot, all the user has to do is point the control sticks in the direction they want the plane to go and it’ll figure out a way to get there. The altitude will remain at the height the plane is when this mode is activated. In order for this mode to work properly the user must designate a value for maximum pitch, yaw and roll angle in the open source code.

Fly By Wire B: This mode is similar to Fly By Wire A, only the airspeed is controlled manually while the altitude and stability are controlled by the ArduPilot. Again, the altitude is held at the height this mode is activated.

Auto: Fully autonomous GPS waypoint navigation. AdruPilot takes complete control but the user can still “nudge” the plane to help it maintain its course if needed. 3D GPS waypoints are uploaded via the waypoint editor prior to the flight. This mode would most likely be used as the primary mode when performing image acquisition flights. 

RTL: The airplane will return to its launch position and circle above until manual control is re-established. Like the Auto mode, the airplane can still be “nudged” manually. The return to home circling radius can be preset in the main code file.

Loiter: The plane will circle around the position at which this flight mode is initiated. You can also “nudge” the airplane in this mode as well. This feature would be used to distract the plane while groundwork is being done, serving as a “second set of hands” when scanning an area by yourself. If this mode is activated near the ground station then new waypoints could be uploaded wirelessly using the optional Xbees. The radius of the holding pattern can be adjusted in the open source code.

When flying with Xbees a laptop can be used to run LabView, a ground station software which displays the plane’s altitude, airspeed, roll angle, bearing, navigation data and battery voltage. In addition, LabView will log the flight information in both a data log file and kml log file. The data log file stores navigation and altitude information while the kml file contains flight path and waypoint information that can later be viewed in Google Earth. The flight path can also be viewed in real time via Google Earth. 

Within the next two weeks the parts list for this project will be finalized and the respective components ordered. The majority of the work for this project will be done over the winter, when image scans are not our teams first priority. Until then, the Ecosynth Team will continue to be preoccupied with maintaining the hexakopters, performing image captures and analyzing the resulting data and point cloud structures.    

Sep 30 2010

Autonomous EasyStar (Oh the Possibilities)

Although the Hexakopter has been performing flawlessly over the past few weeks, knock on wood; the Ecosynth team is still searching for a less expensive alternative for gathering aerial photographs. As of now, the only way to do this consistently and reliably is through the use of autonomous technology. Throughout this semester I have decided to convert the EasyStar platform into an inexpensive yet fully autonomous airplane.

One of the most significant advantages of this platform will be its ability to fly long distances without having any range limitations. This feature will enable us to fly an entire site without having to plan multiple flight patterns or plan around the “home” position of the aircraft. In addition to this, the open source code will enable us to adjust the flight characteristics and create subroutines of our own that will enhance the airplane’s usability and effectiveness. 

The primary objectives for this project are as follows:

  1. -  Create an autonomous airplane for under $400 (US)
  2. -  Capable of carrying a standard digital camera
  3. -  Utilize GPS technology to allow for multiple 3D waypoint navigation
  4. -  Maintain safe and stable autonomous flights in winds up to 10mph
  5. -  Provide continuous flight for approximately 15 minutes
  6. -  Relay the planes geographic position, altitude and airspeed to a field computer
  7. -  Return to home on request and sustain a holding pattern


If I somehow manage to complete all of the primary objectives with time to spare then I will begin to work on the slightly more interesting secondary objectives:

  • -  Ability to take off and land autonomously in large fields 
  • -  Autonomous parachute deployment at a specified position and altitude to assist with landing in small fields
  • -  Use IR sensors to provide obstacle avoidance capabilities
  • Over the past week I’ve been researching the various autopilot systems available online. One of the most promising options is the ArduPilot from DIY Drones. The main advantage of this system is its use of open source code which can be modified to accommodate any airplane with three or more channels. The ArduPilot is also capable of controlling additional channels to support optional tasks, such as parachute deployment. In addition, the ArduPilot is capable of performing 3D waypoint navigation and two-way telemetry data transfer via the optional XBee modules. DIY Drones provides a free point and click style mission planner that enables users to easily create and upload 3D waypoints to the airplane (as illustrated in the figure above). The components required to use the ArduPilot include the following: 
  • ArduPilot Board                                24.95
  • Shield V2 kit w/ Airspeed Sensor       57.20
  • Breakaway header                              2.50
  • U-Blox5 GPS                                   87.90
  • U-Blox Adapter                                19.50
  • U-Blox Cable                                   1.95
  • X, Y and Z Sensors                           99.90
  • Female-to-female RC cables (x4)       1.50 per
  • The parts required for wireless telemetry are as follows:
  • Air XBee                                            42.95
  • Ground XBee                                      44.95
  • XBee Antenna                                  7.95
  • Adafruit adapter board                      10.00
  • XBee Explorer USB                          24.95

The total cost of the ArduPilot system, without wireless telemetry; is around $299.90 (US). The wireless telemetry brings the total cost to $430.70. Throughout the upcoming week I will continue to look for ways of reducing the cost of this system. If we decide to use the ground XBee, XBee Explorer USB and XBee Antenna included with the Hexakopter then the total cost could be reduced to $352.85, which is still a significant investment.

The EasyStar itself is a relatively inexpensive plane; an almost ready to fly (ARF) version can be purchased for around $120. Our prior experience with the EasyStar has led us to believe that the stock motor and ESC should be upgraded to a 400 speed brushless in-runner motor and brushless 25A ESC. In addition to this, the tail rudder should be extended by 1.5 in. to allow for a tighter turning radius. Over the next few weeks I’ll be creating a page which will contain all of the modifications made to our EasyStar as well as their overall effectiveness.

You can download the Arduino software here and the waypoint configuration tool here, both of which are free. The latest version of the autopilot code can be found here. I will be sure to post more blogs about the ArduPilot system as I continue to familiarize myself with its tools and capabilities.