Wednesday, August 8, 2018

Converged IoT Platform Near The Edge Of Space

Disclaimer: Please check with the local authority before a flight. This blog is not responsible for adverse effects and damages caused by building and using this platform. This blog is intended for investigating and understanding the performance of extreme robotics for better safety planning.  

After converged platform built from my previous blog, we are ready to tap into the mindset of illicit  pilots/builders.

Gyro Or Rate Mode Pitch Curves

It was discovered that RPM2640 is sufficient for both smooth diving and cruising for both the orange and black Oxy210 blades, 2.7mm and 2.5mm cord thickness (not blade root thickness) respectively. The first two diving videos below show both the orange and black rotor tips, and the third video shows the pre-prototype RPM2640 setup without an RPM governor during the "motor selection" with our pre-prototype builds. However, RPM2640 with 2.5mm blades is prone to forward flight stall as shown at 2:02 and 2:12 of the first video due to the helicopter physics, which tilts the craft's head upward when flying against the wind. RPM2640 caused several flyaways in high winds. 

The design decision, for the gyro and rate modes, enhances safety at the expense of fuel efficiency with RPM3145. We set the hovering pitch to slightly lower than 5 degrees but higher than 4 degrees between the orange and green lift curves so that the lift slope doesn't turn steep, which would have translated to more difficult altitude management. RPM of the new hovering pitch is 19% higher, 3145 versus 2645 of attitude mode. We may refer to these 2 different RPMs as 31 hundred and 26 hundred, respectively, in further discussion for brevity.
According to the NASA education page below on the right, the square of the RPM growth 1.19x1.19=1.42 should require the inverse of this ratio of the collective pitch because the lift is proportional to pitch in the overall trend in the NACA 0015 datasheet.
So the new pitch angle in theory should be 6.2/1.42=4.37 degrees. However, the Reynolds number changes with RPM, shifting from the aqua-colored curve toward orange and green-colored curves, suppressing lift at a sub-6-degree angle but augmenting lift past 6 degrees. So, I experimented hovering to see that collective pitch point needed to be either 22 or 23 points, 22.5 for discussion, 22.5 / 30 x 6.2 degrees = 4.7 degrees of collective pitch. Notice that the mid-throttle is actually scaled by 0.98 in the transmitter and shown as 22.5x0.98 = 22 in the LCD display. But the angle is still 4.7 because the 22 points display refers to the 989-2011us PWM range. The 0.98 scaling sets the PWM signal range 1000-2000 microseconds for 200 points for "83 degrees" as measured as the full servo horn travel angle. 22/200x(2011-989)+1500=1612us is the actual PWM signal. (1612-1500)x50%+1500=1556us is the mixer output toward the servo. (1556-1000)/1000x83=46.15 is the angle from the position where  PWM is 1000us in the servo. 46.15-(83/2.0)=4.7 is the angle from neutral. 
The maximum RPM of the 14-poles motor (7 times as many poles as the simplest 2-pole elementary school motor) is 50,000/7 = 7143, so the hovering point is 200 x 3145 / 7143 = 88. When you listen to the hovering RPM, 3145/60=52.4Hz, you hear 2 octaves higher harmonics multiplied by the 2 blades, 52.4x2x2x2=419.2Hz because this is the octave most people can hum and sing along. This frequency is the Baroque tuning frequency of an A4 music note. The attitude mode hovering sound is conversely an F#4 note. These 2 pitches have the same musical interval the first 2 notes of the Dvorak New World symphony folk tune of the 1800s era, which means that you can validate the power-tran setup in the field just by humming the song and matching it to the tune of the craft switching between the 2 modes.

The collective pitch curve for diving should not be 0 because the helicopter's body provides drag and gives the craft equivalent of elevator-down, as seen in the following video. The free fall from the antenna tip to the church spire, 0:08 to 0:19 is about 200m. The dive started next to the building, but the craft relented its position and drifted behind the building at the bottom of the dive
To improve the dive precision, we will keep the lowest collective pitch at 6 to 7 points x (6.2degrees/30 points)=1.24 to 1.45 degrees to provide compensation, at the same time, using single-rotor helicopter dynamics, converting collective pitch force to craft elevator tilting at high forward speed.

