.

.

Post your videos as file attachments here. One video per topic please!

Moderators: sg, mods

User avatar
By dbotos
#398453
Conceptual sketch of a servo-driven gimbal. Hopefully not getting too huge - I traced around the camera to get that 1:1 and tried to keep everything proportional. It's 8 inches long from the front of the camera to the back of the mount.
Attachments
roll_axis_servo_gimbal_sketch_5-21-17.jpg
roll_axis_servo_gimbal_sketch_5-21-17.jpg (426.28 KiB) Viewed 2111 times
User avatar
By DMarley
#398454
Just some of my initial thoughts, nothing more....
:)
I would have envisioned attaching the camera bracket directly to the servo horn. You'll want a servo with dual bearings, a steel gear train, and probably a disk horn for a more stable, larger contact surface.
You also may find it easier on the mechanics if the rotational axis was placed on the camera/bracket's center of mass axis rather than on the lens axis. The viewer will not see a difference unless focused on objects within a few cm.
Also, you should place the gyro as close to the axis as possible. Keep the twisted leads as short as possible for less chance of signal interference. Surprisingly, cameras can make A LOT of RF noise.
Make it as simple and compact as humanly possible I'd say, even if it requires a slightly larger, more robust servo.

You may be pleasantly surprised about the ease of use of thermoforming plastics such as Kydex and others. They can allow you to create professional-looking, relatively complex, light-weight moldings from simple wood forms in a short period of time using normal hand tools. Or even epoxy-fiberglass laminates work well and are easy to fabricate over home-made forms.

Steve, what controllers have you been using in your projects?
User avatar
By mlbco
#398456
dbotos wrote:
mlbco wrote:I made a 2 axis servo stabilized gimbal system for a Gopro in 2014. It was bulky but worked OK. I used a cheap RC unit to control the aim point. The attached photo shows a 1-axis version using an Eagle Tree gyro module. The single axis unit was tested on my dirt bike and the dual axis was flown many times on my rigid wing. The dirt bike video isn't that great, it was a bumpy track and not too much leaning going on.
Steve,

Cool! Got any more details on your builds?

Thanks,
David
Here is a picture of the 2 axis mount on the pod. The pitch servo pushrod must be very long to minimize coupling to the roll axis. I used the Eagle Tree system for all the stabilization (attitude mode settings.) It was adequate and saved me the trouble of building something from scratch.

It's worth noting that all the modern brushless gimbals mount the sensors on the camera mount and create signals to the motors that result in near zero sensor motion. In the set up I made, the sensors mount in the pod (i.e. the part that does move inertially) and they create signals to drive the servos to keep the aim point steady. These are 2 very different approaches to stabilization. Mounting the sensor on the camera works best for balanced, low friction systems that only need small inputs to keep the camera stable (i.e. the camera's inertia is doing most of the stabilizing work.) I don't think this approach will work well with a model airplane servo system.

Steve
Attachments
Gimbal Camera Mount.jpg
Gimbal Camera Mount.jpg (154.84 KiB) Viewed 2099 times
User avatar
By mlbco
#398457
DMarley wrote:Steve,
You are a stabilization god! V-Bat and everything else. Impressive!
Were you able to sell your V-Bat tech?
My company that was developing the V-Bat was acquired in 2015. I worked at the new business for 2 years and then they "squeezed me out" and I'm moving on to other things. The V-Bat is mostly finished but now it's their problem to get it done.

Thanks,

Steve
Attachments
VBat_HS_Mode_1.jpg
VBat_HS_Mode_1.jpg (55.32 KiB) Viewed 2096 times
VBat_Hover_1.jpg
VBat_Hover_1.jpg (51.11 KiB) Viewed 2096 times
User avatar
By dbotos
#398460
DMarley wrote:Just some of my initial thoughts, nothing more....
:)
I would have envisioned attaching the camera bracket directly to the servo horn. You'll want a servo with dual bearings, a steel gear train, and probably a disk horn for a more stable, larger contact surface.
You also may find it easier on the mechanics if the rotational axis was placed on the camera/bracket's center of mass axis rather than on the lens axis. The viewer will not see a difference unless focused on objects within a few cm.
Also, you should place the gyro as close to the axis as possible. Keep the twisted leads as short as possible for less chance of signal interference. Surprisingly, cameras can make A LOT of RF noise.
Make it as simple and compact as humanly possible I'd say, even if it requires a slightly larger, more robust servo.

You may be pleasantly surprised about the ease of use of thermoforming plastics such as Kydex and others. They can allow you to create professional-looking, relatively complex, light-weight moldings from simple wood forms in a short period of time using normal hand tools. Or even epoxy-fiberglass laminates work well and are easy to fabricate over home-made forms.
I'm worried about hanging a cantilevered load hanging off the end of the servo. Figured it'd be nice to let the servo handle rotation and the bearings take the rest. The camera with battery, microSD card, waterproof case, and that little round-footed tripod mount weigh 5.4 oz.

From what I've read on brushless gimbals, rotor CG on the axis of rotation is what's recommended. Lowest rotational inertia makes it easier on the motors (like you said) or quicker response for a given torque. I just drew it on the lens centerline since I don't know where the CG will be yet.

