Remotely Monitoring Drone Payload Line Length

Hello,

This is my first post on the Arduino forums and I'm fairly inexperienced with Arduino micro controllers in general, so I apologize in advance if I don't provide the correct information or provide it in an incorrect way.

I am building a custom payload for a drone. The payload needs to be lowered and raised long distances, at least a few hundred feet, but potentially 1000ft+. I am planning to achieve this by building a motorized spindle that can wind/unwind a line with the payload attached at the other end. It is important that I am able to accurately monitor the current length of the line I've lower/raised. From what I've researched so far, it seems like a good way to do this would be to attached a gyro to the spindle to sense the angular rate. Of course, I would then write the code to convert the angular rate to a linear distance. This information would then being wirelessly transmitted to an Arduino attached to a laptop (or some other receiving setup) so the drone operator could monitor how far the payload has been raised/lowered in realtime.

There are two major parts of this that I am having trouble with:

  1. I have never built an angular rate sensing circuit before and I'm not sure how I should select components. I understand that I need to choose a gyro that has a range matching the rate at which I want to turn the spindle. I suppose I also know that I only need a single axis of measurement capability, though additional axis won't hurt, I just won't use them. Other than this, I'm not sure how to select a gyro.

  2. I'm not sure what would be the best way to wirelessly transmit the data output from the gyro on the spindle. Of course, it will first need to interface with an Arduino onboard the drone, and I think having that Arduino do the data processing would be best, but how can I wirelessly transmit the current length output to the operator on the ground? I found some code that I could modify to give me the length measurements (Arduino Playground - Gyro). I also found an Instractables article describing a way to wirelessly communicate between 2 Arduino using an HC-12 wireless serial port communication module (http://www.instructables.com/id/Long-Ra ... ss-Commun/). If I did this, I suppose I would just monitor the serial output of the Arduino on a laptop to keep track of the current line length. Although, a smaller more portable screen would be better than a laptop. I'm not sure if these HC-12 modules are the best things to use though.

Other questions in my head:

The gyro has to be mounted on the object whose motion it is detecting. For me this means the gyro has to be mounted on the spindle (on an end and centered on the axis of rotation). However, the gyro also needs to interface with the Arduino, which means the Arduino needs to be mounted on the end of the spindle, too. This also means that the power source for the Arduino needs to be mounted on the spindle. So:

a) Which Arduino model would be best for this? Obviously a small one, but will all the small Arduinos be compatible with the gyro I choose? If not, how do I ensure compatibility?

b) Any suggestions for an appropriate power source? I was thinking on of those small Eflite rechargeable LiPo airplane batteries. Probably a 2S or something. I have a few of those lying around from another project.

c) If people have suggestions on what type of motor I might use to turn the spindle that would be appreciated, too. The payload will weigh at least 0.8kg, so the motor needs to be able to put out quite a bit of torque, but it also needs to be small/lightweight to fit on the drone. I will probably be powering the motor via the drone's own batteries, so a power supply for the motor isn't really an issue.

If there is some type of "angular motion sensing Arduino package" that would be ideal, but I haven't been able to find anything like that.

I'm totally open to other/better ideas on how to achieve my goal of monitoring the current extended length of the line. Any suggestions or advice would be much appreciated! Please let me know if I need to provide more information. Thanks!

An optical sendor like a QRE113 can count rotations much more accurately. It can be on the fixed part or inside the cable drum.

Thanks for the suggestion. I will look into that. However, someone who responded to my post about this on Reddit brought up the point that a line unwinding from a spindle will not unwind the same length each turn, so measuring the turns of the spindle wouldn't be the best way to do this. They suggested using an optical sensor of some type to measure marks on the line that I make a specific intervals (1m or whatever). I've never used an optical sensor this way before though, so I'm doing some research on that. Have you ever used an optical sensor this way?

Normally you'd use a second, free rolling spindle for that. Run the wire over the second spindle (3/4-1 loop to prevent slip) and measure the rotation of that one.

That also gotta be one hell of a drone - 1000 ft, so over 300 meters of cable, strong enough to carry the payload and itself, spindle motor that can lift all that weight, batteries - that's a lot of weight you have to lift up, even before you're adding any payload.

Ah ok yes, second spindle. Good idea. And then have an optical sensor measuring reflectance off the end of it or something like that? What do you think the best way to alter the reflectance is? Black dots around perimeter of white spindle or something? Maybe holes around the perimeter of the spindle?

A couple people on other forums I've been posting in suggested using a rotary encoder to measure the spindle rotations instead of an optical sensor. Any opinion on this?

