Control Demos - Any available?

Recommended Posts

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.

Share this post

Link to post
Share on other sites

Great topic @DrJB. Thanks for bringing that to our attention. I wouldn't know a more practical example either.

Share this post

Link to post
Share on other sites

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!



Share this post

Link to post
Share on other sites

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.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.