I have experimented with an overall collective curve going from 6 points and increasing by 17 points every quarter of the full throttle range, ending at 57 points,  6.2 x 57 / 30 = 11.8 degrees, as pictured on the right. But the high-end punching has craft yaw lapse, gradually spinning to the left while ascending as seen in the first video of this discussion section. The workaround of increasing the P gain of the tail motor can not completely remedy the problem due to the nearly verticle drag inclination at 11 degrees as seen in the operating note's NASA foil data, forcing me to punch at a 3/4 throttle stick position (from the middle stick position) of 23+(57-23)x3/4 = 48.5 points, 6.2x48.5/30=10 degrees. At the same time, the workaround P gain for the punch is too high for normal flights, producing tail wagging. The final solution is to set the high point of the pitch curve at 47 points, 9.7 degrees, allowing the error margin of the centering swashplate in the operating note's takeoff procedure. So, overall pitch points are 7, 7, 17, 27, 37, and 47 as the final solution.

CG Setting

During the research of alternative camera Insta360 Go, it was discovered that moving CG forward stabilized the diving, as seen in the very first video of this page. 
When using the Runcam Hybrid2, which weighs the same as Insta360 but distributes weight rearward on the recording board and without the 3.5g custom bracket and without the 2-gram Caddx Ant camera, and with the 49-gram, 450mah, battery front close to the battery cavity front edge, the dive swung as shown in videos here. 
The weighing of the alternative components are in the pictures below.
The total torque loss with the Runcam Hybrid2 was 5.4gx6cm+(2g+3.5g)x9cm = 81.9g-cm, which is equivalent of having a 2.7-gram heavier tail motor(significant). 
What's worse is that the tail heavy impairs the level flight pitch holding as shown in the following videos.

For the alternative Runcam Hybrid2, the solution is to modify the 450mah battery with double-sided mounting tape and Velcro, so that the battery protrudes 2-3cm (about 1.5-2.5cm in the horizontal component).

When tested with Runcam Hybrid2, there was no difference between 2cm and 3cm protrusion. The final solution for 10.1-gram Rumbcam Thumb with micro flash card and 1.1-gram nano3 camera and 55.4 gram battery  needs 2cm protrusion. The front-down torque loss is less severe at (18-10.1)*9+(1.1U-bracket+(2.0-1.1nano))*9-(55.4-49)*6=50.7g-cm .

The direct drive tail motor means that a dive will drift to the left if you yaw to the right. In the FPV video above, the dive initially started at 026 latitude at the parking lot and ended at 027 near the tree edges, a 8 metre drift. This means that the yaw rearing is reversed during the dive, and a dive can not be reared to the right.

Dynamic Rotor Balancing For RPM 3150 And Setting

 In build notes, we visually balanced the rotor for lower RPM 2607 to less than 0.03 grams precision, but the high RPM has imbalances not visible to the eyes. The first thing to take care of is the tightness of the rotor grips. For persistency, we set the blade draping angle to 80-90 degrees, as the video on the right shows.  If the blades are over-tightened, imbalance easily results in mechanical vibration. Then the mechanical vibration can be interpreted by PID loops and produce unpredictable flight characteristics. If the blades are too loose, PID loop actions are attenuated, resulting in requiring unpredictable, either larger P or I gain, such as the video on the right, where 40% extra PID gains are used on the cyclic control.

Going from 2600 RPM to 3100 RPM requires fine-tuning the rotor with hand-tethered hovering. Here the test retains the original decal of the blades. And the tuning took 3 tries, as pictured below.

First fixed the trembling by cutting out a corner of a decal. When aggressively trimming the corner, it is over-corrected, and trembling reoccurred. Then balance was restored by cutting the corner of the other decal. Once the amount of taping is determined, all decals are removed, and clear tape is put in place for the required balancing. The balancing progress is the 4 pictured below from the left to the right. The conclusion is that one square centimeter of tape makes all the difference. The thickness of tape 0.002-0.003inch = 0.005-0.0075cm, weight (assuming density 1g/cm-square) 0.005-0.0075 grams. This means RPM3140 needs a precision balance 5 times higher than attitude-accelerometer mode.

However, during multiple test builds, it was discovered that most builds could not achieve smooth balance, and that blade swapping was needed. One of the successful blade pairings was pictured above on the right. It was reasoned that blades often curve unevenly under centrifugal forces after spool-up to 3150RPM, as illustrated in the following diagram.
The swapping is reasoned to restore asymmetrically curved blades. But, wait, there are more problems. The warping of the 2 blades can be different when subjected to 3150 RPM's centrifugal force. The solution is to pick and match a pair that dynamically match the warping to each other. 

