So once again stayed up until 7am to watch the balloon launch and once again the weather scrubbed it. This time it was low clouds....Continue Reading
Vesta moved quite a bit in the last 24 hours. The question is, would 2 hours of photographs show enough movement? Today had high clouds and low clouds blurring the image. Low clouds will persist until mid-June when we shift back to high clouds.
The LiPo's have gotten unbalanced enough that the Astro Blinky isn't doing the job anymore. Anything faster than a 10 hour charge causes them to exceed 4.2V while the Blinker blinks away. There is value in a custom charger. The problem is how to test it.
Requirements:
- 1-6 cell support with automatic detection of the number of cells.
- Momentary pushbutton to start and stop charging.
- Charges through the balancing receptacle.
- Disabled if reverse polarity detected.
- Independant voltage readings for each cell.
- Provides minimum current until all cells are over 3.7.
- Provides user selected current if all cells are over 3.7.
- If cells are unbalanced, only the weakest cell is charged until all
cells are within limits.
- If cells are balanced, all cells are charged until all cells are 4.2.
- Once charging finishes, cells that drop below 4.2 are topped off using minimum current.
- LED's for each cell show status: flashing if charging, solid if done.
- Total cost < $50
Implementation notes:
- 1 * LM317 current regulator for each cell
- H bridges to allow individual cells to be charged
- PWM to switch current
- Apply current for 29s to charge batteries, stop charging for 1s to measure battery voltage
- Ground lowest cell when not charging.
Meanwhile, stepped up the IMU rate again and enabled compiler optimization. Using 33% CPU, she now does 5 IMU updates for every compass update. The IMU sample rate is 172Hz and the Kalman rate is still 31Hz because this is locked to the compass rate and the servos only respond at 20Hz.
Well, we've tried many different techniques but nothing seems to be holding attitude enough. A derivative 4x bigger than the proportional term actually kept her within 10ft of the target position, but she was pitching 45' each way.
It's a good time to focus on astrophotography now.
Requirements:
- 1-6 cell support with automatic detection of the number of cells.
- Momentary pushbutton to start and stop charging.
- Charges through the balancing receptacle.
- Disabled if reverse polarity detected.
- Independant voltage readings for each cell.
- Provides minimum current until all cells are over 3.7.
- Provides user selected current if all cells are over 3.7.
- If cells are unbalanced, only the weakest cell is charged until all
cells are within limits.
- If cells are balanced, all cells are charged until all cells are 4.2.
- Once charging finishes, cells that drop below 4.2 are topped off using minimum current.
- LED's for each cell show status: flashing if charging, solid if done.
- Total cost < $50
Implementation notes:
- 1 * LM317 current regulator for each cell
- H bridges to allow individual cells to be charged
- PWM to switch current
- Apply current for 29s to charge batteries, stop charging for 1s to measure battery voltage
- Ground lowest cell when not charging.
Meanwhile, stepped up the IMU rate again and enabled compiler optimization. Using 33% CPU, she now does 5 IMU updates for every compass update. The IMU sample rate is 172Hz and the Kalman rate is still 31Hz because this is locked to the compass rate and the servos only respond at 20Hz.
Well, we've tried many different techniques but nothing seems to be holding attitude enough. A derivative 4x bigger than the proportional term actually kept her within 10ft of the target position, but she was pitching 45' each way.
It's a good time to focus on astrophotography now.
So after feedback based on tilt rate fell over disasterously, went back to instantaneous tilt feedback. The latest trick was to use really big derivative feedback and really small proportional feedback to try to compensate for the slow Kalman filter. That didn't work initially.
Next, decided to focus on pitch and keep roll under manual control. This was long avoided for fear of Jack Crossfire being unable to focus on roll without trimming pitch. Fortunately, such fears were needless.
Pitch+throttle+yaw automation with the big derivative was a huge improvement. Altitude & pitch were stable enough to assuage any temptation to control pitch. She didn't have much pitch authority. A click of the trim tab still overwhelmed the pitch feedback.
To prove the automation was doing something, tried manual roll with no pitch control of any kind. That caused extreme pitch oscillations, showing the pitch automation was probably doing something. Unfortunately, yaw & altitude were also not under any control, so it wasn't a perfect test.
Previously we used the same constants for roll & pitch feedback. Roll may now need far smaller constants or it may have bad data.
Next, decided to focus on pitch and keep roll under manual control. This was long avoided for fear of Jack Crossfire being unable to focus on roll without trimming pitch. Fortunately, such fears were needless.
Pitch+throttle+yaw automation with the big derivative was a huge improvement. Altitude & pitch were stable enough to assuage any temptation to control pitch. She didn't have much pitch authority. A click of the trim tab still overwhelmed the pitch feedback.
To prove the automation was doing something, tried manual roll with no pitch control of any kind. That caused extreme pitch oscillations, showing the pitch automation was probably doing something. Unfortunately, yaw & altitude were also not under any control, so it wasn't a perfect test.
Previously we used the same constants for roll & pitch feedback. Roll may now need far smaller constants or it may have bad data.
After trying to jump to position hold and getting disasterous results, decided nothing can really happen until attitude hold is more stable. The strategy now is to attack tilt rate instead of absolute tilt. We have the first movie of automated cyclic response to tilt rate. At least for nose up and right bank, it seems more like what a human pilot would do. Nose down and left bank don't seem to work as well.
Lost the PIC bootloader again, even after updating the solder joints. Fortunately, the PIC hardware has been flawless for weeks.
| Cyclic response (1 min 21 sec) |
Lost the PIC bootloader again, even after updating the solder joints. Fortunately, the PIC hardware has been flawless for weeks.
-
Views: 218
Every year they have some kind of junk show in Rain Ramon, complete with a band with no audience. -
Views: 161
The premise is to support the losing team in Iraque and sure enough, no-one comes. -
Views: 170
Nobody likes losers, even when they're the home team. -
Views: 175
No-one goes to baseball games to watch both teams lose either. -
Views: 177
-
Views: 190
With some new Heroine2200 sleaves, the Brother HL2040 proves how much it really does suck. It can't even print black & white. -
Views: 200
It's such a horrible printer, it's almost American. -
Views: 203
Heroine 2200 is going to be a lighter shade, with HL2040 printouts.
So with the IMU now bolted to the fuselage, vibration is definitely worse than the skid mounted IMU but miraculously the Kalman seems more stable and more accurate with it.
The common technique in testing attitude hold is to fix the heading to 0 so you don't have to worry about body frame conversions. What always happens with that is a pitch up, gimbal lock, and autopilot terrorism.
With the strap-on IMU, we had record attitude + altitude + velocity holds up to 88 seconds. Yet another incremental improvement but still showing unstable tilt oscillation and high velocities. The flight data shows the strap-on IMU with high sample rates to be just as slow at producing equivalent accuracy as the skid mounted IMU with low sample rates.
Instead of averaging more samples on the PIC, we're using a smaller DT/integration step in the Kalman filter with the higher sample rate. That and the fuselage mounting seems to be the magic touch.
So with the weather and the lack of open space, 1 test flight per day is the most that we can pull off even without a day job. With the amount of data generated by these flights and the preparation for each flight, 1 flight per day is probably the best in any circumstance....Continue Reading
The common technique in testing attitude hold is to fix the heading to 0 so you don't have to worry about body frame conversions. What always happens with that is a pitch up, gimbal lock, and autopilot terrorism.
With the strap-on IMU, we had record attitude + altitude + velocity holds up to 88 seconds. Yet another incremental improvement but still showing unstable tilt oscillation and high velocities. The flight data shows the strap-on IMU with high sample rates to be just as slow at producing equivalent accuracy as the skid mounted IMU with low sample rates.
Instead of averaging more samples on the PIC, we're using a smaller DT/integration step in the Kalman filter with the higher sample rate. That and the fuselage mounting seems to be the magic touch.
So with the weather and the lack of open space, 1 test flight per day is the most that we can pull off even without a day job. With the amount of data generated by these flights and the preparation for each flight, 1 flight per day is probably the best in any circumstance....Continue Reading
Death of an IMU
Today we learned the Kalman filter expects really small accerometer values on the order of 0.1. Still more tweeks to the accel & gyro scale factors got the filter a bit more stable. The trick is to rerun the filter on a flight recording with explosions until it stops exploding.
Looks like the gyro values need to agree reasonably closely with changes in tilt detected by the accels and that means every change to the accel constants changes the gyro constants.
Managed to step up the MEMS rate to 1.5x that of the magnetometer. That seemed to be the limit for stability. Though stable, the filter showed too much noise. The Corona skids act like springs, amplifying vibrations for the MEMS. Mounting the MEMS on a more stable part like the tail boom is the only solution.
With the updated filter rate, Jack Crossfire let her fly autonomously for a record 47s before oscillations got severe enough, and that was the end of skid mounted MEMS.
Looks like the gyro values need to agree reasonably closely with changes in tilt detected by the accels and that means every change to the accel constants changes the gyro constants.
Managed to step up the MEMS rate to 1.5x that of the magnetometer. That seemed to be the limit for stability. Though stable, the filter showed too much noise. The Corona skids act like springs, amplifying vibrations for the MEMS. Mounting the MEMS on a more stable part like the tail boom is the only solution.
With the updated filter rate, Jack Crossfire let her fly autonomously for a record 47s before oscillations got severe enough, and that was the end of skid mounted MEMS.
Autonomous hover is ever so slowly improving in the lightest winds possible. Velocity error is converting to tilt offsets. She's clearly adjusting tilt based on velocity but not nearly fast enough. Still no position error converting to target velocity, so she slides quite a distance down the field.
A bigger problem was altitude hold not doing so well, causing her to descend towards the trees in every autopilot test.
Also, the INS loop now resets when it detects a NaN from a filter explosion, with respective flashing of the status LED.
A bigger problem was altitude hold not doing so well, causing her to descend towards the trees in every autopilot test.
Also, the INS loop now resets when it detects a NaN from a filter explosion, with respective flashing of the status LED.
-
Views: 169
Got some shots of a starving, huddled, weary American through a window screen. -
Views: 146
These guys are a disgrace to poverty. -
Views: 117
-
Views: 128
-
Views: 122
-
Views: 159
Today Vicacopter finally got this jewel, a status LED for the Kalman filter. It's off before initialization, flashes for calibration state, and is solid when the filter is ready. Too bad it can't detect loss of sensor data. -
Views: 134
All these indicator lights for GPS & Kalman filter have her looking like a flashing XMas tree and there's a nasty nest of wires too.
Cyclic automation is moving forward ever so slightly. With perfect trimming and a very carefully placed manual start point, she can briefly hold attitude in 5mph wind. The mane problem is in a fixed attitude, she always translates in 1 direction.
We know attitude hold is working because the translation direction can be changed by changing the starting point. The translation causes tilt to increase beyond limits. She needs 2 dynamically change the attitude target to keep translation under a limit.
There lies the problem. the delay in INS output is so long, she doesn't know the current velocity until it's too late. Unfortunately the weather, magnetometer failures, and continued Kalman instability are keeping progress at a standstill. Rain Ramon is lucky to get 1 hour of calm winds at 11pm. This most severe wind lasts from March-June and again from August-December.
We know attitude hold is working because the translation direction can be changed by changing the starting point. The translation causes tilt to increase beyond limits. She needs 2 dynamically change the attitude target to keep translation under a limit.
There lies the problem. the delay in INS output is so long, she doesn't know the current velocity until it's too late. Unfortunately the weather, magnetometer failures, and continued Kalman instability are keeping progress at a standstill. Rain Ramon is lucky to get 1 hour of calm winds at 11pm. This most severe wind lasts from March-June and again from August-December.
-
Views: 253
The PIC has been so unreliable and fragile, have $40 of reinforcements. What they lose in free samples, Microchip cleans your clock with in late models. -
Views: 149
In the interest of better video quality, now have 3 lights for exterior shots. 7A consumed, 300 watts equivalent light output. -
Views: 130
The light fixture was $10, double what it was last year. Fortunately it'll be worth $20 next month.
So with the higher MEMS sampling rate, got filter explosions every time after performing some aggressive flying. Combined with the garbage output when it wasn't exploding, it wasn't worth it. Went back to the 4:5 ratio between MEMS samples and magnetometer samples.
Also found by changing the MEMS scale factors, the jaggies in the Kalman output could be reduced.
With everyone reverted to 5/13, time to disable all cyclic input and see what Vicacopter sees in a cyclic automation test. As expected, she became a mad copter. Disable all control input and she actually does better.
Her autonomous throttle causes yaw feedback. Yaw feedback causes horizontal acceleration from the tail rotor. Horizontal acceleration causes tilt oscillation.
NASA wrote:
> We are looking for observations of the asteroid Vesta (and Ceres).
> However, because they will appear starlike in most single frame images,
> we hope to get images that are somehow combined/ stacked either showing
> the streak of motion or an animation.
Unfortunately Calif* has been under a constant layer of high clouds since 2005. On the clearest night, there is always a faint layer of water vapor of some kind. It's like an early form of Venus.
Also, the Dawn mission is happening during a full moon.
Also found by changing the MEMS scale factors, the jaggies in the Kalman output could be reduced.
With everyone reverted to 5/13, time to disable all cyclic input and see what Vicacopter sees in a cyclic automation test. As expected, she became a mad copter. Disable all control input and she actually does better.
Her autonomous throttle causes yaw feedback. Yaw feedback causes horizontal acceleration from the tail rotor. Horizontal acceleration causes tilt oscillation.
NASA wrote:
> We are looking for observations of the asteroid Vesta (and Ceres).
> However, because they will appear starlike in most single frame images,
> we hope to get images that are somehow combined/ stacked either showing
> the streak of motion or an animation.
Unfortunately Calif* has been under a constant layer of high clouds since 2005. On the clearest night, there is always a faint layer of water vapor of some kind. It's like an early form of Venus.
Also, the Dawn mission is happening during a full moon.
The PIC failed because hours of vibration caused 2 weak solder joints to finally break. The programming header had so many weak solder joints, spent all night repairing them all and fixing other damage.
Proceeding in the belief that higher inertial sampling rates would improve cyclic responses, according to Vicacopter's diagnostic tools, she was getting more magnetometer samples than inertial samples.
Stepped up the analog sampling and the baud rate on the PIC. Now she's doing 3x more inertial samples than mag samples. The CPU is now up to 30% and the Kalman filter down to 31Hz. The compiler is up to -O now. Any optimization beyond -O causes division by zero. Dumping console output slows her down dramatically.
The Kalman now settles by 30 sec. The higher the inertial sampling rate, the greater the influence of the gyros. Scaling up the gyros also increases their influence. Too much gyro influence and the Euler angles overshoot.
Tried stepping up the servo update rate, which in turn slowed down the magnetometer update rate and the radio reception rate to horrific levels. The PIC doesn't have enough horsepower to go any faster.
Unfortunately our goal of averaging variable numbers of samples to keep the CPU at 100% seems impossible. The Kalman filter can't handle the glitches from dynamic averaging.
This higher sampling rate puts out nothing but garbage of course. Finally ordered another $104 of replacement parts to build back the last 5 months of damage.
Proceeding in the belief that higher inertial sampling rates would improve cyclic responses, according to Vicacopter's diagnostic tools, she was getting more magnetometer samples than inertial samples.
Stepped up the analog sampling and the baud rate on the PIC. Now she's doing 3x more inertial samples than mag samples. The CPU is now up to 30% and the Kalman filter down to 31Hz. The compiler is up to -O now. Any optimization beyond -O causes division by zero. Dumping console output slows her down dramatically.
The Kalman now settles by 30 sec. The higher the inertial sampling rate, the greater the influence of the gyros. Scaling up the gyros also increases their influence. Too much gyro influence and the Euler angles overshoot.
Tried stepping up the servo update rate, which in turn slowed down the magnetometer update rate and the radio reception rate to horrific levels. The PIC doesn't have enough horsepower to go any faster.
Unfortunately our goal of averaging variable numbers of samples to keep the CPU at 100% seems impossible. The Kalman filter can't handle the glitches from dynamic averaging.
This higher sampling rate puts out nothing but garbage of course. Finally ordered another $104 of replacement parts to build back the last 5 months of damage.
Did another energy calculation based on charge time. Vicacopter comes in at around 14A, hauling all the avionics and running the Kalman filter. It's equivalent to hauling the HD camera by itself.
Altitude hold department:
Doubled the I component and increased the PD components by 50% to handle normal wind better. There is definitely a correlation between satellite count and stability. Early tests are the least stable because she has only 4 satellites. The last test is the most stable because she has 8 satellites.
In 20mph gusts, a normal day for Rain Ramon but very hard for a copter, she managed to stay in the air. Heading hold is a big problem in these conditions. She swings 90` from gimbal lock with the compass.
The derivative definitely has a huge impact. You can hear her giving throttle pressure followed by checking, just like a human pilot.
Cyclic hold department:
Did some tests to unsuccessfully hold a specific tilt. She could probably do it in a 300 sq mile unobstructed field, but this is U. Know. Where. the most crowded country in the universe.
Flipped the sign for pitch so it would match forward velocity. Now a + pitch is nose down, which causes a + in forward velocity. That did absolutely nothing but make the graphs logical. Other than that, her tilt data has a 1-2 second delay. This causes her to speed horizontally out of control.
One other thing. Recalibrated the gyros to give readings extremely roughly approximated as radians/sec. That seemed to increase the gyro relevance in the final result from 0 to something. Maybe the accels need to be scaled to match the GPS units, too.
Altitude hold department:
Doubled the I component and increased the PD components by 50% to handle normal wind better. There is definitely a correlation between satellite count and stability. Early tests are the least stable because she has only 4 satellites. The last test is the most stable because she has 8 satellites.
In 20mph gusts, a normal day for Rain Ramon but very hard for a copter, she managed to stay in the air. Heading hold is a big problem in these conditions. She swings 90` from gimbal lock with the compass.
The derivative definitely has a huge impact. You can hear her giving throttle pressure followed by checking, just like a human pilot.
Cyclic hold department:
Did some tests to unsuccessfully hold a specific tilt. She could probably do it in a 300 sq mile unobstructed field, but this is U. Know. Where. the most crowded country in the universe.
Flipped the sign for pitch so it would match forward velocity. Now a + pitch is nose down, which causes a + in forward velocity. That did absolutely nothing but make the graphs logical. Other than that, her tilt data has a 1-2 second delay. This causes her to speed horizontally out of control.
One other thing. Recalibrated the gyros to give readings extremely roughly approximated as radians/sec. That seemed to increase the gyro relevance in the final result from 0 to something. Maybe the accels need to be scaled to match the GPS units, too.
Well cyclic automation isn't going so well. As hard as throttle automation was, cyclic automation is even harder. After some control losses, cluelessness about why Vicacopter malfunctioned, went back to doing altitude holds.
She had serious GPS drift and headed way way up. Then the battery died and the battery failsafe kicked in higher than it ever did before. The algorithm was modified to reduce throttle at a much slower rate. Despite this, she fell too fast and performed the most gear stripping ever.
It looks like cyclic automation is going to be a matter of determining the values for a level tilt, targeting those values for tilt, and ever so slightly biasing the level tilt to maintain position.
She had serious GPS drift and headed way way up. Then the battery died and the battery failsafe kicked in higher than it ever did before. The algorithm was modified to reduce throttle at a much slower rate. Despite this, she fell too fast and performed the most gear stripping ever.
It looks like cyclic automation is going to be a matter of determining the values for a level tilt, targeting those values for tilt, and ever so slightly biasing the level tilt to maintain position.
-
Views: 149
Today's autonomous throttle graph -
Views: 114
The latest battery failsafe algorithm reduces throttle more slowly and indeed the voltage went below the minimum. -
Views: 100
Combatting high winds with a more aggressive throttle algorithm, her real opponent was GPS drift. Altitude was within 3m of the target, but the real problem was GPS drifting downward. -
Views: 156
Stripped gear -
Views: 159
-
Views: 172
-
Views: 149
Replaced gear.
The answer is yes. You can generate 110V AC from a LiPo. It's a very expensive and short lived power supply. The point is, we're going to need copious amounts of light to shoot video of Vicacopter's first autonomous operations. It's too windy to shoot in daylight.
The LiPo generates 106V through the inverter. The lead acid only generates 100V. Seems to be a matter of instantaneous current response being better on the LiPo. Unfortunately, it's too expensive.
The LiPo generates 106V through the inverter. The lead acid only generates 100V. Seems to be a matter of instantaneous current response being better on the LiPo. Unfortunately, it's too expensive.
Today we lit up the derivative term of the PID loop and Vicacopter had the best altitude hold ever. This time, there was no ground effect to save her. It was in dead calm winds, but still better than anything achieved in dead calm winds before. Even the mighty Jack Crossfire could never dream of holding such a stable altitude, as seen in the many overhead lighting shots.
Clearly, full PID loops with hand picked constants are the way we're going to do all positioning. The big question is does cyclic require
horizontal position -> target velocity
velocity error -> cyclic deflection
or
horizontal position -> target velocity
velocity error -> target tilt
tilt error -> cyclic deflection
or
horizontal position -> target tilt
tilt error -> cyclic deflection
The hand picked constants follow general rules:
P and D factors are around 0.02 and equal.
I factor is around 0.0001.
The derivative is based on the current sample - the sample 1/2 a second ago.
Output limit is around 0.1
Other limits aren't necessary, but we limit the integral to 0.1 just in case.
This all depends on the sample rate being 35Hz. The derivative is really the rate of change of the Kalman filter climb rate, a very noisy value but effective.
Sonar altimeter may be used as a boundary sensor in case GPS drifts high and Vicacopter comes down to head level. The trick with any sonar altimeter is switching it on only when Vicacopter is in the air. It needs ground clearance to calibrate itself.
Well the PIC stopped accepting any new programs at all. Maybe the code protect bits got flipped on by a static discharge. Maybe its in circuit serial programming BIOS got destroyed. Time to order another salvo of PIC replacements.
Clearly, full PID loops with hand picked constants are the way we're going to do all positioning. The big question is does cyclic require
horizontal position -> target velocity
velocity error -> cyclic deflection
or
horizontal position -> target velocity
velocity error -> target tilt
tilt error -> cyclic deflection
or
horizontal position -> target tilt
tilt error -> cyclic deflection
The hand picked constants follow general rules:
P and D factors are around 0.02 and equal.
I factor is around 0.0001.
The derivative is based on the current sample - the sample 1/2 a second ago.
Output limit is around 0.1
Other limits aren't necessary, but we limit the integral to 0.1 just in case.
This all depends on the sample rate being 35Hz. The derivative is really the rate of change of the Kalman filter climb rate, a very noisy value but effective.
Sonar altimeter may be used as a boundary sensor in case GPS drifts high and Vicacopter comes down to head level. The trick with any sonar altimeter is switching it on only when Vicacopter is in the air. It needs ground clearance to calibrate itself.
Well the PIC stopped accepting any new programs at all. Maybe the code protect bits got flipped on by a static discharge. Maybe its in circuit serial programming BIOS got destroyed. Time to order another salvo of PIC replacements.
-
Views: 160
Clearly once the integral got ahold of the human throttle error, it was a very tight altitude hold. It was mainly weather assisted but undoubtedly improved by the derivative component. -
Views: 153
Here we have the feedback loop for the best 11 minute hover ever. Clearly, every single piece of software was used, from the battery safing to the Kalman filter.
So we're just going to disable throttle automation and focus on the cyclic separately. In 5mph constant wind, Vicacopter did manage to stay above the ground and not too high for 2 separate 3 minute hovers.
The longest flight was 12 minutes in 10mph wind. She hit ground effect several times, but managed to respond correctly until the battery died. Still not using derivative feedback because the derivative is yet more complexity.
Without throttle automation, she went down to ground effect and stayed there. At least the algorithm is doing something.
Notice the throttle feedback increases over time as the battery fades. Feeling confident that GPS guided throttle is near its final form because it resembles the textbook PID loop.
Throttle automation using GPS was such a bad experience, have dreaded cyclic automation. No-one ever plotted GPS altitude so there was no way of knowing how slow and inaccurate it was. A sonar sensor is $30, detects up to 21ft of altitude, needs only 1 digital pin, and looks pretty good now.
The longest flight was 12 minutes in 10mph wind. She hit ground effect several times, but managed to respond correctly until the battery died. Still not using derivative feedback because the derivative is yet more complexity.
Without throttle automation, she went down to ground effect and stayed there. At least the algorithm is doing something.
Notice the throttle feedback increases over time as the battery fades. Feeling confident that GPS guided throttle is near its final form because it resembles the textbook PID loop.
Throttle automation using GPS was such a bad experience, have dreaded cyclic automation. No-one ever plotted GPS altitude so there was no way of knowing how slow and inaccurate it was. A sonar sensor is $30, detects up to 21ft of altitude, needs only 1 digital pin, and looks pretty good now.
-
Views: 162
The altitude graph doesn't look bad since she only deviated 2m in each direction. In reality, ground effect saved her most of the time. -
Views: 113
This graph of feedback shows the integral working beautifully to compensate for battery drain and allow the proportional term to stay within limits.
So we can't use absolute position for any feedback. The algorithm is:
Well, this still caused altitude deviation to grow over time. It's leading to a traditional PID loop based on climb rate, as you can see. Really need a way to automatically deduce the constants..
Decided 2 look inside mind of a lead acid monster. Apparently there's no such thing as a difference between deep cycle batteries and starting batteries. Deep discharge batteries are made on a gradual scale of increased cost for deeper cycles, up to $100 for the deepest cycle version.
Code:
loop 1: climb rate error -> proportional throttle adjustment loop 2: climb rate error -> accumulated throttle adjustment to compensate for battery drain
Decided 2 look inside mind of a lead acid monster. Apparently there's no such thing as a difference between deep cycle batteries and starting batteries. Deep discharge batteries are made on a gradual scale of increased cost for deeper cycles, up to $100 for the deepest cycle version.
-
Views: 139
There's not much between you and the sulfuric acid innards. -
Views: 128
Tip it over long enough and it'll leak. -
Views: 143
Peering under the sulfuric acid, we see 1/32" thick plates wrapped in fabric to catch erosion. -
Views: 135
Can't see the actual plates because of the wrapping. If the erosion leaked out and bridged 2 plates, the battery would explode. -
Views: 123
In this flight, she flew higher and higher with no limit. The proportional and integral parts of a PID loop were being used.
So took the battery empire down to San Jose and managed 3 hours of operations, mostly not flying. Took the lead acid down to 10.7V with full load and drained the copter and laptop batteries to pull of that feat. Don't really care about damaging the lead acid since it was only $20.
The best throttle algorithm is now a proportional feedback based on target climb rates of +0.001 and -0.001, literally the first sign of movement because by the time GPS says anything, she's already gone too far. A second PID loop adds proportional feed back based on absolute elevation. This is the next attempt to compensate for battery drain. A tachometer might improve matters but really a proper altimeter is needed.
Probably going to write ground interfaces in Java, a tough decision because although Java is ubiquitous in the job postings, when was the last time you used a Java application in daily life? The benefit is mostly seemless Windows support.
The ground interface needs to plot flight recordings on graphs and maps. It needs to communicate over a serial port to a transmitter/receiever set. It needs to run the Kalman simulator. Nothing demanding or realtime.
Unfortunately at the end of flight operations, Vicacopter suffered some major flash corruption. The PIC lost its bootloader of course, but the Gumstix burned out its MAX232, a relic of 80's technology. Since this wasn't removable, had no choice but to build another RS232 converter.
The rate of mission ending failures with Vicacopter, 1 every day, is unprecidented. There are so many subsystems, the flying conditions are so harsh, no matter how much preventative maintenance is done, 1 subsystem is guaranteed to fail every day.
The best throttle algorithm is now a proportional feedback based on target climb rates of +0.001 and -0.001, literally the first sign of movement because by the time GPS says anything, she's already gone too far. A second PID loop adds proportional feed back based on absolute elevation. This is the next attempt to compensate for battery drain. A tachometer might improve matters but really a proper altimeter is needed.
Probably going to write ground interfaces in Java, a tough decision because although Java is ubiquitous in the job postings, when was the last time you used a Java application in daily life? The benefit is mostly seemless Windows support.
The ground interface needs to plot flight recordings on graphs and maps. It needs to communicate over a serial port to a transmitter/receiever set. It needs to run the Kalman simulator. Nothing demanding or realtime.
Unfortunately at the end of flight operations, Vicacopter suffered some major flash corruption. The PIC lost its bootloader of course, but the Gumstix burned out its MAX232, a relic of 80's technology. Since this wasn't removable, had no choice but to build another RS232 converter.
The rate of mission ending failures with Vicacopter, 1 every day, is unprecidented. There are so many subsystems, the flying conditions are so harsh, no matter how much preventative maintenance is done, 1 subsystem is guaranteed to fail every day.
-
Views: 205
The battery empire today -
Views: 149
The flight deck -
Views: 179
Breadboarded a new RS232 converter using a MAX233. -
Views: 139
Breadboarded RS232 converter actually handled 115200 baud. -
Views: 152
Another soldering masterpiece. -
Views: 139
Another soldering masterpiece. -
Views: 163
The MAX233 next to the failed MAX232.
So put the Micromag3 on the 3.3V bus, buffered all the inputs, and it seems to be functioning. It is permanently damaged from the 5V operation. All the values now only have 7 bits accuracy.
In today's flight operations, running on the lead acid generator, it became clear that GPS is just too slow to support altitude hold in human terms. It would hold only the nearest billion miles of altitude.
In one rapid descent, the Kalman showed the descent taking 15 seconds. We need a way to preempt it with memorized throttle sequences or implement some extremely small target climb rate, like if climb rate < 0 then descending too fast.
Then of course, the best algorithms use both a high speed PID loop and a low speed PID loop to control throttle. The high speed loop simulates small, fast stick movements to hold a certain altitude. The low speed loop simulates large stick movements from battery drain.
The thought of a pressure sensor or ultrasonic sensor is still too complicated and expensive to bear. GPS is simple but slow....Continue Reading
In today's flight operations, running on the lead acid generator, it became clear that GPS is just too slow to support altitude hold in human terms. It would hold only the nearest billion miles of altitude.
In one rapid descent, the Kalman showed the descent taking 15 seconds. We need a way to preempt it with memorized throttle sequences or implement some extremely small target climb rate, like if climb rate < 0 then descending too fast.
Then of course, the best algorithms use both a high speed PID loop and a low speed PID loop to control throttle. The high speed loop simulates small, fast stick movements to hold a certain altitude. The low speed loop simulates large stick movements from battery drain.
The thought of a pressure sensor or ultrasonic sensor is still too complicated and expensive to bear. GPS is simple but slow....Continue Reading
Well, after hauling 40lbs of lead acid and laptop, had 45 minutes of battery powered empire, with internet access. Could program Vicacopter in the field, instantly fly her, recharge LiPo's, and read email with a seemingly endless power supply. Unfortunately the Micromag3 died. Seems to be a 5V issue. It just stopped sending any data completely.
The lead acid battery isn't as powerful as hoped. With just the laptop, it can probably go 2 hours on a full charge. Charging LiPo's and the laptop, it probably only has 1 hour. The laptop uses around 6A and the charger only 2A.
Given the cost of a deep discharge 100Ah battery and the requirement of a new charger for such a monster, it would be cheaper to buy a more efficient laptop and dedicate the lead acid to charging LiPo's.
The lead acid battery isn't as powerful as hoped. With just the laptop, it can probably go 2 hours on a full charge. Charging LiPo's and the laptop, it probably only has 1 hour. The laptop uses around 6A and the charger only 2A.
Given the cost of a deep discharge 100Ah battery and the requirement of a new charger for such a monster, it would be cheaper to buy a more efficient laptop and dedicate the lead acid to charging LiPo's.
-
Views: 192
Where once there was nothing but America, there is now a battery powered empire. -
Views: 143
How things are hooked up to the lead acid powerplant. -
Views: 138
-
Views: 170
Vicacopter receiving programs by serial port -
Views: 152
Unfortunately, the actual lighting at night is pretty bad. -
Views: 170
Not easy to get the connections right in this lighting.







