Hibernation

It’s Autumn, and that means the MPU-9250 is running outside of its ideal temperature zone.  Every year, what flies beautifully during the summer deteriorates once the temperature falls firmly into the teens.  That’s what’s happened yesterday with ambient @ 15°C.  What was a rock solid hover two days ago has become unstable.  Previous years, I’ve been able to move indoors with one of my smaller models, but that’s not an option this year.  Hermione is simply too big to fly in the house and she needs to be this big to incorporate all the sensors and RPi 3B.  Additionally, GPS is virtually inaccessible indoors.

To make things worse, all summer Hermione has been running an IMU which is outside of the spec accuracy range: it reads gravity as 0.88g – her accuracy should be 3% not 12%.  She just about got away with it during the summer temperatures, but not now down in the teens.

Net?  I’ve a new MPU-9250 on the way which will meet their spec; this should help somewhat, but at the same time, I think it’s fair to say that like the hedgehogs and squirrels round here, Hermione will be going into GPS hibernation, and only waking occassionally to test the sweep mapping of the indoors with very limited lateral flight movement.

As I result, I have updated the latest code onto GitHub.

3 thoughts on “Hibernation

  1. Dear Hove,

    I used to follow your project very intently, however I moved into the realm of Ubuntu and the harder hitting ROS ever since. With my dramatic increase in knowledge, I wanted to ask you several questions regarding certain problems I see with your overall design:

    1. I think your code is a beautiful, well done job. However, I really want to know something; why is it all just one big Python file? Last time I checked the Quadcopter.py file had nearly 5000 lines of Python code (!!!!!!!!!!!). I seriously think you should split the code up to several files, as I have never seen something like this!
    2. Do you read literature? I think you are doing excellent analysis when it comes to modeling your quadcopter, but a number of your methods are a bit simple, and some are quite old. There is a plethora of research done regarding quadcopter dynamics. Literally, perhaps too much to be missed. Perhaps you should employ a quaternion based stabilization instead of using euler angles, which causes you to use several PID controllers. Here is a paper you might find useful: http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6669617. If you wish to pursue this stabilization algorithm, I recommend using the BNO055, since it outputs raw quaternion data, is compatible with the RPi, and is not affected by temperature (should be a big + for you based on your last blog post). In addition, I think getting a Garmin LiDAR V3 for height estimation was not a good investment; why didn’t you just use an accurate barometer (the BMP180 is pretty good) and integrate the results? Also, for height estimation with a LiDAR, you could’ve installed a mirror in a 45 degree angle so one of the Sweep’s beams would be reflected and hit the ground. Much less expensive than a Garmin unit.
    3. Why have you been using an RPi A+ 1GHZ model this entire time? The transfer to the RPi 3B should have been done when it came out. I think it should be at most important to switch to the RPi 3B.
    4. Please don’t spend too much of your money on the prototype for aesthetics! The T-Motor engines and blades and the carbon fiber may look cool and stuff but they are costing you WAY more than you should be spending. Why don’t you get some cheap motors, ESCs, and plastic props from eBay? They go for $40 a pop (4 motors + 4 ESCs + 8 props). I used them myself and they are of fairly good quality despite their price.
    5. Why, and please do explain this to me, are you still using the RPi? The RPi, as nice as it is, is not the suitable computer for this project. You should really consider moving to Ubuntu and ROS. The capabilities those operating systems give you are beyond what you can even think of starting to do with an RPi. Have you looked at the Jetson from NVIDIA? Those are pretty popular, ARM based processors, very strong. Perhaps they are a bit expensive but they give more than you can ask for. If you are going to look at them, consider the TX2 unit, it’s the most modern and the bestest NVIDIA currently offers. If you are attached to your RPi, consider getting an UP Board. Their layout is almost the exact same as the RPi, but they have an Intel Atom processor, which is pretty cool (essentially, it’s like a crappy laptop, but better since you have almost complete control over the processor). If you’re still not sure then look at UDOO, but I never experimented with them so I am not too sure.

    These are just some of the problems which always picked my mind. I would like to assume that you could simply say that this is all a hobby, so it’s not supposed to be too “serious”, but the record is that you have been into this project since mid-late 2013, back when only RPi 1 was out, and you have spent nearly $2000 on this drone. My colleague managed to build a ROS powered drone once with state of the art devices, giving him 3D imaging and scanning capabilities, advanced facial recognition and behavior placement, deep learning abilities, and more, for only about $900 of well thought spending. He received a lot of recognition for his efforts.

    I hope you take this as constructive criticism. I have the tendency to be very blunt in writing but I mean no such harm, it’s just the way my mentors were when they educated me.

    Iwato

      1. 5k LOC is a lot now but when I started, it was probably < 1k for the basics. Then over the last 5 years it grew slowly, and it never grew faster than I could keep up with the code layout. As a result, I find it easier to skip round 1 file of 5k than perhaps 5 – 10 each < 1k. There is structure in the code from lowest to highest level top to bottom.
      2. The project was always an intellectual challenge – not so much about building the best possible based on others’ research, more about doing it all my way, and inheriting as little as I can from previous designs. !Quaternions as I didn’t know what they were when I started, and I still don’t really understand what they are – partly because as yet, old-fashioned vectors + matrices haven’t let me down yet. I got LiDAR while Sweep was still on Kickstarter; also since Sweep is the same Garmin LiDAR with rotation, LiDAR is half the price. If I was to do it again, maybe I would combine two into one?
      3. The move to 3B happened when I needed more CPUs to balance the handling of the 5 processes. The extra processes only appeared with Sweep + GPS feeding autopilot. Until then once process was fine, and an A+ or Zero can be overclocked to 1GHz. Also A+ / Zero drone body are easy to find; finding one that fits a 3B and all the sensors is much harder.
      4. I wish I’d had the hindsight to use the much cheaper kit earlier on, but now, looking good matters to me as much as the technical aspects, and she’s now stable enough that the expensive replacements are needed a lot less often.
      5. Why using the RPi? Because the project’s about seeing what an RPi can do, not about building a DIY drone. I’m just weird like that 😉. Why 5 years? Because I wanted to do it my way not riding on the backs of what others have done. So I spent a lot of time going the wrong way – time I could have saved if I used someone else’s work, but that wouldn’t have given me anything like the same satisfaction. Oh, and I’m 47 with a well paid job in computing: £2k for me now is the same at £200 when I finished my Cambridge Physics degrees 26 years ago!

      Thanks the comments – I’ll check out your suggestion, though I suspect my interest in this project is nearing the end, and I’ll be hunting for a new hobby at some point sooner rather than later to keep my terminal boredom disease at bay for another 5 years!

Leave a Reply

Your email address will not be published. Required fields are marked *