I have worked on a couple of projects like control of a quadrotor/ self balancing robot/ 6 dof robotic arm using nonlinear, optimal and adaptive control. So, in all these projects I have first basically tried to understand the dynamics of the system, then I modeled it. Next I applied different control strategies and compared their responses and chose the best one.

My question is when approaching problems in industry or in research, is the approach for these simple bots fine or are there other things that I should consider.

EDIT: Can someone who has worked/ has experience in this area, put a step by step approach that should be done to approach any control problem in any field. With the necessary concepts and skills needed.

| improve this question | | | | |
  • $\begingroup$ I would say ask your professor or Phd student. They probably won't have the time to explain each topic to you, but it would not be too much trouble for them to tell you which subjects would read up on. $\endgroup$ – fibonatic Jan 18 '19 at 3:23
  • $\begingroup$ @fibonatic I'm asking this here because first impressions are always important and i basically want to know the skills and concepts a person should know by default to approach any control problem $\endgroup$ – Roshan Jan 18 '19 at 7:01
  • $\begingroup$ relevant medica/safety standards and control systems with guarantees $\endgroup$ – 50k4 Jan 18 '19 at 14:39
  • $\begingroup$ I'm afraid that Life Questions are off-topic Roshan. Questions about choosing how to spend your time (what to study, what to try etc.) may be about difficult decisions & they are often important, but they are too specific to your own situation & are unlikely to help future visitors to the site. They would be better off asked in Robotics Chat, when you have chat privileges. We prefer practical, answerable questions based on actual problems that you face, see How to Ask & tour. $\endgroup$ – Mark Booth Jan 20 '19 at 11:04
  • 1
    $\begingroup$ @MarkBooth thanks for the head up, I also just changed the question.This question actually has value to people who are new to this area as they will be able to understand a basic approach and set of skills needed to approach any control problem $\endgroup$ – Roshan Jan 20 '19 at 16:17


If you want to get good at control engineering, get good at modeling. If you want to impress a controls professor, get good at modeling. Models are how you're going to do 90 percent of your job, regardless of the controller style you choose to implement, so get good at modeling!

If you want to try building a PID controller, first build a model of the plant and then wrap the PID controller it.

If you want a state feedback controller, first build a model of the plant and then move the poles wherever you want.

Real machinery costs money, real process lines cost money to shutdown for testing and upgrades, real equipment has limited availability.

For me professionally, I wind up working a lot of long hours in remote locations, away from my family, and in the middle of the night because that's where the equipment is and that's the only time it's available for testing.

The best thing I can do for myself, for my employer, for the client, and for my family is to try to build a model of the system and design some model validation tests that can be used to determine if I have an accurate model or not.

I do some work in the office, make a brief trip to site for a validation test, then return to the office to develop the controller, then return to site to implement and test the controller.

Having good models minimizes the need for site visits, which is expensive for my company and takes me away from my family, and it minimizes the amount of time that we need to ask the client to take their equipment out of service. Better models means the controller is more likely to work correctly "out of the box," which means it's more impressive for the client because I can show up and basically flip a switch and everything runs the way it's supposed to. I look more competent because I don't spend a lot of time making mistakes in front of the client (I do that back at the office, with a software model, while I'm trying to develop the controller).

Finally, it's a lot less expensive and/or scary to screw up a software model of a system than to screw up the actual system. Make your mistakes in software! Learn to model and the rest of control engineering is knowing which controller would probably work best and which book has the steps to implement it.

Unless you're doing some fundamental control research, modeling will definitely be the most challenging aspect of control engineering.

| improve this answer | | | | |
  • $\begingroup$ Very good explanation, without a model it's not possible to control a system. It's the simulation, the control-model and the lifestyle all in one thing. Especially the explanation how to save costs and take benefit of testing can be used in reality. $\endgroup$ – Manuel Rodriguez Jan 23 '19 at 17:49

What all control problems have in common is, that they can be solved with expert knowledge. A quadrotor needs a human expert for flight-dynamics while a pick&place robot needs somebody who is familiar with grasping objects. If it's possible to transfer domain knowledge into software the control problem is solved. The best way in doing so are domain specific languages grounded in a domain. At first, a mindmap is created which contains all the words needed in a domain, then they will be aggregated to a grammar and then a robot-controller can be build on top of this grammar.

The common method in doing so is to use a 3d simulator. Different control problems can be made visible with the same physics engine. On top of the physics engine a motion controller can be tested and improved interactively. The overall framework in doing so is called a distributed version control system. That means, an engineer can commit to the repository his newly created domain specific knowledge, and another engineer can run a test on it. Such projects are driven by requirements, formulated from the outside of the system, for example a robot competition about a UAV which has to avoid obstacles.

| improve this answer | | | | |
  • $\begingroup$ This answer is worth a deeper thought. It suggests a non-traditional approach to controller development efforts. I’ve worked with the model-based approach, where the control concept was almost given (automatic flight control), but for ANY controller, non-model-based approaches can be beneficial too. $\endgroup$ – Gürkan Çetin Feb 5 '19 at 19:32

Your Answer