The match does not take blade ages into account. In the above example match, the older blade's color fades, but it is the best match picked out from 3 different sets of purchases. And the static warping mismatch is also disregarded. One warps up, and the other warps down, but they balanced up when spun up to 3100 RPM. All the other blades from the 3 sets fail to match the lower blade in the picture. The only way to check the pairing is to spin them up to full speed. And each pairing test needs to be checked with 2 different orientations of the grip installation. In the pictured example, only one orientation can produce a smooth spin. The other orientation always has vibrations that can't be tuned out with scotch tape.


More than 3 different racing controllers in the market have "define" of
PTERM_SCALE             0.032029
ITERM_SCALE             0.244381
DTERM_SCALE             0.000529
, vintage scaling in their pid.h file.
In the video, the left side is controlled by Betaflight with the vintage scaling numbers set by a racing champion robot or an anonymous human defector.
On the right side, the CC3D flight computer used actual PID parameters, and the calculated PIDs were applied for the initial research investigation. 
Both sides have identical main blades, RPM, swash mix, servos, tail motor, tail prop, weight, and weight distribution.
With the racing controller on the left side, scaled PIDs in the extremely cold temperature are 45/118/0, tail 34/10/28, seen in the configuration dump; with CC3D on the right side, true PIDs in the extreme cold temperature is 0.002/0.04/0, tail 0.0013/0.003/2.2e-5, seen in the Stabilization/Advanced tab. 
For gyro-only-stabilization, straight-line flying (the b and c terms in pid2 of Matlab are canceled by zero steering), we convert the standard-condition CC3D PIDs 0.00213/0.0426/0
tail 0.0016/0.0036/2.2e-5 to Betaflight by applying the vintage scaling as so,
              Pcc3d / 0.032029 / 0.7 * 1000/2 = Pracing   
, i.e.    0.00213 / 0.032029 / 0.7 * 1000/2 = 48
, i.e.    0.0016   / 0.032029 / 0.7 * 1000/2 = 36
              Icc3d  / 0.244381 / 0.7 * 1000/2 = Iracing     
, i.e.      0.0426 / 0.244381 / 0.7 * 1000/2 = 125
, i.e.      0.0036 / 0.244381 / 0.7 * 1000/2 = 11
              Dcc3d / 0.000529 / 0.7 * 1000/2 = Dracing   
, i.e.       2.2e-5 / 0.000529 / 0.7 * 1000/2 = 30
 The 1000/2 factor is an emulation of PWM 2000-1000 in racing controllers. The 0.7 factor is another Betaflight scaling to prevent servo overrun. 

Actual PIDs in the video down-scaled 6.5% from the conversion formula due to testing in low temperatures. But what is learned in extensive testing, as recorded in the following chart is that the down-scaling is unnecessary because the most critical parameter is the P-I ratio of 0.384 in Betaflight (0.05 in CC3D), not the absolute values of P and I.

Tail PID

It has been tested and shown that, with Kd=0, at the bottom of the dives or whenever the main rotor torque has rapid, sudden increases, the direct drive tail lapses while the motor is spinning up with finite acceleration. The high integral produces winding resulting in "collision with thin air" bounces at 0:57, 1:16, and 1:41 of the video below on the left. One solution is to use a high torque tail motor of 1306 size and Kd=0, such as the video below on the right with Kp=0.0012 and small Ki=0.0024 (in CC3D). But the general solution is to set Kd to 2.2e-5 in CC3D, or equivalent D=30 in Betaflight, with a small Ki with 1106/1303.5 motor.

The fact that, whenever a control axis has large, instant corrective torque, the Kd should be zero, acknowledges that our main rotor attitude control PID with Kd=0 is a correct setting because the variable pitch rotor can produce the desired corrective torque utilizing the large spinning momentum of the main rotor within half a revolution of the rotor without speeding up or slowing down any propeller. This also explains why multi-rotor systems need Kd tuning for attitude control which is more complex.

Yet another consideration is wind conditions. In high winds, I term should be lowered, P/I ratio increased from 3.33 to 4.5 for Betaflight, to prevent winding-induced oscillation as the following 2 experiments show.

With all things properly set up, the level-flight maneuverability with our PIDs, which are tuned for terminal velocity straight flight, is shown here.

FPV And Action Camera

