Unterschiede zwischen den Revisionen 14 und 65 (über 51 Versionen hinweg)
Revision 14 vom 29.08.2009 21:12
Größe: 9547
Autor: FredericG
Kommentar:
Revision 65 vom 11.10.2009 23:28
Größe: 6802
Autor: FredericG
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
[[TableOfContents]] [[TableOfContents(2)]]
Zeile 4: Zeile 4:
The tool measures the vibration generated by the motors using the MK build-in sensors. The tool evaluates the vibration generated by the motors which allows balancing motor/prop assemblies and experimenting with different motor-mounts. The test uses the MK build-in sensors, so no extra hardware is required.
Zeile 6: Zeile 6:
This allows to balance motor/prop assemblies and to experiment with different motor-mounts. Reducing vibration is very important, especially for Aerial Photography or Video. Vibrations result in blurry footage. Some claim that high frequency vibrations can be picked up by the Optical Image Stabilization lens assembly which is incorporated in almost all recent cameras. The OIS is not designed for these vibrations and makes thing worse, even when you switch the OIS feature off in the camera menu.
In addition, the FlightControl sensors pickup the vibrations and this deteriorates performance; the new FC ME comes with vibration dampers in order to reduce the vibrations transferred to the FC.
Zeile 8: Zeile 9:
The standard FlightControl program supports a command that allows to monitor the MK sensors. The MKTool uses this command to generate graphs of analog values. In a first approach I used this standard command to monitor vibrations. The problem is that is mechanism only allows to sample the values only 30 times a second. In order to get reliable results one needs to monitor the values for a long time (a minute for example) and hope that one has catched the peaks of the signal. Propellers can be balanced the traditional way. However it was discovered that also the motors need balancing. One way to accomplish this is let a small unbalance in the prop compensate the motor unbalance, so the orientation of the prop is important (see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]). Looking at the vibraions of a running motor allows balancing the prop/motor assembly as a whole.
Zeile 10: Zeile 11:
This new approach is based on dedicated FlightControl software that allows to monitor one sensor for a short period of time as fast as possible. This allows to grab a reliable signal in a very short time. = How does it work? =
The standard FlightControl program samples all sensors periodically and provides a command to read the latest sample from all sensors. The MKTool uses this command to generate graphs of the analog values. In a first approach the VibrationTest used this standard command to monitor vibrations. The problem is that this mechanism only allows to sample the values 30 times a second. The actual shape of the signals cannot be determined and one can only hope to catch the peak values. In order to get reliable results the values need to be monitored for a long time (a minute for example).

This new approach is based on dedicated FlightControl software providing a new command. The new command instructs the FC to sample one of the sensors as fast as possible and store the info in its internal memory. Afterwards the recorded data can be read to analysis. This allows to grab a reliable signal in a very short time. This approach can capture about 11000 samples a second, 500 times more than the MKTool can.
Zeile 13: Zeile 17:
[[Anchor(SampleSignalJpg)]]
Zeile 16: Zeile 20:
Zeile 18: Zeile 21:
The current implementation is very basic, it is a "command-line" tool without any graphical user-interface.

I am still experimenting and working on the first version of the tool.

Currently the tool was only tested on PC/Windows with FC 1.3 hardware.
/!\ ~+'''The version available now (version 0.9) is an beta version; it was only tested by a limited amount of people.
[[BR]]More testers/evaluators are very welcome!'''+~
[[BR]][[BR]]
At the time of writing, the tool was tested in combination with:
 * PC/Windows XP and Vista
 * FC 1.2 and FC 1.3
Theoretically the tool should also run on MAC and Linux.
[[BR]][[BR]]
Features in the pipeline
 * Automatic backup and restore of flight settings
 * Automatic installing and restore of RC flight code
