Came across this article last night . . . the future is coming. The UAV is a disruptive technology, bringing capability to small fries (specifically journalists, here) that previously had been the exclusive domain of the big boys. Given the amount that the media has tried to scare us about the ‘drone threat’, it seems that they stand to benefit as much as anyone else.
This is really awesome from a lot of different perspectives.
Expansion of use of Ubuntu to a country with 1 billion possible users will ensure that Ubuntu continues development for a looooooong time, meaning that I’ll be able to keep using it without fear that Canonical will drop off the face of the Earth.
Depending on how they look at it, this could be good for Microsoft, as there won’t be nearly the incentive to pirate Windows with a totally free, government-endorsed OS available for the average person. I’m sure most businesses will continue to use Microsoft products legally, but those at the margins who pirate Windows will see the cost of pirating go up as availability of illegal copies drops off. Presumably they will tend to switch to Ubuntu or decide to just pay for Windows.
Finally, this is really awesome for the Chinese people–they will have an OS that is super stable and reliable, has all the stuff they use integrated, and completely free (even pirated Windows copies cost them something.)
This is a continuation of two previous posts (Introduction and Part 1), but now I am going to delve into stuff that may pertain more to those of us in a technical field–mine will be tailored to physical mechanics and automatic control, but again–these exercises can still have benefit for a wide cross section of scientists and engineers.
- Take mathematics requirements first. In my case, I should have taken linear algebra my first semester, but I waited until suffering through two linear control courses to take it–a day late and a dollar short. For those in particular studying automatic control, I recommend one or two semesters of linear algebra plus a semester of complex or real analysis. A numerical methods course (such as Numerical Linear Algebra or Iterative Methods for Systems of Equations) wouldn’t be bad either. For other disciplines, something along the lines of Gil Strang’s Computational Science and Engineering available at MIT OpenCourseware. In general, this mathematics will give you the foundation for other technical courses, as you can focus on deeper understanding rather than struggling with math (as I did when taking Robust Control).
- Learn how to program in Matlab and at least one other lower level language. I did ultimately learn C in the first six months, but stopped there when I should have continued and learned C++ and the Standard Template Library. So much of engineering today is based on computation, and learning how to do that computation is fundamental. Additionally, whatever language you learn (C/C++, Fortran, Java, Python, etc. ) you must learn how to integrate a third party library. For most mundane computing tasks, like matrix algebra, a free library already exists that implement algorithms far more efficiently than you could on your own. No need for you to write your own Cholesky decomposition routine if somebody has already done it. Same goes for things like graphics (more below), computer vision–you name it. It will save you boats of time in the long run. Also learn how to use the associated IDEs and debugging tools, i.e. gdb, Valgrind, etc.
- Learn how to develop graphics, in particular OpenGL. An essential element of your research will be the ability to communicate the relevance of your work visually. For example, much of my early work was in autonomous obstacle avoidance for helicopters. In order for the work to make sense, I had to be able to show a movie of the helicopter weaving among buildings–a set of static plots just wouldn’t have done it. OpenGL will take a bit of work to learn, but it can produce some really great graphics that can ‘tell your story’. Here is a good example (static image) done by a friend of mine, Vasu Manivannan, for his research in robotic landing gear for rotorcraft. [EDIT: I’ve discovered another program, Blender, that might also fit this bill, but I don’t know enough to recommend it outright.]
- Write a computer program that solves a basic set of problems in field of reasonable complexity. In my case, that meant developing a six-degree-of-freedom simulation of an air vehicle. This early effort was critical to later work, as I could easily ‘hang’ other efforts off of this simulation–developing control algorithms, Kalman filters, guidance algorithms, etc.
- Learn how to use Linux. You could probably get by without this, but if your degree will include any kind of heavy computation, you will probably need to work on a Unix or Linux-based computing cluster. The learning curve for Linux is much shallower than it was even five years ago, so this is one skill that won’t take too much effort to develop.
- Become a maker: You can only go so far with equations and dynamic models and theorems. At some point in your studies, or in your subsequent employment, you are going to need to work with real-world stuff–building a microcontroller, or some structure for an experiment or something where you will need to physically create something because there won’t be somebody to do it for you. You’ll need the ability to improvise. Fortunately, there are mounds and mounds of resources on the internet for discovering how to make your own stuff. Learn to integrate systems with an Arduino. Make your own parts with 3D printing/rapid prototyping and CNC mills and cutters. Tinker with your own stuff, learn how it works!
This post is in reference to “Adaptive Nonlinear Model Predictive Path-Following Control for a Fixed-wing Unmanned Aerial Vehicle,” published by Kwangjin Yang, et al, in the International Journal of Control, Automation, and Systems, Volume 11 Issue 1.
This paper publishes results of a study where a fixed-wing UAV uses an RRT to generate an obstacle-free flight trajectory, then uses a Nonlinear Model Predictive Controller to allow the UAV to track the trajectory very tightly. An NMPC is chosen over a linear controller as it more closely models the true behavior of the aircraft as well as taking into account state and control constraints.
The authors base their work off of work done by Sutton for submarines, Shim and Sastry for rotorcraft, and their own work. I would suggest that they are missing some depth in their review of pertinent literature–several works by Dr. Mark Costello readily come to mind (here, and here, for example).
The main contribution of this paper appears to be the study of an adaptive prediction horizon based on curvature of the planned trajectory. Relatively smooth paths use a shorter time horizon to minimize computational burden while maintaining tight tracking. Sharp turns in the path extend the prediction horizon and loosen tight tracking requirements in order to prevent violation of state constraints and control saturation.
The algorithm used to determine the correct MPC control horizon seems very clever and the they appear to get very good tracking performance compared to fixed horizon controllers. However, my main criticism of this paper lies in the studied model. The model used for this study is a very simple kinematic car with no ability to climb or descend, nor to accelerate or decelerate. Under these conditions, the NMPC solver is very fast–only a single input sequence to optimize. If this were a sufficient model, then the RRT used to develop the trajectory in the first place could be much more efficiently constructed by using Dubins paths instead of straight line connections with pruning and Bezier smoothing. Additionally, the lack of the vertical dimension cancels out the advantage of having an airplane.
It appears that future work will include longitudinal motion and better selection of the tracking point on the flight path. I would additionally recommend that future iterations incorporate 2nd order turn rate dynamics (to approximate roll-yaw coupling) and possibly speed changes into their model.
The things I’m recommending are habits to form and things to try to learn or accomplish in your first 6 months to a year in graduate school. Typically, newer students have less research load and less additional duties (if you are a Research Assistant), and so have more time to learn things that will help you save time and excel later.
The first set of recommendations can apply to basically any student pursuing a graduate degree in any subject, assuming that you need to do research and write papers for conference or journal publication.
- Prepare a survey paper. This is super helpful on so many levels. First, it helps you practice finding relevant sources–discovering online databases, using the university library, and following the tree of citations in order to find all the important literature surrounding a particular subject. Second, it provides the opportunity to start building a personal database of literature that is relevant to the research you are doing, which will be immensely valuable when you write journal papers or theses. Third, your knowledge of your field expands far beyond what you will get from your coursework, and you’ll be able to start recognizing where the gaps in the literature exist, providing opportunities for thesis work. Fourth, you’ll start to recognize what good papers look like compared to bad papers. And finally, the act of writing a survey paper will give valuable practice in technical writing.
- Learn how to use LaTeX, BiBTeX, and a reference manager (such as Mendeley). LaTeX is typically used only by technical disciplines, with good reason–no other “word processor” produces greater quality equations. However, there is much to be gained even by graduate students in the liberal arts. LaTeX really isn’t a word processor; it’s a typesetting language, which automates much of the details of paper writing allowing you to focus on content. BiBTeX is a companion software that allows you to keep a single text file with all of your references in it (see #1!), which LaTeX will automatically format for you, no matter what citation and bibliography style you are required to use. The learning curve is much greater than, say, MS Word, but it will pay off in the professional-looking papers it will allow you to produce. A reference manager, such as Mendeley, can automate the process even more by using the internet to find missing bibliographic data, allows you to make notes and annotations on papers, has mobile apps to access your papers, and automatically produces the .bib file required by BiBTeX. Maybe most helpful for graduate students is that all these tools are available absolutely free. (The best place for Windows users to go is here.)
- Take an academic writing course, particularly if you’ve taken a break since completing your bachelor’s degree. At Georgia Tech, the course is CETL 8721. If you spent significant time away from school, as I did, you’ll want to get yourself back in the academic mode of writing. Moreover, they will teach you a few things that will help you tailor your research for publication BEFORE you’re facing a submission deadline.
- Start a discipline of daily writing. Writing a blog–about anything really, but ideally about your research field–and posting 3-5 times a week will help you keep the creative juices flowing. There are so many options to be able to do this for free these days; WordPress and Blogger are the big ones. Better yet, learn how to set up your own website using the WordPress software on a server at your university or from a commercial webhost such as Dreamhost. This will help you keep flow when you finally sit down to write your thesis.
- [EDIT 3/26:] Get in the academic paper-reading habit. Most graduate students get in the bad habit of only searching literature at the last minute when they have a paper due, often AFTER their own research is done. This is bad, terrible, and also not good. Instead, figure out what journals or sets of journals your research will go into, and subscribe to their “Alerts” mailing list. For example, I subscribe to all of the AIAA journals, the Journal of the American Helicopter Society, and most of the IEEE journals dealing with control, aerospace, or robotics. Assuming your school has access to the journal’s database, you’ll get an email every time a new issue comes out; skim the titles ones that sound interesting or useful, scan those articles to see what’s really useful, read what’s left in depth, and save articles that you might cite in future publications in your Mendeley database.
- [EDIT 4/24:] Go to your university library and attend one of their orientation presentations. Every time I go into our library I find out too late about some service they offer which I could really have used. For example, while our library has access to many publication databases, some of the things I’ve tried to access are hardcopy only. I just found out this morning that the library staff will somehow find and create an electronic copy of these materials if you request it. Wow.
- [EDIT 5/21/2015:] Review a journal paper or a refereed conference paper in your area of expertise. There’s nothing that can prepare you for writing a good academic paper quite like tearing up somebody else’s. Seeing things from the point of view of the reviewer can help you address problems in your papers before you ever submit. You may need to ask your advisor to allow you to help on one he’s reviewing.
That’s it for today. In my next post, I’ll be talking about some things that are a bit more tailored for technical disciplines, but might still be useful for those in softer sciences which perform quantitative analysis.
Thank goodness somebody in the media acknowledges that ‘drone’ is the wrong word. It’s like calling the iPhone a ‘cordless telephone.’
As I reflect back over the last four years and three months, I’ve often thought about how I would do things differently with regards to my graduate education. I figured I would publish a few of those thoughts to help others who are about to enter improve their experience (and perhaps graduate faster than I!).
Since there are so many thoughts, I’ll break it down into several different posts over the next week. In the meantime, check out PhD Comics–they may or may not be funny to the non-graduate student, but they can definitely give you a seed of truth about what it’s like:
I’ve seen more news about UAVs in the last three months than I had in the previous year, and unfortunately that’s kind of a bad thing. The FAA is setting up six test sites to begin developing the rules to integrate UAVs into the NAS. Among the applicants to use UAVs are police departments, fire departments, universities. Rand Paul led a filibuster against John Brennan’s confirmation as CIA director to try to make a point about what he thought was illegal behavior on the part of the White House with regards to UAVs. National Geographic published an article exploring both the benefits and hazards for UAV technology. I caught Fareed Zakaria talking about it on CNN on Sunday.
It seems like the civil liberties is the main issue getting people up in arms–can we use UAVs to spy in people’s houses and backyards? Will we use them to shoot fugitives? Is the government going to have Big Brother in the sky watching us all the time?
I think that these fears are wholly unfounded. Yes, UAV technology allows users to go places and see things in a way that was once impossible or at least prohibitively expensive. However, at a fundamental level, how are UAVs different from the technology we already have? We have security cameras that can persistently surveill an area without human oversight. We have airplanes which can easily look down into people’s home and yards. Police can use high power cameras and microphones to stake out a suspect’s home. There are already judicial rules in place for constitutional use of these devices, and the rules will be applied to UAVs in exactly the same way.
Envision a hypothetical scenario where the police catch a criminal because they used a UAV to track everybody’s patterns of life, and his actions seemed suspicious. At trial, the judge will throw out that evidence and any evidence derived from that source, resulting in the criminal’s exoneration. End of story.
There are some valid points regarding the caution with which we ought to proceed. National command may be using UAVs for illegal purposes–if so, that’s wrong and needs to be stopped. But don’t mistake the means for misconduct with the misconduct itself.
The other valid point is one of safety. There absolutely must be a high degree of confidence that a UAV will not cause undue harm to life, limb, or property, before we integrate them into the national airspace. However, in order for the technology to develop, there must be provisional rules in place for experimentation.
I would argue that the technology is already in a place where we can safely use UAVs in areas of low population density, at low altitudes, especially if the UAV is small and unlikely to cause a person harm.
[The opinions in this post do not necessarily reflect the view or policies of the Georgia Institute of Technology.]