I'm leaning toward aluminum for the mechanical bits. But thermoforming could be nice for the electronics packaging. We have an Ampak machine at work. It mostly runs 0.015" clear PVC for making protective shipping covers, but I'd be curious to see what it can do with some thicker material. I used to work at a place in CA whose main product line was thermoformed. One of the suppliers had a huge 5-axis mill for making tooling as well as some large forming machines. They were running golf cart panels the day we visited.
User avatar
By dbotos
#398461
mlbco wrote:Mounting the sensor on the camera works best for balanced, low friction systems that only need small inputs to keep the camera stable (i.e. the camera's inertia is doing most of the stabilizing work.) I don't think this approach will work well with a model airplane servo system.
That is my plan to put the IMU sensor on the rotor side with the camera and then use PID control to minimize deviation away from a camera-level state, as this is how I've seen it done on brushless gimbals. Can you elaborate on why a servo wouldn't work well?
User avatar
By Nicos
#398463
I really doubt using a servo will help things, why not go the BL motor route? There's gotta be a reason we don't see servos used much for this application.
User avatar
By dbotos
#398464
Nicos wrote:I really doubt using a servo will help things, why not go the BL motor route? There's gotta be a reason we don't see servos used much for this application.
Servos and steppers seem straightfoward since they are position-based and keeping a camera level is an angular position control exercise based on the feedback from the IMU sensor. The problem with brushless I ran into seems to be a lack of open-source info about making your own controller. The gimbal-specific brushless motors are pretty much in the same ballpark price-wise as a small stepper motor or RC servo:

https://hobbyking.com/en_us/multi-rotor ... otors.html
User avatar
By dbotos
#398508
Servo arrived today. I got a test setup cobbled together doing some crude stabilization. :mrgreen: See YouTube page for description.

[youtube]
[/youtube]
User avatar
By DMarley
#398516
Hey Dave,
That appears to be nearly perfect! How does it perform at slower roll rates as would normally be flown within typical, non-aerobatic flight?
User avatar
By dbotos
#398525
DMarley wrote:Hey Dave,
That appears to be nearly perfect! How does it perform at slower roll rates as would normally be flown within typical, non-aerobatic flight?
Doug,

Thanks! I was pleased that it worked that well for as simple as the math is (straight subtraction). It was good with slower roll rates from what I can recall. I'll try to remember to do some slow and some fast in the next video. I've got the platform almost done to put the IMU on the rotor side.

David
User avatar
By dbotos
#398537
Got rotor side platform made yesterday from "cereal-box" cardboard and moved the IMU to the rotor side. Code started out simple with three angle variables for the IMU, servo, and an angular tolerance (so it didn't sit there and go crazy trying to get to a perfect zero IMU angle). It worked, but I noticed that the bubble in the level vial wasn't centered, so I decided to make tweak the code so it would attempt to level the IMU to a user-defined target angle (which could be zero or non-zero). Through several iterations of breaking and fixing portions of the code, I ended up:

-adding serial print commands to keep an eye on what values certain variables were in each instance of the loop
-figuring out how to properly nest if/else statements in Arduino (including one that would check to make sure the new calculated servo angle was actually something achievable before trying to go there or else throw an error message to the serial monitor)
-trying the angle variables as floating point numbers instead of integers
-figuring out that I had knocked the servo's +5V lead out of the Arduino after wondering why the servo was just sitting there after various code tweaks (oops)
-adding a few second delay in the program's setup portion to let the IMU values settle out before trying to read them
-adding a delay after commanding the servo to its new angle and trying different durations of delay (this came after getting the system to oscillate wildly, presumably because it was trying to calculate and implement another correction before the previous one had a chance to get where it was going)

So at the end of the night ... or early morning rather ... I ended up with a system that was a bit laggy/choppy due to the post-move-command delay but working. Not sure if that's attributable to trying to do proportional control on a system that doesn't like it, my code having deficiencies, or inherent characteristics of the servo not being the greatest for this application. I'll probably do some research and see if I can do anything to improve it and then move on to PID control or trying a stepper motor.

I need to check the sensitivity of that Dollar Tree level vial (got a 16" level for $1 and popped out one of the vials). It may not be the best analog indicator if it's too sensitive.

Speaking of sensitivity, I also need to figure out what a reasonable angle tolerance is to attempt to level to. With 720 and 1080 HD formats (both 16:9 aspect ratio), a 1-degree incline of the horizon from one side of the screen to the other would be about 3% of the screen height. Not sure how perceptible that would be on a hang gliding video.
Attachments
servo_test_rotor_mounted_IMU.jpg
servo_test_rotor_mounted_IMU.jpg (633.26 KiB) Viewed 1944 times
User avatar
By red
#398539
dbotos wrote:So at the end of the night ... or early morning rather ... I ended up with a system that was a bit laggy/choppy due to the post-move-command delay but working. Not sure if that's attributable to trying to do proportional control on a system that doesn't like it, my code having deficiencies, or inherent characteristics of the servo not being the greatest for this application. I'll probably do some research and see if I can do anything to improve it and then move on to PID control or trying a stepper motor.
Dbotos,

How high is the voltage that you feed to the servo?
User avatar
By dbotos
#398542
red wrote:How high is the voltage that you feed to the servo?
Red,

Just 5 VDC from the Arduino so far. The servo can take 4.4 to 6.6 VDC. Guess I could see if a higher voltage supply for the servo would help.

David
User avatar
By red
#398549
dbotos wrote:
red wrote:How high is the voltage that you feed to the servo?
Red,
Just 5 VDC from the Arduino so far. The servo can take 4.4 to 6.6 VDC. Guess I could see if a higher voltage supply for the servo would help.
David
David,

I would suggest using a straight 5Vdc from the power source, with only the signal voltage coming from the gadget. An oscilloscope might show that servo signals are dragging down the power to the servo, as is now. This power issue may or may not be causing some jitter at the "level" spot.

In RC aircraft, constant "corrections" by the servo can drain the batteries. I used a three-pin voltage regulator chip, 11Vdc in and 5Vdc 2A output, to stop that jitter. It was similar to this part, but feel free to innovate. US$.68 each. 8)
https://www.digikey.com/product-detail/ ... -ND/585989

For the chip I used, the regulated voltage would "float" upwards, no load, but a small-load (high resistance) resistor would hold the 5Vdc steady, when there was no other load.

:mrgreen:
User avatar
By dbotos
#398557
Red,

Quickie research yielded the following current draws for the three components:

Arduino Uno R3: ~50 mA in idle state
GY-521 IMU: probably in the neighborhood of 5 mA
MG90s servo: 230 mA idle; 300-460 mA for 1 - 1.6 kg-cm of torque

So I could be getting close to if not exceeding the 500 mA standard for USB. Powering the servo from its own supply sounds like a good way to eliminate possible voltage drag-down. I'll ultimately need a battery that will run all the gimbal components. And maybe voltage regulator like you mentioned depending on how the battery and component voltages work out. I'll have to remember about small load resistor to keep output properly regulated.

Thanks,
David
User avatar
By dbotos
#398558
I checked out the sensitivity of one of the level vials in both directions with my digital level. Here are the results:

0° --> bubble centered
0.5° --> end of bubble almost touching black line
1.0° --> small portion of bubble over the line
1.2-1.3° --> bubble takes off and heads to end of vial, almost like you had a flat-topped hill and pushed at ball to the point where the flat meets the slope
User avatar
By dbotos
#398560
Check out this guy's stepper-driven balancing robot:

http://www.brokking.net/yabr_main.html

It uses NEMA 14 steppers, DRV8825 driver boards, and an 11.1V 2200 mAh RC battery. Couldn't find mention of battery life, which is one of my worries with steppers. Listed battery weighs ~6.2 oz. My current statically mounted camera setup (mount + camera + waterproof case) weighs 10.4 oz. What would be the max weight you think I could safely stick on the keel of my Falcon 3 195 just behind the neoprene sleeve that covers up the rear wire attachment point? I guess the gimbal battery could be located further up on the keel so it doesn't cause as much of a pitch moment.
User avatar
By red
#398561
dbotos wrote:Red,
Quickie research yielded the following current draws for the three components:
So I could be getting close to if not exceeding the 500 mA standard for USB. Powering the servo from its own supply sounds like a good way to eliminate possible voltage drag-down. I'll ultimately need a battery that will run all the gimbal components. And maybe voltage regulator like you mentioned depending on how the battery and component voltages work out. I'll have to remember about small load resistor to keep output properly regulated. Thanks,
David
David,

Everybody in your game needs an Oscilloscope. Here is a DIY oscilloscope that uses your PC sound card, and a few extra pieces. The guy mentions Hantek, if you want an off-the-shelf commercial solution, still much cheaper than a fer-real commercial oscilloscope. Have fun . . . 8)

http://homediyelectronics.com/projects/ ... illoscope/
-
User avatar
By DMarley
#398568
Dave,
Using arduino ide delays to attempt to correct problems just creates more problems and prevents the processor from doing things efficiently. Instead of delays, try to do a moving average calc to smooth out the outputs from the imu. Graph your inputs vs averaged inputs vs time and see what works that way. The raw inputs are probably scattered a bit. You'll have to find a running average set length that will provide reasonably smooth curves yet yield fast enough response rate. That is if putting the servo on it's own power supply doesn't correct the problem.
Try using the Atmel Studio IDE rather than the arduino ide. You'll be glad that you did later on if you make the switch. It's not the easiest to print things, but it has a much better debugger, and the whole of the ide is professional and lightyears beyond arduino's poor attempt.
You may find that wrapping the servo wires around a torus ring a few times may help reduce signal interference.

All I want for Christmas is my two front teeth .... oscilloscope and a logic analyzer!

I tried to run the Python script but it only gener[…]

Merely theorizing here, again... (beware of specul[…]

Saturday, October 13th at Villa. All seven HGs so[…]

Burning Desire to Fly on Friday

Wow, those guys get in close with their big birds.[…]