The following steps were taken to build a light-weight responsive 3-axis gimbal for the GoPro. I'll cover:
Background: The next duration ship needed to be a video and camera platform. The ship can't be fully designed until the envelope of the gimbal/camera is known.
This is a photo of the final product.
1) 3-axis to handle roll, pitch, and yaw ship stability movements (estimated at < 20 Hz corrective movement)
2) yaw with programmable follow mode to transition ship yaw motion
3) degrees of motion
- pitch +45 to -110 panning down while retreating and slightly up while going forward
- roll -45 to +45 ship movement not likely to exceed +/- 20 degrees
- yaw +17 to -17 ship will handle large yaw movements
4) Physical interface (mechanical lock and electrical) to GoPro 3 or 4 (camera will not carry a battery)
5) Limited to a 114 mm side to side envelope (fit between the batteries)
6) Total package < 200 grams (for a duration ship 200 g equates to a 20ish minute reduction in flight time)
7) Camera lens movement less than 3 mm during ship rotation (roll, pitch, or yaw)
8) Max deviation error during normal flight < 0.1 degrees at 5 Hz
9) Stable high performance movement to > 30 Hz for final recording at 30 frames per second
10) Stable in wind offset torque of 500 g-mm
Motor Selection - Four gimbal motors were selected for testing to handle the expected torque and offset loads.
- Torque loads were estimated by placing the required virtual parts in 3-D space; the mass of each part estimated and multiplied by the inertial equation for each shape type and then added to the mass times the square of the distances from each axis to derive the parallel moment of inertia for each axis (g-mm2): 100k for pitch, 160K for roll, and 165k for Yaw.
- The motors were then tested to those loads. Three of the motors shown here.
The motors were put on a device to test their ability to handle load. This is one type of torque test performed on each motor.
Then this test was used to measure response and error of the motor to rotating different inertial loads.
The results of the test are summarized here.
Motor selection was performed on each actual axis so that the lightest solution would be chosen.
Electrical Interface - Chose the Lumeneir GoPro Live Video Out + Charge Right Angle Connector that goes into the back of the camera. Note: going into the side of the camera (the USB type) takes too much room and pushes the motor farther out on the axis creating more inertia for the gimbal motors to move (a function of distance squared).
Mechanical Interface to Camera - Velcro strap. See photo above.
Gimbal Controller - DYS Basecam SimpleBGC 32-bit Tiny. Selected for performance, weight (10 g w/o the case), the two IMUs, follow and other modes, and the software (SimpleBGC GUI) for testing the setup.
Camera Isolation Cage Option - By placing two sets of dampers in series, one can increase the total dampening from 15 dB to possibly 20ish dB. With 3 set ... who knows. For example, Damper set:
1, a given, was the set of dampers between the ship frame/motors and the electronics platform (FC + batteries + gimbal)
2, an option, was between the electronics platform and the gimbal
3, an option, was between the final gimbal motor (pitch) and the camera.
In the photo below, the camera is given extra isolation from motor noise (option 3) as each motor does have a hum during movement and can also hum during stationary hold. Note the two GoPro dampers on top and two on bottom of the camera. This concept was tested. Because of the low resolution (compared to professional cameras) of the GoPro, this level of vibration isolation was deemed unnecessary. Thus the isolation cage for the camera was eliminated.
Materials - Three types of sandwich panels were used in design.
- 1-ply Carbon with sandwich panel using 1/8" balsa core (most structural parts)
- 1-ply Carbon skin sandwich panel using 1/4" balsa core (around the pitch motor bell housing)
- 2-ply Carbon skin sandwich panel using 1/16" birch core (thin enough to interface to dampers)
Drawings - The system drawing.
The part drawings.
Coming to this design took three iterations: the isolated cage design and then two iterations to get the roll bar sized correctly for 3D wire movement envelope and control of the roll bar (tuning fork shape).
Also, for ease of assembly, the notches were chosen to aide alignment and joint angles. If going commercial, however, the through-bolt to an embedded nut design might be better.
Camera Lens Motion - If the camera is under the ship, when the ship rolls or pitches, the lens is physically displaced in 3D space. The farther the lens is from the rotational CG of the ship, the more the lens is moved (displaced). For example:
- it is common for a ship in stable mode to rotate 1 degrees before attitude is corrected.
- if the camera is 50 mm (2") below the center of ship rotation, then the camera will be displaced 0.9 mm
- this equates to a HDMI chip that is 10 mm showing the scene shift 200ish pixels or 9% of the screen.
This displacement of the scene is further explained here:
During the trial with the isolated camera cage, the lens/parallax was mounted centered to each axis versus aligning the axis to the CG of what it's rotating. This results in not scene shifts caused by the ship stabilizing but also causes imbalances that need correction by adding weight (balance) to each axis. Since weight can increase vibration, a trade-off is needed.
Calculations were made to identify the errors if each axis was aligned to the axis CG instead assuming high performance response where errors would not exceed .07 degrees and the offset was less than 4mm. It turns out that the scene shift would be about 23% of the width of one pixel. So it was determined that:
- aligning each axis to the lens axis and parallax was not necessary for the resolution of the GoPro.
- but that the gimbal would be located such that the axis of the gimbal motors was at the CG of the ship.
The rest of the requirements would be met through motor selection and testing of each axis as the gimbal was assembled.
For those interested, here is a picture of the worksheet used to estimate axis loads in terms of inertia.
- Col 1 to 7 define the mass and size/shape geometry (cuboid, rod, sphere, etc)
- Col 8 to 10 define the mass position in 3D space from each gimbal axis
- Col 11 to 14 the torques
- Col 15 to 17 the moment of inertia for each axis (to rotate the object on it's own axis)
- Col 18 to 20 the parallel moment of inertia for each axis (to rotate that object around a parallel axis)
The formulas for the different shapes are like these that can be found on the internet.
Pitch Axis - The first axis to build and tune.
With the parts milled out of the lightest and strong-enough sandwich panel material available,
- the back plate was fitted (note notching) and then bonded to the side and bottom plates using Scotch-Weld 2216 adhesive
- the back sandwich panel is about 4.6 mm thick so the CNC router cuts out a pocket (one shown for the IMU sensor) along with the through-slot for the connector that plugs into the back of the camera
- the camera electronics were embedded into the back pitch axis plate and hot glued (non conductive)
Shows the IMU on the right hot-glued in place
Shows two views of the other side with the:
- through-slot for the back-of-camera 90 degree connector.
- the Teflon bushing on the left side
- the pitch cage around and bonded (rather than bolted at the end of) to the motor bell housing.
... creates a larger mechanical interface
... pushes the motor 11 mm close to the roll and yaw axis, reducing the total envelope needed to roll/yaw the camera
... reduces the r^2 for the inertia that the roll and yaw motors have to rotate
The motor bell bonded to the pitch housing (hot glue; the gimbal motor is controlled in a manner, the power setting, to not get too hot).
The pitch axis was now ready for motor selection and test with the lightest motor attached as the first try. The method of test is shown in this video, which was performed on the roll and pitch axis. The only difference is that only one load was tried, the actual camera.
The test results were as follows. Key are meeting the requirements: rapid small error (not shown) and stability beyond 30 Hz. Thus the smallest motor was found to be adequate.
Note: Autotune in Simple BGC GUI is pretty good. Tune one axis at a time. Manual tuning can also be effective.
1) Set I and D to zero
2) Up P until the gimbal becomes unstable
3) Set P to 50% of that value
4) Up D to just below instability
5) Up P to just below instability
6) Try I values between .005 and 2.
... in the Analyze tab, measure stability
... in the Scripting tab, oscillate the axis motor to full limits at acceleration = 1300 and velocity = 1000 twenty times
... record maximum deviation (the blue number next to the dials showing axis movement
... choose the best balance of stability & performance (lower I, to a point, = higher stability and lower accuracy)
Roll Axis - Next was to build and tune roll.
The roll arm was fitted and assembled. The roll arm is shaped like a tuning fork, thus it is important to ensure that the tune it plays is not the same frequency as the gimbal motors nor the same as your target frequencies (< 35 Hz). The top brace of the roll arm has two functions:
- push the natural frequency of the roll arm higher
- allow for an easy way to square the assembly so the opposing pitch motor axle and bushing/pin align.
Shown are the:
- roll and pitch arms.
- the roll arm pin that goes through the pitch arm bushing (a carbon rod; recommend a fitted nylon or metal rod & bearing)
The carbon roll pin being inserted into the pitch Teflon bearing.
Roll/Pitch assembly complete, front view.
Roll/Pitch assembly back view.
Roll axis ready to be mounted on the test device with its load.
The roll axis was then tested in the same manner as pitch. In both cases, the motor is attached to the device that oscillates the axis back and forth about 11 degrees at 5 Hz, a rather extreme test in terms of motion. Also, the following test was conducted in order to bring reality into the test. After all, who cares about numbers? What we really care about is the final video result. This is how reality was brought back into the test.
It is important to note that many of us tend to take the ship high in the air and shoot a beautiful vista that is are away and rave about our gimbals. But consider what you are seeing. Hardly any detail. A leaf is 1 pixel or less. Definition does not exist, so gimbal performance isn't tested. The only way to test a gimbal is to move the camera close to a very complex piece of art that is designed to measure photo quality. The eye chart is attached. The smallest oscillations (more than a pixel) are detectable.
For this axis, 2206 size gimbal motors were deemed adequate, with the results below showing that the requirements were met.
Notes: for this axis, using a left and right support bar has the advantage of excellent pitch rotation support, necessary for the smaller motor because it's axle is not that strong. however, if a larger/stronger axle motor was used:
- could the weight gain be countered by structure loss in the pitch and roll arms?
- the issue of the tuning fork resonance would no longer be an issue
- in fact the roll arm had to be slightly widened so that the bushing did not contact the roll arm or resonate backlash vibrations that would excite the motors
- the advantage of a one side roll arm would be a smaller rotational envelope and possibly bring the roll axis closer to the lens axis
- if i rebuild the gimbal, i'll try this option to see if it can be done without net weight gain or loss in performance.
Yaw Axis - One might think that Yaw would be the easiest axis since it really only has to rotate about +/- 17 degrees in ship follow mode. Thus the tests can be restrained to about +/-20 degrees. But it proved to be the most difficult axis to tame, finally having to move to the largest of the motors, which might not be large enough. The primary problem was stability:
- the 2206 motors were only stable to about 10 Hz (maybe that's high enough, but way under 30 frames per second).
- it proved to be impacted by the lower motors which could together excite yaw if one pushed the PIDs too high
- then once Yaw got excited, that vibration would feed back to roll and pitch
- with Yaw and Roll, i tried filtering (an option with the Basecam controller), but never achieved a satisfactory result.
So a simple Yaw arm show here was fitted and bonded. The only real design consideration besides the obvious is ensuring that the brace doesn't interfere with the camera and gimbal wires during rotation. A script was written to ensure that the wires would not cause issues by using a script that tested out every possible combination of roll, pitch and yaw in 15 degree increments (a rather long script). This also ensured that there wasn't a 6D position of the camera that would cause unwanted harmonics.
This photo also gives you a good look at sandwich panel material. Carbon/Balsa core sandwich panels are extremely strong because the layer farthest from its center is a single ply of carbon. Then the core, while soft balsa, is put on edge so the balsa tree core is put 90 degrees to the carbon plies, making the core highly non-compressible (soft on the sides and hard at the ends). This keeps the two carbon skins in a near perfect parallel condition during bending resulting in extreme stiffness for the weight.
Finally after three days of trying different PIDs and motors, the test results yielded the following:
I would have preferred higher stability to well over 30 Hz. But Yaw vibration is not as violent as roll and pitch (vertical to gravity and tends to harmonize at lower frequencies. So hopefully, the results, while not meeting the original requirements, are OK. If the actual video proves that Yaw does not have to be stable to over 10 Hz (versus 30 Hz), the PIDs will get reduced to further distance Yaw from harmonics.
not as impressive as what Vega does with optics! quite impressive series of products that you offer.
my hope is that for multi-copter use (a huge potential field given what your cameras can "see" and the applicable use in agriculture and structure inspection) that all commercial suppliers take to heart that with duration multi-copters (ships that fly for more than an hour), that every 10 grams of weight equates to more than 1 minutes of flight.
so in this case, a 100 grams savings taken off of the gimbal will allow my video quad to fly for 10 more minutes.
IV & V Test & Performance
I was hoping, after the tests performed during the build process, to compare to other gimbals. But, i'll have to wait for 32 bit Off-The-Shelf (OTS) gimbals because the tests being performed require the 32-bit Basecam Gui with the following functions that the 8-bit version does not support.
- Scripting (allows movement of the gimbal and tracking of errors)
- Analysis (tests stability over a range of response frequencies)
- Monitoring (function is there but not the breadth of variables to track)
All that i'm able to ascertain for now from putting gimbals on the oscillator is that the DIY build here appears to have 1.5 to 2x smaller following errors than the leading OTS. I also need a way to test if that reduction in tracking error is noticeable in a photo or video taken by a moderate resolution camera like the GoPro. If the reduction is only fractions of a pixel, then the answer will be no.
32-bit OTS versions are starting to appear, so i'll try to test and present the results later.
But now that i know the envelope size of the gimbal/camera, back to building the photo ship.
Do you say anything about he covering of the sides/balsa layer, in red ? Do you epoxy them as previously mentioned to avoid delamination ?
Great research project and nicely finished report. It should further the art for all that read it.
balsa core floor panels do not suffer skin delamination as do Nomex hex cell core unless there is a defect or the piece is CNC'd using an uplift cutter (i now use a neutral cutter because of that potential issue). they were used on Boeing and other aircraft for flooring for a while but were replaced by Nomex core, which is much lighter.
the red edge is just exterior latex house paint.
the reason to not epoxy the edge is to allow the balsa to breathe. when the balsa absorbs water it is important to allow it to breathe so the water can evaporate out. with singly ply balsa, this might be less of an issue as the skins are fairly porous. so don't know for sure the pros and cons of edge treatment. on aircraft, however, i did research that proved that with 2+ ply skin sandwich panels that it was better to not pot the edges (an attempt at sealing the floor panel from moisture).
i'm still looking for a GoPro 4 interface cable that:
- allows HD video out (might be GoPro limitation)
- comes out the back (as the one i'm using) so system remains compact (versus out the right side USB)
- was also thinking that battery elimination would be nice:
... Pro, less weight to rotate and gets roll motor closer to the lens center
... Con, heat is lost from converting 12+ VDC to 4 - 5 VDC
Brilliant. That's a really detailed informative write up. I like the novel idea of attaching the pitch motor to the camera tray and reducing the gimbal width at the same time.