Posted by Brian Wolfe on February 12, 2010 at 12:30am
I'm slowly getting some web pages put up to document the PICPilot development. Since I had just built up another AXN Floater Easy Star clone I thought I would start with that for those considering it as a possible UAV platform. Take a look here if your interested:
Well my back ordered parts finally came in so I built up my last three PicPilot boards. I plan on keeping one of them so I'll have two to play around with. One is in my Tri Rotor and the other will be installed in the Easy Star clone I just received. Of the remaining two, I have one potentially sold leaving one up for grabs. If your interested the cost is $375.Thanks,Brian
Read more…T3
AXN FloaterNot sure if any of you have seen this, but there's a decent looking easy star clone for what appears to be a pretty good price. Here is a review.The shipping will be a little steep at about $35-$40, but considering it comes with a brushless motor, speed controller and servos for elevator, ruder and ailerons the price isn't half bad.I'm looking for a airplane test bed for the PicPilot so maybe I'll order one up and be the Guinea Pig on this one.Brian
Read more…T3
Well I completely removed the stock Y-UFO electronics (except for speed controllers of course) and am now doing all the mixing and stabilization with the PicPilot. Here is a pic of the install.It's been too windy to fly outdoors so I've been doing what testing I can inside. I have a little instability at the moment. The Y-UFO will begin to oscillate in sort of a circular motion reminiscent of a coin being dropped on a table. I'll try to put up a video soon. Part of the problem might be ground effect as I'm only about 6 inches off the ground, but I'm looking closely at all the sensor data to see if everything looks as it should. I thought I'd share one of the plots that demonstrate the filtering effect of the DCM. This plot compares the unfiltered Y acceleration data with the seventh element in the DCM Matrix. Both terms essentially represent the sin of the roll angle.The plot represent me holding the Y-UFO lightly and rolling it approx. 20 degrees one way then 20 degrees the other. This plot shows one of the advantages of using gyros. If you attempted to filter the Accelerometer data to be as clean as the DCM data you would introduce considerable delay or lag to the signal. This lag would then limit how fast of a perturbation the stabilization loop would be able to remove. Since the DCM is integrating the rates instead of position (essentially what the accelerometers are giving you by virtue of the gravity vector) the noise is reduced by the magnitude of the sample freq. Before the rate has time to integrate to a significant position, it reverses polarity and begins to cancel itself out. Of course huge amounts of rate noise or extremely slow sample times would start to be an issue. For slow lumbering airframes the accelerometers by themselves would probably be fine, for faster airframes not so much so.During this test I start out with the three motors turned off. When I began to throttle up that's when most of the noise showed up in the accelerometers (and the gyros, but because of the above mentioned filtering effect the noise is not apparent in the DCM data.). All indications are the noise is simply vibration from the three motors, but I'm looking closely at the data to make sure it's not EMI/ power supply noise.One thing worth noting is this level of noise/vibration is not having an adverse effect on the ST LISY300AL gyro I'm using for the Z axis rate sensor ( the other two axis are covered by an IDG 500 which was not expected to have vibration issues). I do have the PicPilot isolated through three layers of foam tape. Maybe that's enough to mechanically filter out the higher frequencies that will give the LISY300AL problems.Let me know if your interested in seeing more plots such as this from time to time or if I'm just filling up the server with useless data. It takes a few minutes for me to format things for posting, but I don't mind if others find it useful, and there's always a chance that someone will have an observation that helps me get over the next hurdle or problem I'm struggling with as well.Brian
Read more…T3
Well at least for a couple minutes and six inches off the ground. Read on!First a little about the platform. I decided to start out on my Y-UFO since it was built up and ready to go. This is a fun little Tri-Rotor that has about a 10 -12 min run time and can easily lift my autopilot plus a small camera. It has built in rate stabilization for all three axis and a mixing function to drive the three motors appropriately for Roll, Pitch, Yaw and throttle commands (ie no computer radio needed). The stabilization works, but falls short of Cat's Meow status.I decided to start out small and take over Yaw stabilization with the PicPilot and add Heading hold at the same time, leaving the Y-UFOs built in electronics to handle Roll and Pitch Stabilization and mixing. In this mode, the Yaw stick on the transmitter changes a Heading Command variable. The heading loop then generates a rate command to point the craft at the desired heading. Any deviation from this commanded rate is considered an error and is taken out with the stabilization loop.Not knowing if there would be stability problems, I decided to stay low to the ground almost dragging the skids much of the time. Well things basically work, but I had some signs reversed and needed to tweak some gains. I'm getting heading information from the magnetometers, and there appeared to be some interference from the motors - which is completely expected. The interference didn't appear to be terrible though, causing a 15 to 20 deg heading variation depending on throttle. There was also an occasional high speed "glitch" in the heading most likely coming from the stabilization loop (perhaps gain a little high, or perhaps some vibrations approaching the resonant point of the gyro - I didn't spend much time doing proper mounting of the autopilot as can be seen by the pictures) .My next step was to log a bunch of data during the flight and see if I could tell what was going on in better detail. Unfortunately at that point I hit a setback. My Hitec Eclipse 7 decided to take a dump. It now always reports the battery voltage as 15.5V and either doesn't transmit anything or somewhat random pulse width commands.Despite the setback, I'm happy with progress. I took the hitec apart hoping to find an obvious blackened part I could replace but no luck, so I ordered a new radio. In the meantime while I'm waiting for the radio, I received some magnetic shielding material I ordered so I'll be making a small shield for the motors that hopefully will cut down a bit on the interference. I'll also go ahead and write the mixing and stabilization functions so I can completely bypass the stock electronics in the Y-UFO.Aside form recovering from hernia surgery the past few days, that was my week. I was bested by my 10 year old during a Ninja fight while attempting my patented triple somersault couch hurdle five point palm exploding heart technique. The only thing that exploded was my gut.Thanks for looking,Brian
Read more…T3
I got the Radio Interface running today and am talking thru the XBee radio to the Ardupilot ground station. I'm not sending all the data yet, but most of it. That's my house down there!That just leaves the SD card as the last bit of hardware to validate. I'll probably wait a bit on that and focus on getting the magnetometer integrated with the attitude estimator. Then I think I'll put it on an RC car and tool around to collect some data. I need to start thinking about what plane/helicopter to put it on first so I can start down the stabilization/navigation path.Power Supplies - workingProcessor - working12 bit AD - workingGyros - workingAccelerometers - workingAirspeed Sensor - workingUSB - workingAltitude Sensor - workingMagnetometer - workingGPS Interface - workingRF Interface - workingCurrent Monitor - workingVoltage Monitor - workingSD Card - Not DoneServo Outputs - workingPWM In - working
Read more…T3
Got the Altitude sensor working (BMP085). This graph shows the responds from holding the autopilot near the roof then lowering it to the floor, then back again. All in all about 8 ft. A little noisy, but not too bad. I haven't attempted any filtering of the data yet.This graph shows the accelerometer data as I hand held it and did several rotations about the roll and pitch axis.This plot shows the noise floor of the IDG500 and LISY300AL. The LISY300 is a little quieter, but not by a whole lot. For the most part I'm happy with the performance of the IDG500. Check out the video of the Attitude Estimator if you haven't already.I also got the PWM inputs done for measuring the pulses from the RC Receiver. Here is a quick rundown of status.Power Supplies - workingProcessor - working12 bit AD - workingGyros - workingAccelerometers - workingAirspeed Sensor - workingUSB - workingAltitude Sensor - workingMagnetometer - workingGPS Interface - workingRF Interface - Not DoneCurrent Monitor - workingVoltage Monitor - workingSD Card - Not DoneServo Outputs - workingPWM In - workingI'll get the RF Interface running tomorrow and start sending messages to the ArduPilot ground station. After that I need to finish up on processing the magnetometer to give a heading for removing drift in the Yaw axis of the Attitude Estimator, then it's time to start looking for an airframe to install the autopilot in and begin the stabilization process.Regards,Brian
Read more…T3
UPDATE!! Got the Servo Outputs running today. They offer 15 bits of precision and are synchronized to the guidance/control functions to minimize latency in the control loop. Also got the Magnetometer running and am talking to the GPS receiverUPDATE #2: May 24 2009: Just got Current Voltage and Temperature Monitoring done. Also have the Attitude Estimation Running. Check it out.Pic32 Autopilot Attitude Estimation.Received my boards from the board house Friday and began building and testing. Power supplies went on first and seem to work fine - clean outputs and efficient. Next went on the processor. I wrote some preliminary code to toggle one of the LEDs and all seemed to work fine. Next I went ahead and mounted everything else and began writing code to grab all the sensor data. I also got the USB port working so I could feed the data to a PC for viewing. Here is the status.Power Supplies - workingProcessor - working12 bit AD - workingGyros - workingAccelerometers - workingAirspeed Sensor - workingUSB - workingAltitude Sensor - Not DoneMagnetometer - workingGPS Interface - workingRF Interface - Not DoneCurrent Monitor - workingVoltage Monitor - workingSD Card - Not DoneServo Outputs - workingPWM In - Not DoneAs you can see there is a bit more hardware to checkout, but it should go pretty fast. I have set up the core timing and am sampling the sensors at 100 Hz via a 5KHz state machine. Right now it's taking 1.5% of the processor throughput to sample gyros, accels and airspeed. I'm estimating 2 to 2.5% when I'm done. That should leave plenty of throughput for guidance/control and communications functions.A very preliminary look at the IDG500 gyros indicates about 0.24 deg/sec noise PtoP (about 0.1 RMS) and .3 deg/sec bias drift after 1 hour. This testing will be ongoing particularly after I have all the acquisition code done.I want to finish getting the hardware validated and to let people know I have 4 un-stuffed boards if anyone is interested. Be warned though - surface mount assembly experience is necessary. Just take a look at the magnetometer and gyros! I might be willing to mount some of the parts for people. Cost will depend on what you want mounted.Let me know what you think!RegardsBrian
Read more…T3
I should have boards in about a week and a half. I'll order up parts tomorrow.Here's a pic of the top side and the parts list.UPDATE: I added a link to the updated schematic. The main changes to the original are adding an altimeter and airspeed sensor and switching from the Freescale MMA7260 Tri axis accelerometer to the Bosch BMA145. The Bosch is lower cost while having better noise and accuracy specs.BrianPic32 Auto Pilot Parts List.xlspic32_autopilot_schematic.pdfRead more…T3
It seems everyone and their mother has an autopilot board they're working on so I thought I would join the bandwagon. I've actually been wanting to develop one for quite some time, but after seeing Bill and Paul's progress on their DCM estimation work I got inspired to get started now.There are several good autopilot boards available for experimentation, but none that had the feature set I was looking for. I wanted something versatile enough to be used in several controller/data logging applications including those involving RC cars/boats/copters/planes as well as high altitude ballooning and rocketry. With this versatility comes a little more complexity, so this might not be the board for someone just starting out, but for others I hope it will be a good platform to work with.Here are a few specs/features.Pic32 based -> An inexpensive chip ($8 or less) with respectable horsepower (32 bit 120 DMIPS) and free development tools. An inexpensive programmer can be had from Sparkfun and others.Micro SD Card based Data logging-> Lots for storage for logging every aspect of your flight. Can also be used to read way points or other mission data.USB Interface -> Useful for uploading/downloading mission data, payload control and as a bootloader for program updates.Real Time Clock -> Time tag logged data or perform time based mission functions.5 PWM Inputs and 5 PWM Outputs -> Interface to existing RC Rx outputs and drive up to 5 standard RC servos.On Board 3 Axis Accelerometer -> 12 bit resolution + Software control of sensitivity (1.5G, 2G, 4G, 6G).On Board 3 Axis Gyro-> 12 bit resolution + Software control of sensitivity (110 deg/sec or 500 deg/sec). family of pin compatible gyros from 67deg/sec to 2000 deg/sec.On Board 3 Axis Magnetometer.GPS Interface -> UART based interface with option of 5V or 3.3V power.Radio Modem Interface -> UART based interface with option of 5V or 3.3V power.Battery Voltage and Current Monitoring. Up to 24 Volts and 50 Amps.On Board 3.3V and 5V regulation -> Plenty of current capability to handle heavy servo loads and RF Modem power requirements.Lots of digital and analog IO -> IR and Sonar based range finder interfaces. Airspeed and Altitude interface. I2C, 8 bit data bus + discrete digital IO.This design will be completely open source, and below you will find a link to the preliminary schematic. I will start on the layout next and hope to have it completed and ready to send in for fabrication on May 4. I look forward to comments/suggestion on the schematic. Also if anyone is interested in getting one of the prototype PC boards when I have them made please let me know. Bare in mind however that this is a prototype and I can make no guarantees that there won't be some boo boos. The parts are small and surface mount, so if your not an experienced assembler you might want to take this into consideration.Although not always the cheapest, I have always had good luck with Advanced Circuits for PC Board fabrication. The cost for 1 week turnaround is $66.00 per board (4 layers) +shipping.I'll post a complete parts list in a week or so when I finish the layout.Software development will follow. I plan on quickly implementing a shell to handle all the timing and IO interfaces, followed by a gradual implementation of the various controller tasks hopefully with community support.Looking forward to comments.Regards,Brianpic32_autopilot_schematic.pdfRead more…