Controlling a spaceship with your code: a simple PID controller from the ground up in python
ฝัง
- เผยแพร่เมื่อ 15 ส.ค. 2021
- This time, we're going to play a simple spaceship game: park the ship in the center. In fact, we're going to play the game so well that we will write a program to play for us. That program is going to implement a PID controller to efficiently and easily park the spaceship for us. PID controllers are one of the most well-used techniques in control theory and are everywhere, from car cruise controls, over ship and plane autopilots to industrial factory controls. They're fascinating, but also in principle very simple.
Find the code and more information here: gitlab.com/jspielmann/shippid/
Instructions for getting started are a bit further down on the page: gitlab.com/jspielmann/shippid... - วิทยาศาสตร์และเทคโนโลยี
I have a masters degree in mechanical engineering and took a controls course in undergrad. I have recently been working on a project that I needed to brush up on controls. I’ve read lots of papers and watched a lot of videos, but this video was exactly the succinct example I needed
Absolutely amazing explanation and demonstration of a PID controller, the game really helped the lesson hit home
One of the best demonstrations of PID and how the parameters interwork I have seen on TH-cam - Superb
Excellent! Exactly the sort of explanation I hoped for. Clear and easy to follow.
genius!!!! grettings from mexico city!
Hi, nice explanation. What headset are you using? sound mic is good
Oh that's just some crummy old Logitech headset. I was in a hurry recording this video, I usually have better hardware. 😀
Awesome video! When I download from github and run game.py there already seems to be PID working as it docks with out any user input. How can I reset it to a state like you have in the start of your video?
Sorry for the late answer. The repository is set up to end in the state of the video. Simply go into driver.py and remove the return value from `get_inputs`. The ship won't do anything automatically then.
I should change that so it starts off empty...