As for the drone, yes, IS one hell of a drone :wink: I'm using a modified DJI Matrice 600 Pro with a 6kg payload capacity. May upgrade to a modified DJI Agras MG-1S, which has a 10kg payload capacity. As for line, I'm using high quality kite line to minimize weight, diameter, and stretch.

Motor is still something I'm figuring out. Not sure exactly what type of motor I want to use yet. Suggestions on that would be welcome as well. The payload will be about 1 kg, so the motor would need to put out a decent amount of torque, but it doesn't need to rotate at a high speed. In fact, I'd rather it rotate fairly slowly.

Thanks for your suggestion!

jeffrizza:
Ah ok yes, second spindle. Good idea. And then have an optical sensor measuring reflectance off the end of it or something like that? What do you think the best way to alter the reflectance is? Black dots around perimeter of white spindle or something? Maybe holes around the perimeter of the spindle?

All are good options. I would prefer holes & IR sensor to minimise influence from ambient light. But it very much depends on what you can build in to that drone. Also whether you want to measure complete rotations only (magnet + reed contact work great) or very precise parts of rotation.

The payload will be about 1 kg, so the motor would need to put out a decent amount of torque, but it doesn't need to rotate at a high speed. In fact, I'd rather it rotate fairly slowly.

Electric motors normally run at high RPM, so you're going to need a gear box anyway. Get one that produces the speed you need. Torque increases as RPM lowers.

Hmmm, I suppose the spindle will be fairly small, so measuring only complete rotations would stil l give me pretty good accuracy. I’ll look into the magnet+reed contact you mentioned.

I guess I need to decide between that, an optical sensor, or a rotary encoder. All would be monitoring a second spindle.

Thanks!

If you use a stepper motor and a limit switch to control the spindle, you can accurately control the slack length without the need of monitoring. For more info do a little bit of googling on stepper motors. This is a very simple and reliable solution IMHO.

I don't see how a stepper motor would work in this application (battery power, lots and lots of rotations of the spindle to wind up or down the line, high torque required).

jeffrizza:
Thanks for the suggestion. I will look into that. However, someone who responded to my post about this on Reddit brought up the point that a line unwinding from a spindle will not unwind the same length each turn, so measuring the turns of the spindle wouldn't be the best way to do this.

But you could also count revolutions with an encoder and use the line thickness to calculate (the constantly changing) spool diameter and therefore how much line goes out for each revolution. Is there some way to insure the line is evenly laid across the spindle? If so, a distance sensor mounted to examine the spool could provide a number by which to calculate the amount of line on the spool à la figure H.6.

.02

Power_Broker:
If you use a stepper motor and a limit switch to control the spindle, you can accurately control the slack length without the need of monitoring. For more info do a little bit of googling on stepper motors. This is a very simple and reliable solution IMHO.

Yes, a stepper motor was my initial idea as well. I think it would be the least complex solution, as you mention, but I came to the same conclusion that wvmarle came to; it would take a very long time to feed out/take in any significant length of line and I'm not sure that many stepper motors would have enough torque for the payload I'm going to be lifting (about 0.6 - 1kg).

If you still think a stepper motor would work well I'd be interested to hear your argument. Thanks!

dougp:
But you could also count revolutions with an encoder and use the line thickness to calculate (the constantly changing) spool diameter and therefore how much line goes out for each revolution. Is there some way to insure the line is evenly laid across the spindle? If so, a distance sensor mounted to examine the spool could provide a number by which to calculate the amount of line on the spool à la figure H.6.

.02

dougp, this is definitely a clever solution. However, as you alluded to yourself, I think the main problem would be that there isn't a good way to ensure that the line is evenly laid across the spindle. The other problem I can see is the the line doesn't wrap around the circumference of the spool perfectly each time. Inherently, it will wrap at (at least) a slight angle, which means each wrap is larger than the circumference by some indeterminable amount.

Definitely an interesting idea though. Thank you for the suggestion. At this point I'm leaning towards wvmarle's suggestion to use a second spindle and monitor that somehow. I need to decide between a rotary encoder, some type of optical sensing setup, or a Hall effect sensor. My concern with the rotary encoder is that it could experience mechanical wear over time from being turned so much. So, I'm leaning towards the optical sensing setup, but I've never used a Hall effect sensor in this way.

I'd be curious to know people's opinion on an optical sensor vs. a Hall effect sensor for measuring the secondary spindle.

Whats the application and has it been done before ?

The thought I had was that the drone may have stability issues with a near 1kg weight swinging around 1000ft below it.

