I have to create a system that can track an object in the air and shoot a projectile at it. This in on a small scale. I want to use an ultrasonic sensor because I know nothing about vision algorithms. I also have to back everything thing mathematically, this is for my modern control theory class. I have matlab and simulink at my finger tips, but I have no idea where to start? Any suggestions? Thanks!!!
closed as too broad by Leon Heller, Neil_UK, Blup1980, Bence Kaulics, Bimpelrekkie Aug 31 '16 at 8:14
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
(Answering this despite broad scope because this is clearly a student capstone project... I'm treating this as a question about how a university student should approach capstone project management.)
As with any design, first identify the project requirements, and try to break down the whole project into smaller design units. This is still a pretty big project for one person.
- What is your budget (both time and money)?
- How much is known about the target object? Do you know in advance how large it is and what it is made of? Is the target reflective? Is it round or does it look different from different angles?
- Are you building the motorized platform that steers azimuth/elevation?
- Are you building the projectile shooting mechanism?
- Are you using a video camera and frame grabber? An ultrasonic sensor is good for sensing range to target if within its field of view, but will not determine the azimuth/elevation.
- If you had an ideal azimuth/elevation platform and ideal projectile launcher, do you know how to use Newton's laws to determine azimuth/elevation (firing solution) required to reach a given target location? And do you know how to estimate future target location based on current location?
Next think about how you can test each of these project components individually (i.e. Unit testing).
- Do you have a way to reliably launch the target object so that you can perform repeatable tests?
- Is the vision system able to reliably acquire the target location?
- Does the projectile shooting mechanism reliably work when aimed at a static location?
- Does the firing solution math work for known test cases?
- Is bad input recognized as an error condition, or does it simply propagate as bad output?
- When a unit fails, is there any useful diagnostic information?
Finally, after each individual unit is working by itself, begin integrating these units together into a complete system. Don't wait until the last day of class to start powering things up. A complex system like this will have lots of small failure points, the trick is to try to find the small problems as early as possible, so that you always have something working, and each week you have more of the system working.
If you've never used a source control system (git, svn, cvs, etc.) now is the time to learn. Don't ever risk losing your source code. When the pressure is on, it's easy to make a mistake; having the discipline to
git commit -m "fixed frob() issue; about to test" helps prevent mistakes from being unrecoverable disasters.
Back to those project requirements. Remember to test whether your project actually meets the requirements. A key point is that a requirement implies something that is testable. "System must shoot a projectile at a target" is a testable requirement, just show it a target and see whether it shoots a projectile. "System should hit the target more than 75% of the time" is another testable requirement... do eight test runs and it passes the test if it gets six hits. There may also be wish-list requirements like "We wish system can hit a 1mm target moving at 75km/h"... Since this is a capstone project, what's most important is getting through all the steps and getting something that works, and meets all of your "must-have" requirements, even if it does not meet the entire wish list.
Regarding stackexchange itself, it's worth reading the site tour (top menu bar | help | tour). Many people mistakenly think this site is a forum, but it's actually a Question-and-Answer site.
One of the best resources is your university lab. About half of what I learned in college, I learned by hanging around in the labs, helping other people with their problems, and getting help with my own problems. Sometimes just explaining your stuck problem to another person, helps bring perspective that brings the solution.
Best of luck...