I have tested four different power supply configurations. First, the FPV and action camera share a buck converter, and the VTX does not have stub power tapping wires for the FPV camera, there was diagonal line noise in the FPV feed.
Then the main buck converter was replaced and stub power tapping wires are added to VTX. The FPV and action camera share a buck converter. Still severe diagonal line noise in the FPV feed.
After swapping the shared buck converter, still obvious diagonal line noises in the FPV feed.

Finally, the FPV camera used the VTX power tapping, and diagonal line noises resolved.

But wait, for the HD video, the TPU mount produces jello as shown on the right. The TPU mount is no better than just 3 zip ties in the original IoT craft build.
Add a 6-8mm wide mounting tape to the front plate edge as pictured below on the left. The double-sided mounting tape's non-stick backing should stay on the top side contacting the camera body so that the camera can slide off for maintenance. Only peel off the backing on the bottom side bonding to the craft.
The suspension mounting has an intrinsic angle of balanced forces for the camera tilt angle depending on the length of the cable ties from the saddling point over the camera. Compared to the horizontal setup in the picture on the right, for the tilting of 16 degrees, pictured on the left, the zip ties are pre-bent about 4mm rearward. In either case, the zip ties are pre-bent at 2 points 3mm apart to form the smooth saddle. This saddling point needs 2-3 trials of mounting to figure out a good location.

The FPV camera is mounted the same way as the original IoT craft build. The helicopter physics dictates that the craft hovers with a banking angle of about 4 degrees, and the FPV camera should counter the angle as pictured below on the left. The 5.8GHz NTSB/PAL TV transmitter antenna is tested with two positions, and the vertical position as less blocking of the line of sight of the TV signal. 
The TBS Unity VTX, either pro or pro32 nano, comes with a set of 4 wires about 9cm long. And the power tapping scheme is shown below. And the result is the video on the right. The resulting video used Gyroflow to compensate for craft vibrations and stabilize the footage. 

The non-shielded, high power TBS Unity Pro VTX has oscillation problem with impedance changes on terminal points. As discussed by youtubers and pictured below, 
. The solution is to bend the wiring out of the terminal points to tune the impedance, as pictured below with verification.
The 5.8GHz has less than half the wavelength of 2.4GHz, and hence the small radius of the bend can modify the impedance effectively. Also shown in the tuning picture above on the left is the sharing of the VTX power with servos. It showed that sharing power with servos is not the source of the oscillation.

Hardware Modification

To start out, for 230S fuselage,
the zip tie for main motor
needs pre-bending and pre-
twisting to make the section
on the top stay vertical during
installation, as pictured.
The Align grips don't have thrust bearing. They have less crash resistance because the radial bearing is stress pre-loaded before impact, so the impact is more damaging to the radial bearing than with Oxy2 grips. Also the feathering friction is larger with Align grips with memory retaintion, so Ki is higher at 136 to overcome retention. Oxy2's grips' thrust bearings are pictured here.
The following diving video is with alternative Align main rotor grips (but with Oxy2 blades). The good dive was not reproducible consistently as the Oxy2 grips.

Canted Tail Rotor Solving Punch Pullback 

The helicopter's tail rotor is not centered up on the rotation plane of the main rotor. It creates a small right-roll torque the craft, and the gyroscopic precession makes the craft tilt backward and fly backward. The parasistic torque increase as the throttle increases. The result is craft fly-away when high throttle is used without other corrective measures. The actual fly-away video footage shows craft flying over roads, people, which was unlawful. It is only resolved when throttle is lowered. In a high-wind day, the throttle may need to be kept high through out the flight, and that causes the fly-away.

The solution is the canted angle same as the Seahawk helicopter's design,

The pullback problem can be discovered in rate mode flight with sudden maximum throttle,
, the tilt backward happens between 0:31 and 0:33. Just 2 seconds of pullback already sends the craft away  from the car where it hovers initially. Then a forceful pitch down is applied in a panic at 0:33. At the end of second 33, the car is seen in front of the craft, compared to it is on the side of the craft at the beginning of the punch-up. Please notice that the tilt angle is barely perceived, lowering horizon for about half an inch when viewing this video on computer monitor. That means FPV pilot can not notice the problem is occurring.

The fix can be verified line-of-sight,
, and the maximum throttle punch-up at 0:30-0:33 happens rather uneventfully, straight up.

Spektrum Tail Servos For Swashplate