srnet:
Whats the application and has it been done before ?

The thought I had was that the drone may have stability issues with a near 1kg weight swinging around 1000ft below it.

Hi srnet. Sorry, I'm not sure I totally understand your question. The application will be extending/lifting a payload. I've found projects people have done where a drone is carry some type of payload on a line, but I haven't been able to find one that describes a way of retracting/extending the line other than simply raising or lowering the drone itself. This is not a feasible option for me because I need to lower the payload hundreds (perhaps over 1000ft) into a water basin. FAA regulations limit drone flight altitudes to 400 ft, which would limit the depth to 400ft.

Stability is a concern I have as well, but others haven't seemed to have much of an issue with a static line payload, so I'm not too worried about it. I'll have to see how the drone flies with the payload attached once I'm done building it. Planning on doing a static line test before getting too far along with the spooling system.

The moment you have your line fully wheeled down, you have a 1000 ft line with a 1 kg weight on it. Even at your 400 ft (well over 100 meters) limit that's indeed bound to start swinging around, and your drone may not be able to compensate for that. That's one massive pendulum and there's always wind, if only from the drone's rotors, to start a swinging movement.

As you mention it's to be lowered under water - so you can mitigate this problem by having it winched all the way up when starting off, then lowering your drone as low as possible above the water and start unwinding. The water should stop it from swinging - but you will have a serious problem if there's any current in the water you lower your load in, as the pull of the current will easily overpower your drone.

jeffrizza:
A couple people on other forums I've been posting in suggested using a rotary encoder to measure the spindle rotations instead of an optical sensor. Any opinion on this?

Yes, I might have something useful to say but without seeing what else has been posted, it's difficult to say.

wvmarle:
The moment you have your line fully wheeled down, you have a 1000 ft line with a 1 kg weight on it. Even at your 400 ft (well over 100 meters) limit that's indeed bound to start swinging around, and your drone may not be able to compensate for that. That's one massive pendulum and there's always wind, if only from the drone's rotors, to start a swinging movement.

As you mention it's to be lowered under water - so you can mitigate this problem by having it winched all the way up when starting off, then lowering your drone as low as possible above the water and start unwinding. The water should stop it from swinging - but you will have a serious problem if there's any current in the water you lower your load in, as the pull of the current will easily overpower your drone.

Sorry, I should have clarified earlier. As you said, I won't actually be flying around with the payload extended to any significant length. This is actually one of the reasons I'm not fond of the static line length designs I've seen. I would be hovering the drone 5-10m above the water and lowering/raising the payload from there.

The bodies of water I'll be using this in shouldn't have much of a current, but that is a concern of mine. A larger concern I have is the payload getting caught on something under the water. Perhaps I should be thinking about some type of emergency release mechanism...

MorganS:
Yes, I might have something useful to say but without seeing what else has been posted, it's difficult to say.

People didn't provide much detail. Essentially, the idea they presented was to directly attached the rotary encoder to a secondary measurement spindle that has the line wrapped around it a single time.

My concern with the rotary encoder is that it may experience mechanical wear if it's constantly being turned, though I don't really know what the lifetimes are on these things. I'm also curious if a rotary encoder would have trouble reading accurately at higher rotation rates. I'm not very familiar with their accuracy, but I would imagine that an optical sensor would be able to deal with high rates of rotation more easily than a rotary encoder. I could very well be wrong about that though.

At 5-10m you can still experience some serious swing - just a little gust of wind can be enough.

And yes, an emergency release would be quite essential. All helicopters carrying loads have that as well, if the load becomes too unbalanced the pilot can release it. In your case, maybe a line cutting mechanism would be the easiest to implement (and least weight).

wvmarle:
At 5-10m you can still experience some serious swing - just a little gust of wind can be enough.

And yes, an emergency release would be quite essential. All helicopters carrying loads have that as well, if the load becomes too unbalanced the pilot can release it. In your case, maybe a line cutting mechanism would be the easiest to implement (and least weight).

Yes, I'm looking into methods for creating some type of line cutting mechanism. I'm not sure what would be best to use here. Has anyone over heard of something that would work well for this? Maybe something that is made for hobby RC helicopters? Ideally it could be controlled over PWM as that's the protocol used on the flight controller already on-board the drone I'm using. I've also considered some type of Arduino (or other micro-controller) controlled laser or heating element. I'm planning on using kevlar filament for the line though and it has a melting temperature of about 800ºF, so I worry a small heating element or laser may not be reliable enough. Also, if the string is swinging around even a small amount it may not line up well with a laser or heating element...