DrJB Posted December 18, 2022 Posted December 18, 2022 Most contraptions out there focus primarily on the kinematics, styling, and number of functions, whether motorized or not. Except for few rare examples, very little is done to address the dynamics of things we build,. Hence, the raison d'être of this thread. For those curious about what I'm after, here is an example: In a world where most universities are merging their dynamics and controls courses, isn't it time we explore what can be done with closed loop control, whether classical (PID type) or Full-State (such as the inverted pendulum above). At the very least, some sort of contraption that would demonstrate the effects of Proportional/Derivative/Integral gains, and how they affect the dynamics of such contraption. Yes there are few examples on youtube, but many are very 'technical', use Matlab, and quickly get lost in the details. Quote
JopieK Posted December 19, 2022 Posted December 19, 2022 Great topic @DrJB. Thanks for bringing that to our attention. I wouldn't know a more practical example either. Quote
Toastie Posted December 19, 2022 Posted December 19, 2022 I have no clue, but is this maybe what you are looking for? Simple PID control of the speed of a train: The trains use RCX + RobotC to stabilize the "set point speed" using a PID algorithm. The latest original RCX firmware did not execute fast enough to do proper PWM adjustment; the RCX RobotC firmware does, though. On page 59 to 61 of the Railbricks Magazine #3 (https://brickmodelrailroader.com/wp-content/uploads/railbricks/railbricks_3.pdf) there is a it on the programming, but also on the behavior of a PID controlled vehicle, when the P, I, D parameters are chosen badly - I data-logged the speed of the train. The parameters can be changed on the fly during train operation, that was fun! Best, Thorsten Quote
Mr Jos Posted December 19, 2022 Posted December 19, 2022 No idea if these cases fit in what you're searching for. It calculates the position of a scanned pin on a continuous moving belt, and then responds by moving the gantry to the desired position, but the time moving there also makes the pin go even further, so needing more correction. Program at: https://github.com/Mr-Jos-Technic/Lego-EV3-4D-Gantry The robot arm used here has inverse + forward kinematics programmed. It knows it current position with the forward kinematics formula. 1 set of coördinates is then given in XYZ (mm from center of floor/base) and roll/pitch/yaw of the fork board. The inverse kinematics calculate all the points in between these 2 point in space and sets each motor speed every 50ms to get a nice flat movement of the fork if desired. If any motor undergoes a lot of resistance, the program will notice this and give more power to that motor in the next 50ms cycle, and if needed go higher everytime for a jammed joint. Programs at: https://github.com/Mr-Jos-Technic/Lego-EV3-Warehouse For this build the conveyor system starts to speed up if for a certain time no pin is detected on the scanning belt (mostly when the hopper feeder is starting to become empty), when a pin is detected is will slow down again. The system also calculates the time needed to swing the arm to the next bin, if 2 different pins are scanned to quick after another to be able to switch, it will stop the scanning belt. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.