[[BR]][[BR]]
{i} [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions]
[[BR]]
{i} [[MailTo(frederic AT rc-flight DOT be)]]
Zeile 25: Zeile 38:
The tool is written in programming language called [http://en.wikipedia.org/wiki/Python_(programming_language) Python].

The most logic way to run the tool is to install support for Python on your PC (if you do not have it already) and the Python libraries the tool depends on.
Python is also available for Linux and MAC; the tool should also run on these platforms, but I have never tried it.

If you do not feel like installing Python, a version that is compiled to a windows executable is provided.

So, you have two options.

[[Anchor(InstallPython)]]
Zeile 26: Zeile 49:
The tool is written in Python. In case you have heard of python, have look in [http://en.wikipedia.org/wiki/Python_(programming_language) Wikipedia].
In order to run the tool, you need to install support for Python on your PC.
It you do not have Python installed on you PC, I propose you install:
[http://www.activestate.com/activepython/ ActivePython for Windows] and
[http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)]
For a Windows machine I propose you install:
Zeile 32: Zeile 51:
Python is also available for Linux and MAC.  * [http://www.activestate.com/activepython/ ActivePython for Windows] Press the big "ActivePython Download Now" button.
 * [http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)] Select "pyserial-2.5-rc1.win32.exe" on that page.
 * [http://www.wxpython.org/download.php wxPython wxWidgets for Python] Select the the win32-unicode version for Python 2.6
 * [http://sourceforge.net/projects/numpy/ NumPy, the fundamental package needed for scientific computing with Python]
Once you have Python support on your PC, unzip [http://www.rc-flight.be/VibrationTest/VibrationTest_0_9.zip VibrationTest_0_9.zip] to a directory on your PC.
Zeile 34: Zeile 57:
Once you have Python support on your PC all you need to is place the files VibrationTest.py and mkProto.py from [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2Ftrunk%2FVibrationTest%2F#_VibrationTest_trunk_VibrationTest_ SVN] together in a directory. == Option 2: Get the compiled version ==
unzip [http://www.rc-flight.be/VibrationTest/VibrationTestExe_0_9.zip VibrationTestExe_0_9.zip] to a directory on your PC
Zeile 37: Zeile 61:
== Option 2: Get compiled version == = How do I use the tool? =
== Prepare your MK ==
Zeile 39: Zeile 64:
It should be possible to compile python applications to a windows executable. I did not investigate this approach yet. === Secure your MK ===
I use luggage straps to secure my MK to the table while it is still able to vibrate:
Zeile 41: Zeile 67:
= Installing the FlightControl software =
The VibrationTest tool works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and you need to reinstall your regular software version afterwards. This just takes a few minutes. Switching the software is done the usual way, using the MKTool.
attachment:mk1InTest.jpg
Zeile 44: Zeile 69:
You can grab the latest version of the VibrationTest-FC.hex file from [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2Ftrunk%2FExecutables%2FFlightCtrl%2F#_VibrationTest_trunk_Executables_FlightCtrl_ SVN] === Installing the FlightControl software ===
The VibrationTest tool only works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and '''you need to reinstall your regular software version afterwards'''. This just takes a few minutes. Switching the software is done the usual way, using the MKTool.
Zeile 46: Zeile 72:
= How do I use the tool? = You will find the required hex file in the same directory with the VibrationTest tool.
Zeile 48: Zeile 74:
== Attach you MK to the table :) ==
== The command line parameters ==
{{{
VibrationTest.py COMPORT MOTORS SPEEDS CHANNELS [-m MINSPEED] [-s NBSAMPLES] [-n NAME] [-d FILENAME] [-v]
 COMPORT Serial port to use. e.g. COM4
 MOTORS Motors to activate during test. Multiple motors can be used at the same time. e.g. 1,2,3,4
 SPEEDS Indicates at what speeds the motors need to be tested.
                   Format 1: e.g. 50,110,140 Tests at speeds 50, 110 and 140
                   Format 2: e.g. 100-200:50 Tests at speeds 100, 150 and 200
 CHANNELS Channels to monitor. e.g. 5,6,7
                   Channel 0 = GyroYaw
                   Channel 1 = GyroRoll
                   Channel 2 = GyroNick
                   Channel 3 = Pressure
                   Channel 4 = Batt
                   Channel 5 = AccTop
                   Channel 6 = AccRoll
                   Channel 7 = AccNick
 -m MINSPEED Minimum speed of the motor(s)
 -s NBSAMPLES Number of samples
 -n NAME Name of the test
 -d FILENAME File to which the measured values will be logged in
 -v Verbose
}}}
/!\ '''The FC code for the VibrationTest is based 0.74d but is not fit for flying! Before flying, you will need to reinstall your initial FC code. When the version you use for flying is 0.74d, your settings should be preserved. In combination with other versions, it might not be the case. It is a good idea to backup yout settings to PC (via the MKTool) before installing the VibrationTest FC code. '''
Zeile 73: Zeile 76:
After insatlling the FC code for the VibrationTest, the LC-Display in the MKTool will look like this:
Zeile 74: Zeile 78:
attachment:LCDisplay.jpg
Zeile 75: Zeile 80:
== General procudure == == Starting the VibrationTest tool ==
In the directory where you unzipped the tool, dubbleclick VibrationTestGui.py (in case of the Python version) or VibrationTestGui.exe
Zeile 77: Zeile 83:
== Example 1 == == Using the VibrationTest tool ==
/!\ '''This video needs updating as it does not use the latest version of the VibrationTool''' /!\
[[BR]]
[[Vimeo(6948282)]]
Zeile 79: Zeile 88:
Finding what sensor provides best information at what speed:
{{{
VibrationTest.py COM5 3 100-200:20 6,7

      Speed=100 U=11.3V Channel=AccRoll Min=492 Max=505 pp= 13 **
      Speed=100 U=11.3V Channel=AccNick Min=498 Max=507 pp= 9 *

      Speed=120 U=11.3V Channel=AccRoll Min=489 Max=503 pp= 14 **
      Speed=120 U=11.3V Channel=AccNick Min=497 Max=507 pp= 10 **

      Speed=140 U=11.2V Channel=AccRoll Min=469 Max=519 pp= 50 **********
      Speed=140 U=11.2V Channel=AccNick Min=495 Max=508 pp= 13 **

      Speed=160 U=11.1V Channel=AccRoll Min=478 Max=517 pp= 39 *******
      Speed=160 U=11.1V Channel=AccNick Min=493 Max=511 pp= 18 ***

      Speed=180 U=10.9V Channel=AccRoll Min=479 Max=511 pp= 32 ******
      Speed=180 U=10.9V Channel=AccNick Min=493 Max=514 pp= 21 ****

      Speed=200 U=10.7V Channel=AccRoll Min=479 Max=515 pp= 36 *******
      Speed=200 U=10.7V Channel=AccNick Min=493 Max=513 pp= 20 ****


VibrationTest.py COM5 3 130-160:10 6
      Speed=130 U=11.1V Channel=AccRoll Min=484 Max=511 pp= 27 *****
      Speed=140 U=11.1V Channel=AccRoll Min=469 Max=524 pp= 55 ***********
      Speed=150 U=11.1V Channel=AccRoll Min=475 Max=520 pp= 45 *********
      Speed=160 U=11.1V Channel=AccRoll Min=479 Max=518 pp= 39 *******
}}}
So, lets concentrate on channel 6 at speed 140.

Now, the preliminary balancing of the prop:
{{{
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s0
  0s0 Speed=140 U=11.0V Channel=AccRoll Min=470 Max=521 pp= 51 **********

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0
  1s0 Speed=140 U=11.0V Channel=AccRoll Min=482 Max=513 pp= 31 ******

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s0
  2s0 Speed=140 U=11.0V Channel=AccRoll Min=475 Max=520 pp= 45 *********
}}}
For now, 1 sticker seems best.

Now, lets rotate the prop:
{{{
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0

  1s0 Speed=140 U=10.9V Channel=AccRoll Min=481 Max=513 pp= 32 ******

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s60

 1s60 Speed=140 U=10.9V Channel=AccRoll Min=480 Max=512 pp= 32 ******

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s120

1s120 Speed=140 U=10.9V Channel=AccRoll Min=477 Max=514 pp= 37 *******

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180

1s180 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=509 pp= 27 *****

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s240

1s240 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=510 pp= 28 *****

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s300

1s300 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=514 pp= 32 ******

VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n 1s360

1s360 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=515 pp= 33 ******
}}}

Rotating the prop by 180 degrees produces best results, now lets try to balance the prop again:
{{{
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180

1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=509 pp= 26 *****

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s180

0s180 Speed=140 U=10.9V Channel=AccRoll Min=472 Max=519 pp= 47 *********

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180

1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=510 pp= 27 *****

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180

2s180 Speed=140 U=10.9V Channel=AccRoll Min=489 Max=508 pp= 19 ***

VibrationTest.py COM5 3 140 6 -d motor3.txt -n 3s180

3s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=512 pp= 29 *****
}}}

So, 2 stickers is best
{{{
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180

2s180 Speed=140 U=10.9V Channel=AccRoll Min=488 Max=508 pp= 20 ****

VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n end

  end Speed=140 U=10.8V Channel=AccRoll Min=487 Max=510 pp= 23 ****
}}}

Now, we can perform a sweep in order to compare with the starting-point:
{{{
VibrationTest.py COM5 3 100-200:20 6,7

       Speed=100 U=11.1V Channel=AccRoll Min=493 Max=501 pp= 8 *
       Speed=100 U=11.1V Channel=AccNick Min=499 Max=507 pp= 8 *

       Speed=120 U=11.1V Channel=AccRoll Min=489 Max=507 pp= 18 ***
       Speed=120 U=11.1V Channel=AccNick Min=497 Max=508 pp= 11 **

       Speed=140 U=11.0V Channel=AccRoll Min=489 Max=507 pp= 18 ***
       Speed=140 U=11.0V Channel=AccNick Min=498 Max=509 pp= 11 **

       Speed=160 U=10.9V Channel=AccRoll Min=482 Max=508 pp= 26 *****
       Speed=160 U=10.9V Channel=AccNick Min=496 Max=510 pp= 14 **

       Speed=180 U=10.7V Channel=AccRoll Min=489 Max=505 pp= 16 ***
       Speed=180 U=10.7V Channel=AccNick Min=495 Max=508 pp= 13 **

       Speed=200 U=10.6V Channel=AccRoll Min=482 Max=508 pp= 26 *****
       Speed=200 U=10.6V Channel=AccNick Min=491 Max=509 pp= 18 ***
}}}
== Balancing Examples ==
[[Vimeo(7011506)]]
Zeile 213: Zeile 92:
 * [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2F#_VibrationTest_ VibrationTest Project in Subversion]
 * Mail FredericG: [[MailTo(admin AT rc-flight DOT be)]]


[[BR]]
/!\ ToDo:
 * Explain the parameters
 * The general procedure
 * Make a hex-file available
 * Provide a picture of my MK attached to the table
 * [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions]
 * [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=/VibrationTest/#_VibrationTest_ VibrationTest Project in Subversion]
 * [http://www.rcgroups.com/forums/showthread.php?t=1006721 Old Man Mike "Test Fixture Evaluates Motors/Props/ESCs for Quadcopter Performance"]
 * Mail FredericG: [[MailTo(frederic AT rc-flight DOT be)]]
Zeile 226: Zeile 98:
[[AttachList]] ## [[AttachList]]
Zeile 229: Zeile 101:
 . KategorieTools

TableOfContents(2)

What is the VibrationTest Tool?

The tool evaluates the vibration generated by the motors which allows balancing motor/prop assemblies and experimenting with different motor-mounts. The test uses the MK build-in sensors, so no extra hardware is required.

Reducing vibration is very important, especially for Aerial Photography or Video. Vibrations result in blurry footage. Some claim that high frequency vibrations can be picked up by the Optical Image Stabilization lens assembly which is incorporated in almost all recent cameras. The OIS is not designed for these vibrations and makes thing worse, even when you switch the OIS feature off in the camera menu. In addition, the FlightControl sensors pickup the vibrations and this deteriorates performance; the new FC ME comes with vibration dampers in order to reduce the vibrations transferred to the FC.

Propellers can be balanced the traditional way. However it was discovered that also the motors need balancing. One way to accomplish this is let a small unbalance in the prop compensate the motor unbalance, so the orientation of the prop is important (see [http://www.rcgroups.com/forums/showpost.php?p=12832508&postcount=228 this post]). Looking at the vibraions of a running motor allows balancing the prop/motor assembly as a whole.

How does it work?

The standard FlightControl program samples all sensors periodically and provides a command to read the latest sample from all sensors. The MKTool uses this command to generate graphs of the analog values. In a first approach the VibrationTest used this standard command to monitor vibrations. The problem is that this mechanism only allows to sample the values 30 times a second. The actual shape of the signals cannot be determined and one can only hope to catch the peak values. In order to get reliable results the values need to be monitored for a long time (a minute for example).

This new approach is based on dedicated FlightControl software providing a new command. The new command instructs the FC to sample one of the sensors as fast as possible and store the info in its internal memory. Afterwards the recorded data can be read to analysis. This allows to grab a reliable signal in a very short time. This approach can capture about 11000 samples a second, 500 times more than the MKTool can.

This is an example of the signal measured by the Roll-ACC sensor: Anchor(SampleSignalJpg) attachment:test.jpg

Current Project status

/!\ The version available now (version 0.9) is an beta version; it was only tested by a limited amount of people. BRMore testers/evaluators are very welcome! BRBR At the time of writing, the tool was tested in combination with:

  • PC/Windows XP and Vista
  • FC 1.2 and FC 1.3

Theoretically the tool should also run on MAC and Linux. BRBR Features in the pipeline

  • Automatic backup and restore of flight settings
  • Automatic installing and restore of RC flight code

BRBR {i} [http://forum.mikrokopter.de/topic-11446.html MK Forum thread for discussions] BR {i} MailTo(frederic AT rc-flight DOT be)

How do I install the tool?

The tool is written in programming language called [http://en.wikipedia.org/wiki/Python_(programming_language) Python].

The most logic way to run the tool is to install support for Python on your PC (if you do not have it already) and the Python libraries the tool depends on. Python is also available for Linux and MAC; the tool should also run on these platforms, but I have never tried it.

If you do not feel like installing Python, a version that is compiled to a windows executable is provided.

So, you have two options.

Anchor(InstallPython)

Option 1: Install Python

For a Windows machine I propose you install:

Once you have Python support on your PC, unzip [http://www.rc-flight.be/VibrationTest/VibrationTest_0_9.zip VibrationTest_0_9.zip] to a directory on your PC.

Option 2: Get the compiled version

unzip [http://www.rc-flight.be/VibrationTest/VibrationTestExe_0_9.zip VibrationTestExe_0_9.zip] to a directory on your PC

How do I use the tool?

Prepare your MK

Secure your MK

I use luggage straps to secure my MK to the table while it is still able to vibrate:

attachment:mk1InTest.jpg

Installing the FlightControl software

The VibrationTest tool only works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and you need to reinstall your regular software version afterwards. This just takes a few minutes. Switching the software is done the usual way, using the MKTool.

You will find the required hex file in the same directory with the VibrationTest tool.

/!\ The FC code for the VibrationTest is based 0.74d but is not fit for flying! Before flying, you will need to reinstall your initial FC code. When the version you use for flying is 0.74d, your settings should be preserved. In combination with other versions, it might not be the case. It is a good idea to backup yout settings to PC (via the MKTool) before installing the VibrationTest FC code.

After insatlling the FC code for the VibrationTest, the LC-Display in the MKTool will look like this:

attachment:LCDisplay.jpg

Starting the VibrationTest tool

In the directory where you unzipped the tool, dubbleclick VibrationTestGui.py (in case of the Python version) or VibrationTestGui.exe

Using the VibrationTest tool

/!\ This video needs updating as it does not use the latest version of the VibrationTool /!\ BR Vimeo(6948282)

Balancing Examples

Vimeo(7011506)

Links

BR