Evaluating Vibrations and Optimizing Damper Systems
For aerial video applications, one of the most difficult aspect of a DIY gimbal system is to achieve a low level of vibration and a well working damping system. The first reaction of most users to artefacts such as micro vibs or jello in the video seems to be "better PID tuning", while in fact the secret sauce of a well working system usually lies not in the PID tuning, but the copter's vibration level and construction of the gimbal damping system.
Unfortunately, when it comes to the latter aspects the current approach available to us DIY guys is essentially trial-and-error, which at times can be frustrating. The STorM32 NT thus aims at providing tools to alleviate the situation. This is still an effort in progress, meaning that the best set of tools and/or best set of recipes to achieve the goals have not yet been established. However, some tools and procedures have emerged.
The basic idea of the STorM32's vibration and damping system analysis is sketched in the following picture.
Flight controller often provide options for analyzing the copter's vibrations. However, the disadvantage is obvious: In most cases it doesn't see the real copter vibrations, since it is mounted with some dampers. What matters are the vibrations at the camera, which is "far away" from the flight controller. That is, in a technical language, the transfer functions for the copter's vibrations to the flight controller or the camera are substantially different. For a complete vibration analysis one needs to know the vibrations on the copter, on the gimbal frame, and the camera. It is pointed out that only with knowing the vibrations on the copter and the gimbal frame, the performance of a gimbal damping system can actually be assessed.
That's the basic idea of the STorM32's three IMU setup, to provide us with a means to properly evaluate the vibrations and especially the gimbal damping system, which hopefully will allow us to get better gimbals.
The offered mechanisms however can also be used in other ways, e.g. for balancing motors and propellers. The possibilities are only limited by our creativity :).
Comment: In order to avoid confusion, this clarification: In the above sketch the IMU on the gimbal frame is named IMU-B and that on the copter IMU-C. Depending on the user's setup either could be the 2nd IMU (in the terminology of the STorM32 gimbal controller).
The following video explains that too, and also shows possible uses of the NTLoggerTool and Blackbox Explorer.
The physics of vibrations and damper systems is elementary, and quite many aspects can be properly inferred by applying basic laws of physics. Surprisingly, it seems very rarely been done. In this chapter only one simple, but crucial point shall be pointed out:
The vibration dampers, as we like to call them, do not actually damp vibrations.
Before explaining that, it may be useful to first introduce the two general approaches of vibration isolation and vibration absorption (this classification seems to be widely, but not generally, accepted):
Vibration Isolation: The system is separated from a vibrating source by some flexible pieces of something (which we call dampers). Physically it is described as to consist of a damping element, spring element, and a mass of payload.
Vibration Absorption: The system is separated from a vibrating source by some dampers, with in addition a second mass of payload attached to the primary mass via some further dampers.
The gimbal damper system by itself constitutes a vibration isolation system. However, if the stiffness of the gimbal is taken into account, the copter + gimbal frame + camera system is rather reminiscent of a vibration absorption system (but with swapped roles of the masses). Anyway, let's assume a perfectly stiff gimbal, and let's talk about the gimbal dampers as a vibration isolation system.
Physically, the item which we commonly call a damper is a combination of a damping element and a spring element. The most crucial points to realize are these. First:
The damping coefficient of (most) vibration dampers is relatively low.
You may confirm that easily yourself by using google. The damping coefficient of e.g. rubber is somewhere in the range of few 0.1 or less. You may also easily confirm that by a simple test: Tip your gimbal, and you will see it swinging back and forth a couple of times. The necessary consequence of that is, second:
The vibration damper does not always reduce the vibrations. In some frequency range the vibrations are actually substantially amplified.
This latter point makes the gimbal damping issue so complicated, because a good vibration reduction in some frequency range is payed for by some substantial amplification in vibrations in a lower frequency range. The situation is shown in this picture:
The information in this chapter refers to firmware v2.19e and higher.
As discussed in the chapter Conceptional, the evaluation of all vibrations relevant to the gimbal performance asks for three IMUs. The STorM32 NT thus supports this, in the following way.
These general rules apply:
- The STorM32's numbering of the IMUs is IMU1, IMU2, IMU3 (IMU1 is actually presented as "IMU", for historical reasons). Per definition, IMU1 is the camera IMU, IMU2 is the 2nd IMU which when activated ( = “full”) is used for advanced control performance, and IMU3 is a further IMU those data is read but otherwise not used by the gimbal controller.
- As always with NT, the camera IMU must be the 1st NT IMU module (ID = 1) or IMU1, respectively.
- The other two IMUs can be either two NT IMUs, one NT IMU and the on-board IMU, or one NT IMU and an external I2C-based IMU connected to the I2C#2 plug.
- Which of these two IMUs is used as IMU2 or IMU3 is determined by the parameter in the .
- With respect to the IMU labeling used in the previous chapters, IMU1 always corresponds to IMU-A. IMU2 and IMU3 correspond to IMU-B and IMU-C or to IMU-C and IMU-B, depending on the placement of these IMUs on the copter.
The parameterin the determines which IMUs are used as IMU2 and IMU3:
|off|| 2nd NT IMU (ID = 2) if present,
else on-board IMU
|default|| 2nd NT IMU (ID = 2) if present,
else on-board IMU
|3rd NT Imu (ID = 12)|
|2 = id2, 3 = onboard||2nd NT IMU (ID = 2)||on-board IMU|
|2 = onboard, 3 = id2||on-board IMU||2nd NT IMU (ID = 2)|
|2 = onboard, 3 = id3||on-board IMU||3nd NT IMU (ID = 12)|
|2 = onboard, 3 = off||on-board IMU||off|
Comment: "on-board" refers to either the on-board or the external I2C IMU. Which one is used as "on-board" IMU, is determined by the usual rules for using the on-board or external I2C IMU.
The STorM32 NT project includes a range of hardware and software tools, which help tremendously in analyzing all sort of things, vibration issues would be one of them.
This piece of hardware can be connected to the NT bus and records all data on its Tx line on a micro SD card. For further info see the article NT Data Logging.
This piece of software, written with PyQT and pyqtgraph, is the STorM32 developer's main tool to inspect recorded data. The data can come from various sources:
- Data recorded with the NT logger on a SD card
- Data recorded with the DataDisplay of the o323BGCTool GUI
For further info see the article NT Data Logging.
Blackbox Explorer for STorM32
The NTLoggerTool allows us to convert the data into Blackbox Explorer compatible .cfl files. The Blackbox Explorer allows us then to overlay the recorded video with the logged data, and thus to directly correlate any video artifacts with features in the logged data.