For me the swing down was even more impressive. That’s some motion control where if really feels like the computer generated world is bleeding into the physical world.
@ Fortunately, I am using best industry practices when it comes to my control loop. I can mathematically prove it contains no bugs and that is no small feat. The only problem my team of PhDs is observing is long period of oscillation after perturbation that suggests less than optimal control. Fortunately, we found breakthrough solution in the form of magic substance, iron oxide, which applied to our pendulums greatly reduces the problem. We are now registering a patent to generate this magic substance in situ, on our steel models, by a very ingenious process. I can't give much more information about it.
a table who's primary and possibly only function is to be good at this one thing. If you had thousands of hours of practice, you could probably do just as well. but you'd also be able to do other things too.
@@sayethwe8683 i mean even with a billion hours of practise you will never be as good at digging and lifting as an excavator. Some things cannot be learned.
I live for that triumphant 90s musac that begins when the pendulum swung up. That combined with the 90s aesthetics of the whole video is simply *chef's kiss*
I've worked on inverted pendulums and attempted double inverted pendulums, and seen them successfully done, but I've never even tried a triple and this is the first smoothly successful one I've seen! Absolutely wondrous
Fantastic demonstration. It's been quite a few years since I studied control engineering but I don't think I was ever equipt to manage this, it's probably a good thing I ended up working with databases :D
have fun, with 30+G maneuvers where you can actually feel your blood rushing to one side of your body, and when you have to come down, that's right, you knock out, because your body cant take more than -2Gs of force, you weak person
I came across this whilst doing a coursework in designing an observer-based LQR controller for a Furuta inverted pendulum.... It blows my mind that this demonstrations is possible!!!!
Location of the pendulum is determined via 3 values from rotational incremental sensors located in the joints plus 1 linear incremental sensors describing position of the cart.
@@StepanOzana If you are using a stepper motor to control the first arm would you not be able to know the position of the first arm without any sensors for it. Following this maths could be used to predict where the second arm is based on last input and time. If both of these things are true, as I believe them to be. Couldn't one use only one sensor placed on the third arm, maths, and knowledge of all previous to accomplish positioning?
@@ITpanda Only the cart is controlled, you could get a two-set solution (in non-degenerate cases) for the system given the cart position and 6-tuple space/orientation information of the third arm, but just the cart position and second bearing orientation isn't nearly enough data to create a useful inference.
@@heatshield Yes. All of these joints are free. The entire swingup is induced by a cart moving left and right. The cart is the only actuated component in the system.
Fascinating work. I'm curious: If I wanted this system to hold a stable pose with the first arm (closest to actuator) down, and the other two up, is that a simple change or are the control algorithms highly tailored to the specific stable poses of fully up/fully down? In other words, how much customization is required depending on the desired pose? Another question: How much of the mechanical configuration (arm length, arm mass, motor properties, encoder resolution, etc) is predefined (a priori vs. a posteriori)? I'm quite curious how fragile this control method is to changes like additional mass on the arms, or changes in the arm lengths. Does it learn based on the response of the system to perturbation or must it know the mechanical properties up front?
Interesting questions, indeed. Well, , i suppose you can predefine everything and get one movement configuration, to say like that. But if you change something a little bit, then it is completely different. As for the path you want to get or other specific charachteristics, you can define some things and later, depending on what you want to achieve, correct some things. For example, you have one lengths of two part pendulum. Then you calculate at what time you want for it to be full length with some angle, or whatever. Then, if you change the initial parameters, be it mass, angle or make it have initial velocity, then it will be different. But even with different initial parameters, you could ,,fit calculations" somewhat for your conditions to be met, at some point. xD
not single, not double, but triple pendulum... and swing up itself😲 thank you for great video and it’s most mind blowing, inspirating one in this year for me.
Me clicking on the video: "Not sure what to expect. Let's see..." 0:10 "Ah yes, I think I get it" 0:17: (O_O) what, how? This was incredible. The speed paired with the stability... Just wow!
Excellent work, Stepan. I could have done without the corny music and instead heard you explain the demo and your work. This is brilliant stuff - you deserve a speaking part in this video.
Just amazing! Chapeau!🎩 Now the only logic conclusion is to add an extra dimension... make ball-joints and move the cart in 2 dimensions in the plane! 👻
Well, i was just about to teach the lagrangian equations of an inverted pendulum on cart, what are the odds 😁 but this is really amazing and i will read your paper in my free time.
It uses two degree of freedom structure, with time-varying LQR controller computed at a finite time interval. Then the implementation is done with the use of a very fast FPGA-based computer and REXYGEN control system, see www. rexygen.com. The papers are planned to be published in 2020. Thank you for your interest.
It is finite-horizon time-varying LQR controller. It is capable to do both the swingup and stabilization in the upright position by one controller. The swingup is done in the closed-loop, no switching between open-loop and stabilizing like most methods use. A paper describing the entire algoritm and concept of control will be published in a few months, I will let you know.
The paper on LQR design is accepted and will be out in a few weeks. I will let you know. But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
Two questions: 1) Can this be extended to n linkages in theory? What's the limiting factor on linkage count? 2) Are you using encoders in the joints or IMUs on each linkage? Or both maybe?
In theory, you can add as many arms as you want. I think one successful approach to solve these kind of systems is to build position controllers in a layered fashion. So first, you would build a controller that controlls the first, joint. Then, you can use this first control algorithm to try to control the second joint. You can layer as many joint controllers like that as you want in theory. I think the main limiting factor would be the time delay that's comming from your sensors for positionning, your motor, and your control algorithm. The bigger the delay is in a closed loop system, the harder it is to make it stable.
There is just one time-varying LQR controller computed on a finite horizon, mainly for swingup. In upright position, its gain matrix converges to the values of infinite LQR controller.
What kind of motor did you use for this system? The high speed (for swing up) and low speed (for stability) control both look good. I built a single inverted pendulum with a stepper motor, which worked, but I realized pretty quickly there are better options. I'm working on a double pendulum now and am thinking brushless DC might work better, or possibly a permanent magnet synchronous motor.
@@StepanOzana Thanks again for the response! I finished building the mechanical system and am now looking at motor drivers and control methods. It seems most folks have used torque as their control input for modeling the system dynamics, but i'm having a difficult time finding an off-the-shelf motor drivers that will allow torque/current control with some kind of PWM signal. Did you use FOC control perhaps? Those seem like they are very precise but best used in position control applications (not torque control). Also what I can find online for FOC control seems to be for relatively low power applications (
Hardware. The control is truly impressive. But what of the hardware? I'm particularly curious about the hardware used to measure the positions of the arms.
So you guys must be warlocks and have just used some kinda crazy warlock spell or something cause I just watched for the first time and I must say I am first of all impressed. I am also very well aware that I as a 41 years old have seen some things but that was pure wizardry! Or some really fun toys!!! Thanks!
Strong and fast DC motor, special FPGA-based single-board computer with the REXYGEN control system, very fast customized wireless sensors, and months of computations spent on trajectory planning and feedback control.
@@StepanOzana Hmm. Could it be possible to make a simplified version of something like this for maker/tinkerer type contexts, perhaps using a free (possibly/likely closed-source) release of the control algorithms? I get the idea the answer would be no, and that this hardware is already the minimum-viable version. :) I'm also very curious how you practically wrote the algorithm - did you basically yell directly at the hardware :) for several months, or were you able to use simulation? (I'm guessing this is one area simulation software would probably fall apart, in much the same way emulators for very old systems sometimes can't run complex software that pushes the boundaries.) EDIT: Just found ua-cam.com/video/kVDFGMEXXQo/v-deo.html, which shows a simulation of how the joints respond to falling. Can this simulation solve for cart movement as well, or is that component driven directly from real-world feedback? NB. I think the pile of recent comments is because YT dropped this into everyone's recommendations again.
I am thinking of releasing open-source version of the entire model but only one-link small pendulum, not 3-lins. If I do this, it will fit to family of automtions shields: github.com/gergelytakacs/AutomationShield/wiki
What are you using to collect position data, and or angular momentum data for the pendulums to determine the direction and speed the cart needs to travel to balance the pendulum?
It uses control scheme with 2 degrees of freedom. It means that there is a feed-forward term reflecting predefined trajectory (based on solution of trajectory planning problem) and then feedback part that takes care of the trajectory tracking and it simply rejects small deviations between real states and ideal model-based states. The feedback part uses LQR computed on a finite horizon which leads to time-variant state feedback. Note that both swingup and stabilizing in the upright position is done with one time-variant state controller. There is no switching between open-loop control for the swingup and constant LQR (computed on infinite horizon) like you can usually see with inverted pendulums. There is no chance for the swingup to be done in open-loop (it is possible for a single-link pendulum, but with more or less troubles). The principal of 2-DOF scheme can also be seen in my other video related to a single inverted pendulum: ua-cam.com/video/Sqhr8fYhMfg/v-deo.html
@@StepanOzana Do you think this method would work for an arbitrary number of links in the pendulum? I'm imagining balancing an inverted pendulum with so many links that it would look like a chain. I mean, I know the performance of the whole system would decrease with the increase of links, but can you estimate how many could you balance with acceptable performance?
@@explainedgmod Feedforward part prescribes the rererence trajectory from initial time further. After a certain time over which the trajectory is computed, it is still prescribed, but with zero values. For example, for a single inverted pendulum, we have 4 states (pendulum position, pendulum speed, cart position, cart speed). Final value of all these states is zero for t >= tf because it stabilizes in upright position and stays calm. So, yes, we can say it "disappears" in a certain way.The idea behind swingdown is completely same as for the swingup. Only initial values of reference trajectory are different, therefore state controller is different for the swuingdown. But the way it is computed is identical.
@@lucianomaia9460 Yes it would. At least in simulation. In real life, you would hit physical limits very soon. It tackles the problem of sensors and sampling period of the control algorithm. For example, for a triple pendulum, you need Ts
@@stepanozana5928 I didn't think it would require so great precision, that's a really difficult challenge. Do you think it would be possible to aquire the position of the links through a high speed camera? The links would be painted with distinct colors, and an algorithm would convert these lines in the camera to angular positions. The problem is that you would need a camera with at least 1000fps and that would require a supercomputer to process all this data in real time. Another option would be to place the pendulum in an inclined surface, so that the component of force of gravity would be smaller, then maybe you could have less powerful sensors
How are the angles measured, resolvers or encoders? Also, are the signals going via slip rings through the joints? Beautiful execution sir, a long time ago I studied IMC control algorithms so I know that no part of this setup (mechanics and algo alike) is neither simple nor easy.
Yeah PID would be an oversimplification. Something like this you can easily model the system or "plant" that needs to be controlled and use Laplace transforms to create the exact control algorithms needed for a theoretically perfectly built triple pendulum. No tuning needed.
The description says it used an LQR time-varying controller. I don't know enough about process control to know exactly what that is, but I doubt that it's something as simple as a tuned PID controller.
I wonder if you could try a table with 2 axes of motion, and rotate the top pendulum 90 degrees. Wouldn’t be able to swing up/down anymore but would be neat to see the wide range of motion to keep it up. Nice work!
IIt is a 2-DOF control scheme, it is explained in one of my other videos, particularly in a single inverted pendulum video ua-cam.com/video/Sqhr8fYhMfg/v-deo.html. There is only always one actuator for any inverted pendulums.
The paper on LQR design is accepted and will be out in a few weeks. I will let you know. But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
Something like this is already being used, it just does not look like an inverted pendulum, control method is not the same but problem is, think of a robot staying upright on two wheels located on sides. Check Boston dynamics' box arrenging robots
Ok, so I've seen simulations where multiple pendulums start at insanely close positions but end up spinning completely differently within moments, so the amount of precision to do this must be incredible.
Fascinating video. I wonder if casual viewers will appreciate just how astonishing this feat of control is. It's 100 times more impressive than it seems! :-) Just to lower the tone a bit: as an exceedingly top-heavy woman, I could really do with this technology in a bra.
There's so much going on in there, so much more than just a few sensors checking balance in real time and triggering motors to go to a certain direction until a certain parameter is met.
Nádhera :-), měl bych dotaz. Jak byste zde použitý regulátor pojmenoval v češtině? Já bych si to přeložil jako časově proměnný stavový LQR regulátor, ale nevím, jestli je to správný překlad.
I wonder how far you could push it? Imagine if you had a much longer track, I am unaware of what type of drives it my have i.e. (the capabilities of them) But say you smacked it intending to force them down, how quickly would it react and could it recover?
Autooscilations due to nonlinearities (around the center of the base). Also, there are some intentional SW-triggered distrurbances which causes the cart moving far to the right and left.
I realise I am three years late to this party, but wow. I need info. I guess you have angular position sensors at each node. Is only the base driven? How robust is the control to a change in weight or segment length. Are there other pseudo stable configurations where one or more of the elements is hanging down? Absolutely amazed by this.
There are incremental sensors of angular position in all joints. It is only driven (actuated) by base (cart with a DC motor). I have not assessed the level of robustness, but it is very sensitive to perturbations and all parameters must be inentified very precisely. It is moduler device, it is possible to adjust it easily for 2-link or 1-link pendlum configuration by physical arresting one or two arms to last one.
How did you mount the encoders on the second and third pendulums so that there are no wires showing and they don't get tangled and caught while rotating?
@@StepanOzana I am in awe. I have 2 questions for you. 1 could this be done without knowing the exact position of the 2nd/3rd link, and 2 can you point me to a few books to help understand the math?
@@rabidr3aper213 No. You have to know exact positions of all links. There are no dedicated books. You can start with this paper: control.ibspan.waw.pl:3000/contents/export?filename=Docekal-et-al.pdf
Awesome work! I can't wait to read your paper. Is your method comparable to a Gain scheduling method with an infinite amount of controllers? Isn't a LQR time-varying controller very computationally expensive? Why choose this method over a nonlinear control method (Lyapunov redesign, feedback linearization) ? Thanks for the video.
Theoretically, it is comparable in that way. Practically, there is a finite numbers of controllers because a fixed sample period is used (1ms or 2ms). You basically pre-compute controller K(t) for t=0:0.001:Tf for a given planned reference trajectory. In each point of the trajectory, nonlinear system is considered as LTV system. I used this method because it is really elegant. It allows you to use one controller both for swingup and stabilization, no switching (so the swingup is done in the closed-loop). Altogether it does not require much of computational performance, you can even use older RPi to run the algorithm. We use faster FPGA-based computer due to need to handle wireless data transfer and other stuff. BTW, the paper will be focused on the design for a single inverted pendulum, but the approach is the same for a triple one. I will write a comment here once the paper is published, expected publication is spring 2020 but you never can tall for sure until you have a hardcopy proof :-)
The paper on LQR design is accepted and will be out in a few weeks. I will let you know. But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
the swing up and down maneuvers are awesome
No joke, I can barely work out what's going on at 10% speed.
My jaw genuinely dropped at the first swing up and stayed open for most of the video
Thanks!
@@StepanOzana I'll second that. This is absolutely astounding!
For me the swing down was even more impressive. That’s some motion control where if really feels like the computer generated world is bleeding into the physical world.
@@StepanOzana keep up the great work!
How do we know a swing up is just not a swing down with the video in reverse?
Holy crap even standing 2 pendulums is insane… but 3?!?! I don’t even want to know how much math went into this! Incredible!
Thank you very much for your support.
so many differential equations it is totally an art
Mine works super stable in the down position.
Gravity laugh
Also under perturbation? 😋
@ Of course, it reliably becomes stable after any perturbation.
@@leonardmilcin7798 You could have messed up the control. 😉
@ Fortunately, I am using best industry practices when it comes to my control loop. I can mathematically prove it contains no bugs and that is no small feat. The only problem my team of PhDs is observing is long period of oscillation after perturbation that suggests less than optimal control. Fortunately, we found breakthrough solution in the form of magic substance, iron oxide, which applied to our pendulums greatly reduces the problem. We are now registering a patent to generate this magic substance in situ, on our steel models, by a very ingenious process. I can't give much more information about it.
When you see the first downswing and think its not that impressive but then you see the uncontrolled one
I was blown away the first up swing when it became clear it was balancing a 3 arm pendulum cause those are children of chaos
so you made a table with more talent than me
great
a table who's primary and possibly only function is to be good at this one thing. If you had thousands of hours of practice, you could probably do just as well. but you'd also be able to do other things too.
More brain power too.
@@sayethwe8683 i mean even with a billion hours of practise you will never be as good at digging and lifting as an excavator. Some things cannot be learned.
I live for that triumphant 90s musac that begins when the pendulum swung up. That combined with the 90s aesthetics of the whole video is simply *chef's kiss*
Thank you very much for your support.
I've worked on inverted pendulums and attempted double inverted pendulums, and seen them successfully done, but I've never even tried a triple and this is the first smoothly successful one I've seen! Absolutely wondrous
The swing up is impressive but that swing down is just so satisfying.
Fantastic demonstration. It's been quite a few years since I studied control engineering but I don't think I was ever equipt to manage this, it's probably a good thing I ended up working with databases :D
Searching for videos of random/chaos movement of triple pendulums.
I didn't expect to see this, that's some great engineering!
I didn't even know that was physically possible. I read that a double pendulum was chaotic, and this one is a triple ! Incredible work !
I can't express how amazed I am...
thank you so much!
A new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
That is some ninja grade control engineering 🤹 kudos
This machine should've controlled that suez canal ship's steering! :D
:-)
This should be scaled up and get seats. The new attraction in an amusementpark near you! THE GUTSPILLER!
ERECTO
have fun, with 30+G maneuvers where you can actually feel your blood rushing to one side of your body, and when you have to come down, that's right, you knock out, because your body cant take more than -2Gs of force, you weak person
@@TheWizardGamez well if its called THE GUTSPILLER the people should expect that
This is pure beauty! Nice Work!
thank you so much!
A new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
I came across this whilst doing a coursework in designing an observer-based LQR controller for a Furuta inverted pendulum....
It blows my mind that this demonstrations is possible!!!!
Thanks for nice words! I appreciate this.
How does it interpret the location of the pendulum? This is some amazing control
Location of the pendulum is determined via 3 values from rotational incremental sensors located in the joints plus 1 linear incremental sensors describing position of the cart.
@@StepanOzana If you are using a stepper motor to control the first arm would you not be able to know the position of the first arm without any sensors for it. Following this maths could be used to predict where the second arm is based on last input and time. If both of these things are true, as I believe them to be. Couldn't one use only one sensor placed on the third arm, maths, and knowledge of all previous to accomplish positioning?
@@ITpanda Only the cart is controlled, you could get a two-set solution (in non-degenerate cases) for the system given the cart position and 6-tuple space/orientation information of the third arm, but just the cart position and second bearing orientation isn't nearly enough data to create a useful inference.
@@2000blobfish Right sir you are, two sensors should be possible for positioning information.
@@StepanOzana How are the outer encoders wired back to the main controller? ...slip rings?
I know only a little about PID systems, but enough to know that is very, very impressive.... Congratulations and thanks for sharing :)
Very cool 👍 engineering like this always goes unappreciated. This tech is going to be awesome! 👌 those gyros are so sensitive and precise. Way cool
Thank you very much for your support.
A new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
I'm blown away. Can you confirm these are free bearings? No motors above platen?
@@heatshield Yes. All of these joints are free. The entire swingup is induced by a cart moving left and right. The cart is the only actuated component in the system.
What is the input to the system? Vision?
^ good question. Are there encoders on the joints?
@@liambohl pretty sure it's vision since there are what looks like reference lines on the pendulum.
The swing up is the most fascinating part holy moly
Fascinating work. I'm curious: If I wanted this system to hold a stable pose with the first arm (closest to actuator) down, and the other two up, is that a simple change or are the control algorithms highly tailored to the specific stable poses of fully up/fully down? In other words, how much customization is required depending on the desired pose? Another question: How much of the mechanical configuration (arm length, arm mass, motor properties, encoder resolution, etc) is predefined (a priori vs. a posteriori)? I'm quite curious how fragile this control method is to changes like additional mass on the arms, or changes in the arm lengths. Does it learn based on the response of the system to perturbation or must it know the mechanical properties up front?
Interesting questions, indeed. Well, , i suppose you can predefine everything and get one movement configuration, to say like that. But if you change something a little bit, then it is completely different. As for the path you want to get or other specific charachteristics, you can define some things and later, depending on what you want to achieve, correct some things. For example, you have one lengths of two part pendulum. Then you calculate at what time you want for it to be full length with some angle, or whatever. Then, if you change the initial parameters, be it mass, angle or make it have initial velocity, then it will be different. But even with different initial parameters, you could ,,fit calculations" somewhat for your conditions to be met, at some point. xD
just in case you havent seen this recent video: ua-cam.com/video/I5GvwWKkBmg/v-deo.html
The uncontrolled swing down shows just how little friction is in the joints. Super impressive.
what a fantastic algorithm and regulation ! congrats! This should be in shown in a kinetic art museum !
not single, not double, but triple pendulum... and swing up itself😲
thank you for great video and it’s most mind blowing, inspirating one in this year for me.
yo what the heck how is this even possible, absolutely mind bending
This helps explain self balancing wheels. Well done!
It's like arm-torso-leg of an acrobat; but with only one point of input. Amazing.
Me clicking on the video: "Not sure what to expect. Let's see..."
0:10 "Ah yes, I think I get it"
0:17: (O_O) what, how?
This was incredible. The speed paired with the stability... Just wow!
You are the master of chaos ! Fantastic !
Thank you very much for your support.
Excellent work, Stepan.
I could have done without the corny music and instead heard you explain the demo and your work. This is brilliant stuff - you deserve a speaking part in this video.
Just amazing! Chapeau!🎩
Now the only logic conclusion is to add an extra dimension... make ball-joints and move the cart in 2 dimensions in the plane! 👻
Well, i was just about to teach the lagrangian equations of an inverted pendulum on cart, what are the odds 😁 but this is really amazing and i will read your paper in my free time.
Thank you very much for your support.
The UA-cam algorithim god has blessed this video.
Great !! What control was used? Do you have a published article?
Greetings from Brazil
It uses two degree of freedom structure, with time-varying LQR controller computed at a finite time interval. Then the implementation is done with the use of a very fast FPGA-based computer and REXYGEN control system, see www. rexygen.com. The papers are planned to be published in 2020. Thank you for your interest.
It is finite-horizon time-varying LQR controller. It is capable to do both the swingup and stabilization in the upright position by one controller. The swingup is done in the closed-loop, no switching between open-loop and stabilizing like most methods use. A paper describing the entire algoritm and concept of control will be published in a few months, I will let you know.
The paper on LQR design is accepted and will be out in a few weeks. I will let you know.
But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
Truly Exceptional. Thanks for sharing this...jawdropping.
Thank you very much for support.
Those who took classical mechanics classes know that this should be impossible to be done, and yet someone did it!
This looks straight up magical... holly crap.
Very impressive! What happens if there is a large disturbance? Will it recover?
No. It will break the closed-loop control and will swing down uncontrolled.
That is absolutely amazing
Thanks!
Fantastic!!! . Its an anti- pendulum. Kills all oscillatory motion.
Thanks for nice words.
Two questions:
1) Can this be extended to n linkages in theory? What's the limiting factor on linkage count?
2) Are you using encoders in the joints or IMUs on each linkage? Or both maybe?
In theory, you can add as many arms as you want. I think one successful approach to solve these kind of systems is to build position controllers in a layered fashion.
So first, you would build a controller that controlls the first, joint. Then, you can use this first control algorithm to try to control the second joint. You can layer as many joint controllers like that as you want in theory.
I think the main limiting factor would be the time delay that's comming from your sensors for positionning, your motor, and your control algorithm. The bigger the delay is in a closed loop system, the harder it is to make it stable.
Yes, as many links as you like. There are precise encoders in the links.
You only control the translation right?
How do you get the inputs?
With rotation sensor or visually with the colored arm?
Cool stuff
they said in another comment that there are sensors in the joints
amazing. Is there any constraint regarding the relative weight and weight distribution of the three pendulums?
this is very cool! how much more complex would a 2-axis version be to control?
This would become a robotic sea lion: www.kky.zcu.cz/cs/video-lachtan-2
probably the most amazing music i have ever seen on a video XD
Thanks.There were some comments saying it was terrible. My answer is: why bothering watching something one dislikes?
@@StepanOzana terrible? no way man - it was the best. also amazing motion control :)
Wow. Can it salvage control from an arbitrary intermediate state?
No. There are some points along the trajectory where the system is uncontrollable.
@@StepanOzana Quite impressive nonetheless.
how many PID loops is this exactly, for the centering, balancing of section 1, 2, 3... damn that's impressive
There is just one time-varying LQR controller computed on a finite horizon, mainly for swingup. In upright position, its gain matrix converges to the values of infinite LQR controller.
@@StepanOzana I have no idea what you just said but I like it
That was the coolest thing I've ever seen.
What kind of motor did you use for this system? The high speed (for swing up) and low speed (for stability) control both look good.
I built a single inverted pendulum with a stepper motor, which worked, but I realized pretty quickly there are better options. I'm working on a double pendulum now and am thinking brushless DC might work better, or possibly a permanent magnet synchronous motor.
Brushless DC.
@@StepanOzana Thank you!
@@StepanOzana Thanks again for the response! I finished building the mechanical system and am now looking at motor drivers and control methods. It seems most folks have used torque as their control input for modeling the system dynamics, but i'm having a difficult time finding an off-the-shelf motor drivers that will allow torque/current control with some kind of PWM signal.
Did you use FOC control perhaps? Those seem like they are very precise but best used in position control applications (not torque control). Also what I can find online for FOC control seems to be for relatively low power applications (
I can recommend this: a)motor eu.robotshop.com/products/12v-5310-rpm-cim-brushed-dc-motor b)control unit MD13S 6-30V 13A
It's very impressive, but is it stable under perturbations during controlled upswings and downswings?
yes it is. the entire swinup and swingdown are controlled via closed-loop.
Hardware. The control is truly impressive. But what of the hardware? I'm particularly curious about the hardware used to measure the positions of the arms.
It uses precise encoders (100 000 pulses/revolution) and a fast wireless data transmission.
So you guys must be warlocks and have just used some kinda crazy warlock spell or something cause I just watched for the first time and I must say I am first of all impressed. I am also very well aware that I as a 41 years old have seen some things but that was pure wizardry! Or some really fun toys!!! Thanks!
Besides the controller, what parts did you use to build the machine?
Strong and fast DC motor, special FPGA-based single-board computer with the REXYGEN control system, very fast customized wireless sensors, and months of computations spent on trajectory planning and feedback control.
@@StepanOzana Hmm. Could it be possible to make a simplified version of something like this for maker/tinkerer type contexts, perhaps using a free (possibly/likely closed-source) release of the control algorithms? I get the idea the answer would be no, and that this hardware is already the minimum-viable version. :)
I'm also very curious how you practically wrote the algorithm - did you basically yell directly at the hardware :) for several months, or were you able to use simulation? (I'm guessing this is one area simulation software would probably fall apart, in much the same way emulators for very old systems sometimes can't run complex software that pushes the boundaries.)
EDIT: Just found ua-cam.com/video/kVDFGMEXXQo/v-deo.html, which shows a simulation of how the joints respond to falling. Can this simulation solve for cart movement as well, or is that component driven directly from real-world feedback?
NB. I think the pile of recent comments is because YT dropped this into everyone's recommendations again.
I am thinking of releasing open-source version of the entire model but only one-link small pendulum, not 3-lins. If I do this, it will fit to family of automtions shields: github.com/gergelytakacs/AutomationShield/wiki
What are you using to collect position data, and or angular momentum data for the pendulums to determine the direction and speed the cart needs to travel to balance the pendulum?
We use encoders placed in the joints. The data are transferred wirelessly.
Man, that's simply amazing! How is the swing up routine done? Does it follow some control algorithm or did you hard code the trajectory?
It uses control scheme with 2 degrees of freedom. It means that there is a feed-forward term reflecting predefined trajectory (based on solution of trajectory planning problem) and then feedback part that takes care of the trajectory tracking and it simply rejects small deviations between real states and ideal model-based states. The feedback part uses LQR computed on a finite horizon which leads to time-variant state feedback. Note that both swingup and stabilizing in the upright position is done with one time-variant state controller. There is no switching between open-loop control for the swingup and constant LQR (computed on infinite horizon) like you can usually see with inverted pendulums. There is no chance for the swingup to be done in open-loop (it is possible for a single-link pendulum, but with more or less troubles). The principal of 2-DOF scheme can also be seen in my other video related to a single inverted pendulum: ua-cam.com/video/Sqhr8fYhMfg/v-deo.html
@@StepanOzana Do you think this method would work for an arbitrary number of links in the pendulum? I'm imagining balancing an inverted pendulum with so many links that it would look like a chain. I mean, I know the performance of the whole system would decrease with the increase of links, but can you estimate how many could you balance with acceptable performance?
@@explainedgmod Feedforward part prescribes the rererence trajectory from initial time further. After a certain time over which the trajectory is computed, it is still prescribed, but with zero values. For example, for a single inverted pendulum, we have 4 states (pendulum position, pendulum speed, cart position, cart speed). Final value of all these states is zero for t >= tf because it stabilizes in upright position and stays calm. So, yes, we can say it "disappears" in a certain way.The idea behind swingdown is completely same as for the swingup. Only initial values of reference trajectory are different, therefore state controller is different for the swuingdown. But the way it is computed is identical.
@@lucianomaia9460 Yes it would. At least in simulation. In real life, you would hit physical limits very soon. It tackles the problem of sensors and sampling period of the control algorithm. For example, for a triple pendulum, you need Ts
@@stepanozana5928 I didn't think it would require so great precision, that's a really difficult challenge. Do you think it would be possible to aquire the position of the links through a high speed camera? The links would be painted with distinct colors, and an algorithm would convert these lines in the camera to angular positions. The problem is that you would need a camera with at least 1000fps and that would require a supercomputer to process all this data in real time. Another option would be to place the pendulum in an inclined surface, so that the component of force of gravity would be smaller, then maybe you could have less powerful sensors
More than ALphaGo winning a match against the world champion, this here tells me how advanced AI has become. Truly a marvel!
How are the angles measured, resolvers or encoders? Also, are the signals going via slip rings through the joints?
Beautiful execution sir, a long time ago I studied IMC control algorithms so I know that no part of this setup (mechanics and algo alike) is neither simple nor easy.
there are incremental sensors in the joints. signals are transferred by a fast wireless technology
@@StepanOzana : Thanks for replying. Interesting solution, so each arm has its own battery and sensor...
soundtrack is 100% appropriate
Thanks.
Hello.
Is it possible to find out which parts have been used for the mechanical.
Regards Henrik
The entire setup is produced and delivered by www.rexcontrols.com. Almost each part is made at tailor, only a few things are standard.
Time-variant LQR does the trick :-)
Oh my god wow, talk about tuned PID control lol
I doubt a PID controller is applied to this system tho
Yeah PID would be an oversimplification.
Something like this you can easily model the system or "plant" that needs to be controlled and use Laplace transforms to create the exact control algorithms needed for a theoretically perfectly built triple pendulum.
No tuning needed.
The description says it used an LQR time-varying controller. I don't know enough about process control to know exactly what that is, but I doubt that it's something as simple as a tuned PID controller.
I wonder if you could try a table with 2 axes of motion, and rotate the top pendulum 90 degrees. Wouldn’t be able to swing up/down anymore but would be neat to see the wide range of motion to keep it up. Nice work!
that would actually make the problem significantly easier
I may be alone in this but I'm more impressed with the swing down then the swing up.
So... algorithmically programmed, or advanced learning?
Can the weights of the arms be altered without reprogramming?
Time varying LQR on a finite horizon. Reprogramming needed if parameters change.
So you say you have a 2dof controller, does that mean you're using 2 actuators? If so where's the second one?
IIt is a 2-DOF control scheme, it is explained in one of my other videos, particularly in a single inverted pendulum video ua-cam.com/video/Sqhr8fYhMfg/v-deo.html. There is only always one actuator for any inverted pendulums.
The paper on LQR design is accepted and will be out in a few weeks. I will let you know.
But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792
omg this is so impressive
Makes me wonder if something like this can be used to help robots stay upright or keep their balance.
Something like this is already being used, it just does not look like an inverted pendulum, control method is not the same but problem is, think of a robot staying upright on two wheels located on sides. Check Boston dynamics' box arrenging robots
Is math related to science?
@@jonasthemovie my friend, everything is math. Most things just have different names on top
@@joshuakuehn r/woosh
Wow!!! What can it be used for?
Gimbaled thrust, Segways, automatic parking assistents. And it is used as a benchmark in the control theory.
Would it be possible to control the shape of a horizonal chain or rope, by vertically moving/controlling the end of it?
No :-)
Thank god it’s defined to just 2 dimensions of pivot
Ok, so I've seen simulations where multiple pendulums start at insanely close positions but end up spinning completely differently within moments, so the amount of precision to do this must be incredible.
Yes it was. Thank you for support.
So how does this work? Does each joint contain a potentiometer so the computer knows the position or is it sensing where the net weight is shifted to
I assume there are encoders reading the position of the joints, right?
yes
Hows it sensing the imbalance?
Why is it oscillating? Did you tried to implement some countermeasures?
It's a result of some nonlinearities. Dry friction and dead-zone of the incremental sensors.
Fascinating video. I wonder if casual viewers will appreciate just how astonishing this feat of control is. It's 100 times more impressive than it seems! :-)
Just to lower the tone a bit: as an exceedingly top-heavy woman, I could really do with this technology in a bra.
Thank you very much for your support.
Awesome! But what's the application?
Gimbaled thrust, Segways, automatic parking assistents. And it is used as a benchmark in the control theory.
Is it possible to make it balance diagonally?
Like a moving simple pendulum
Solved by Langrangian method?
I think the very low damping factor must make this very difficult to stabilise.
What's the input for the computer? Is it visual, forces, somehing else? Could be said in the description but I don't know any of these abbreviations.
wow! amazing! cool technology)
This guy will be the reason the robots will be able to run after us.
Does the swing up works as well as in this video, at each time ? This is so impressive !
yes. the same behavior each time.
Your channel is gold
There's so much going on in there, so much more than just a few sensors checking balance in real time and triggering motors to go to a certain direction until a certain parameter is met.
Nádhera :-), měl bych dotaz. Jak byste zde použitý regulátor pojmenoval v češtině? Já bych si to přeložil jako časově proměnný stavový LQR regulátor, ale nevím, jestli je to správný překlad.
Díky! Vaše názvosloví pro tento regulátor je zcela přesné. Ještě jsem v literatuře zahlédl LQR s časově proměnnou stavovou zpětnou vazbou :-)
I wonder how far you could push it?
Imagine if you had a much longer track, I am unaware of what type of drives it my have i.e. (the capabilities of them)
But say you smacked it intending to force them down, how quickly would it react and could it recover?
Please make an amusement park ride based on this!!!
😲😲😲😮😮😮 after equilibrium, what is the reason for the movement?
Autooscilations due to nonlinearities (around the center of the base). Also, there are some intentional SW-triggered distrurbances which causes the cart moving far to the right and left.
Advancement is striking thank u
This is very impressive !
Thanks for nice words.
I realise I am three years late to this party, but wow.
I need info. I guess you have angular position sensors at each node. Is only the base driven?
How robust is the control to a change in weight or segment length.
Are there other pseudo stable configurations where one or more of the elements is hanging down?
Absolutely amazed by this.
There are incremental sensors of angular position in all joints. It is only driven (actuated) by base (cart with a DC motor). I have not assessed the level of robustness, but it is very sensitive to perturbations and all parameters must be inentified very precisely. It is moduler device, it is possible to adjust it easily for 2-link or 1-link pendlum configuration by physical arresting one or two arms to last one.
Next challenges if it is.
first arm up, second down. And vice versa Over and under the translation.
Is the system basically three consecutive integrators?
No. The dynamics is extremely complicated.
How did you mount the encoders on the second and third pendulums so that there are no wires showing and they don't get tangled and caught while rotating?
The data transfer from the 2nd and 3rd link is wireless.
@@StepanOzana I am in awe. I have 2 questions for you. 1 could this be done without knowing the exact position of the 2nd/3rd link, and 2 can you point me to a few books to help understand the math?
@@rabidr3aper213 No. You have to know exact positions of all links. There are no dedicated books. You can start with this paper: control.ibspan.waw.pl:3000/contents/export?filename=Docekal-et-al.pdf
cant hear the machine...
this is me with a broom when I'm supposed to be sweeping
superb control.
how much of the control is maths and how much "feel"
Awesome work! I can't wait to read your paper.
Is your method comparable to a Gain scheduling method with an infinite amount of controllers?
Isn't a LQR time-varying controller very computationally expensive? Why choose this method over a nonlinear control method (Lyapunov redesign, feedback linearization) ?
Thanks for the video.
Theoretically, it is comparable in that way. Practically, there is a finite numbers of controllers because a fixed sample period is used (1ms or 2ms). You basically pre-compute controller K(t) for t=0:0.001:Tf for a given planned reference trajectory. In each point of the trajectory, nonlinear system is considered as LTV system. I used this method because it is really elegant. It allows you to use one controller both for swingup and stabilization, no switching (so the swingup is done in the closed-loop). Altogether it does not require much of computational performance, you can even use older RPi to run the algorithm. We use faster FPGA-based computer due to need to handle wireless data transfer and other stuff. BTW, the paper will be focused on the design for a single inverted pendulum, but the approach is the same for a triple one. I will write a comment here once the paper is published, expected publication is spring 2020 but you never can tall for sure until you have a hardcopy proof :-)
@@StepanOzana Thanks for the detailed answer!
The paper on LQR design is accepted and will be out in a few weeks. I will let you know.
But I also have a new paper on trajectory planning for inverted pendulums is out: www.mdpi.com/2073-8994/12/5/792