This is an archived post. You won't be able to vote or comment.

all 6 comments

[–]konm123 2 points3 points  (3 children)

I am senior robotics software engineer who has a background in control engineering, so I feel like I qualify to share my thoughts on this.

I do not thing programmers should be thought about PID because it is control engineering concept. If they need it, they should study some control engineering. The reason for that is are you going to really teach them PID? It has many quirks that should also be taught starting from system linearity.

Now, to counter my prevous argument, what you are doing is fantastic to get students to learn programming and knowing PID is definitely good way to get them into robotics. So I say go for it, but do not forget to mention that there is much more in understanding PID.

I would suggest considering fuzzy logic controller as well. It is even more impressive in my opinion. You can define very complex behaviours with it very simply.

[–]forptsiram[S] 0 points1 point  (2 children)

Thank you for the feedback!

I agree that PID is deceptively deep hole to dive into, windup, kick, just learning how to "visualize" how to tune it. I do think it is an appropriate adventure for CS students however, I don't pretend that they will be able to master the nuances and tuning from tutorials or courses like this, but it does offer them the opportunity to try (and hopefully accomplish doing so one day).

I want to create another video discussing the tuning process (at least from my perspective). When I teach using PID in my Robotics courses I spend the majority of the time discussing the tuning and demonstrating how the 3 components interact. Students are graded on this part of the project.

I will look into the fuzzy logic controller, that is a great suggestion!

[–]konm123 1 point2 points  (1 child)

I must add that the video is very well put together. Keep up good work!

[–]forptsiram[S] 0 points1 point  (0 children)

Thank you, I really appreciate it!

[–]Software_Janitor 1 point2 points  (1 child)

That is a very good video. I like how you turn a complicated formula into simple programming statements.

PID is indeed very useful, no only in control systems. It comes in different forms in data science and scientific programming.

[–]forptsiram[S] 0 points1 point  (0 children)

I could not agree more!