The substitute Spektrum 2070t servos add  6.5 grams even though the scale shows extra 7.5 grams. The calculation is 7.5g + 0.2g untrimmed left side servo rod - 0.6g brackets - 0.6g screws(3 on the servo arms and 4 on brackets) = 6.5g.
When using 2070t servos, the servo-swash links has an arm length of 13mm and 1000us servo travel of 83.3 degrees, both exaggerate the servo PWM signal. To compensate it, the servo travel per direction needs to be attenuated to 500us x 12mm/13mm x 83.1degree/83.3degree =  460us . 

The android protractor app in picture shows the turning angle at 119.6 degrees - 36.3 degrees = 83.3 degrees.
The option of Spektrum 2070T servos on the cyclic swashplate performs with CC3D.


Hardware/electronic calibration to fix aborted/diminished dive

Example tilted swashplate in the picture on the left caused aborted dive in the video on the right. 

The following example of diminished dive happened with 1510us center pitch PWM output. The full deflection of the stick is 720 degrees per second. The 10us from center 1500us is 10 / 500 x 720 x 0.1(exp) x 10(sec) = 14.4 degrees tilted dive at the bottom of the dive.

Navigation With GPS

The GPS connection needs baud rate 115200 , for HGLRC F411, on UART1(TX1/RX1) as the following.
All these configurations are part of the "dump all" file in operating note . Softserial, as the 3rd serial line, controls the video transmitter and is already soldered on the S5 lead as shown in the build note. This arrangement is based on the technical note from HGLRC.

For Flywoo F7Nano, GPS is also on UART1(TX1/RX1), but softserial is not needed. Instead, actual serial3 line UART3(TX3/RX3) controls the video transmission.

GPS module BN-180 configuration with the features selections are as the following.

The navigation depends on the 3 digits of coordinates as highlighted in the following video.  The historical definition of the metre dictates that the biggest of the 3 digits correponds to about 1km distance (actually about 1.1km on latitude and 0.9km on longitude). And diving requires 10m precisition, which is the smallest of the 3 digits. The heads-up display also shows the distance home, which is about 180m as shown in the thumbnail screen of the video. And the corresponding home latitude 3 digits is close to 021+(180m/11m) = 037, as shown at the landing of the video.

FPV Fishbowl Optical Illusion

As an illustration, a 30-frame-per-second FPV feed in a tail-spin situation has the following 3 consecutive frames,

, and the craft appears to move from the left side of the road to the ball park on the right side of the road more than 210 feet between 2 frames of 0.033 seconds illustrated in the satellite photo on the right.

In the third frame to the camera failure, the camera points toward the south east corner of the park; in the second to the last frame, the camera points toward near straight north.
The apparent mach-6 hypersonic movement optical illusion needs to be re-fitted into pilot's mental picture for the craft's actual movement. Due to the near-170 degree wide angle lens of either Goqotomo or Caddx Turtle, the camera can display overlapping objects after craft turning 160 degrees. In the above first and second frame, the area at the overlap of line of sight is the actual position of the craft. In the last frame, the battery pack is seen thrown off the craft, and the craft crashed on to the right curb of the road as circle-highlighted in the satellite photo. The craft's actual position is closer to the right curb of the road on the peripheral of the thrid and second frame than it appears.

 All objects in the FPV feed are "squeezed" toward the center of the screen from all angles, and the pilot needs to know that the craft is actually positioned closer to the objects on the peripheral of the screen than they appear. This is the same principle of wide angle rear mirrors where car manufacturers put the warning "Objects in mirror are closer than they appear". For the actual footage of the flight leading to the tail spin in the video on the right, in which the same principle applies.

At exactly 1:00 mark, the craft appears to be outside of the ball park over the row of pine trees lining the south side street on the peripheral of the screen, but, the craft is actually closer to the pine trees, likely right above them. 12 seconds later, at 1:12 mark, the apparent position of the craft has moved the improbable 1000 feet to the north west side of the curved road, even though the actual position is still in the confine of the park because the view is exactly the same as the third frame to the camera failure video picture frame. Between 1:34 mark and 1:35 mark, the craft appears to move the impossible 600 feet from the south east side outside the park to the curved road side crash landing point all within 1 second. The reality is that the craft moved from near the center of the park to the curb of the road, 80 feet at most, within 1 second.

The conclusion is that the craft has been within the confine of the ball park all though out the entire flight doing very small maneuvers. The technique of tilting the camera can produce explosive high speed craft flight visual effects simply by distorting the pictures.

    No comments:

    Post a Comment