Platform drift angle compensation

Hello habrachitatel! Today I will talk about how I helped my friends, surveyors, aerial surveyers, not so long ago. My friends, in other words, are engaged in surveying the Earth from an airplane, for this they have some equipment and software, and they would like to improve some of it. This year, the idea came up to create a software module for automatic compensation of the drift angle of the platform on which the aerial camera is installed. Previously, this was done in some manual mode (the platform is very old). By calculating the drift angle, it was possible to correct the platform through some device. The problem was in calculating and further compensating for this angle ... actually, if the interest in this article did not disappear, then I ask for a cut (carefully 7 MB gif'ok) ...

Introduction


The drift angle is the angle between the axis of the aircraft and the coordinate route along which the plane flies; it occurs due to weather conditions, namely the wind.
For example, when there are ideal conditions, aerial photography takes place in a similar way:

But such conditions are of course extremely rare, usually the wind speed at an altitude of 10 to 20 km / h and schematically aerial photography will already look like this:

That is, the plane seems to resist the force of the wind so that fly clearly on a given route.
To solve this problem, I was provided with the following equipment:
• Magnetic azimuth sensor, in other words, a compass.
• And the stepper motor control unit is paired with the stepper motor itself.
The software implementation was decided to do on the platform. Net Framework.
Scheme of connecting equipment to the control computer:


Magnetic azimuth sensor


To solve the problem, as a first approximation, a KVH Azimuth 1000 digital compass with an integrated sensor was selected; its main useful function is data transfer in NMEA 0183 format via the parallel port protocol.


I previously covered this transmission format in my articles on emulating data from a navigation receiver. In the case of azimuth data, a line arrives from the sensor in which you can find the angle value (data refresh rate of 10 Hz, which is quite enough for the compensation task). Detailed specifications:
  • accuracy ± 0.5 ° with auto compensation;
  • diameter 16 cm;
  • height is 7 cm;
  • field sensitivity 6.5–65 μT;
  • weight 340 g;
  • connection wire length 2 m;
  • operating temperature range from -20 to 70 ° C;
  • data frequency in NMEA 0183 format 10 Hz;
  • supply voltage 12 V.

Due to the fact that the data was transferred in NMEA format, and I had already worked with it, a module was written in .Net to receive this data.

Stepper motor control unit


It is too expensive to implement a control system for a stepper motor from scratch, especially since there are domestic manufacturers providing control units that are programmed controllers that can convert more understandable commands into a signal that controls the stepper motor. Commands are transmitted over the parallel port protocol.
SMSD-4.2 was chosen, it can work autonomously, from a computer (LPT port or USB port) or from an external master controller.


Features and capabilities of the device:
  • stepper motor control according to the program stored in the device;
  • writing, changing or reading the control program to / from the internal non-volatile ROM;
  • autonomous work without the participation of a PC or external controller;
  • control from a computer via LPT or USB port (virtual COM port);
  • receiving TTL signals and controlling stepper motors by means of the logical signals “Step”, “Direction” and “Resolution”;
  • receiving ASCII commands from a PC and controlling a stepper motor according to a complex algorithm;
  • the ability to work in manual mode;
  • automatic stop of the stepper motor upon receipt of a signal from the emergency sensor;
  • automatic switching of the direction of rotation of the engine upon receipt of a signal from the reverse sensor;
  • two additional inputs for receiving signals from external devices (sensors);
  • one additional input - to search for a starting position;
  • the ability to synchronize the operation of several SMSD blocks.

Specifications:
  • the number of control channels of stepper motors - 1;
  • the frequency range of the movement pulses of the stepper motor is from 1 to 10,000 Hz;
  • frequency setting accuracy - not worse than 0.2%;
  • supply voltage - 12–48 V;
  • maximum output current - 4.2 A;
  • the number of additional inputs for receiving signals from external devices and sensors - 3 (two for synchronization with external devices and one for finding the initial position);
  • Step crushing modes - 1, 1/2, 1/4, 1/16.

To implement the interaction module with the stepper motor control unit, the commands and their execution order were studied. Teams are mini-programs:
  • heading
  • a list of specific parameters, such as direction, speed, acceleration, number of steps;
  • launch execution.

A work module with a control unit was implemented, with it you can set only the angle, if speed is required (if not set, then the most optimal speed is selected) and direction.

Conclusion


And as a result of combining the solutions described above, a module for automatic compensation of the drift angle was created. Below is a demo video , it shows how, when changing the magnetic azimuth, the platform is compensated for a given angle.


And this is how the process of aerial photography with automatic compensation of the drift angle will look like.

I hope that it’s not in vain that I spent minutes reading my article, waiting for feedback ...

Also popular now: