Stewart Platform utilizing Arduino and Firgelli
- This topic has 5 replies, 3 voices, and was last updated 8 years, 4 months ago by Anonymous.
2013-03-17 at 15:41 #5894AnonymousInactive
I saw all of your posts on the website, marginallyclever.com
I have been building a Stewart Platform for my final-year capstone project for Engineering.
I noticed a post that you put up December 31st 2012. It utilizes an Arduino Mega 2560 with Firgelli L12 Linear Actuators.
This is a large coincidence because I am using the exact same equipment!
My team and I have been working on code-using Arduino and searching endlessly on the internet to find, as you mentioned…”The extra tricky part is that all 6 actuators have to move together at once –”
We got it to move, but we cannot input directions of WHERE we want it to go. Our application is for the dental industry, so it needs to move in PITCH, YAW, and ROLL. (The three rotational movements in space)
Bottom line, if you do have any code posted for that past post, I cannot find it, perhaps you’ve removed it. As you said, “Arduino knows calculates how long each actuator has to be to move up 20mm and tilt 15 degrees,
then sends the correct speed and direction commands to the h bridges, which in turn moves the real platform on my desk.”
This is the part we are struggling with. (The matrices and such) I have enclosed a picture of our initial set-up Our actuators are L12, 30mm stroke, 210 gearing, and the wires are option I which gives us a position
If you could send me/direct me to where this code is it would be greatly appreciated, as we are very close to getting this working properly. Thank you!2013-03-17 at 17:10 #6289AnonymousInactive
So as I understand it you have a stewart platform with some beautifully milled parts and an arduino and you’ve been running the dc motors in the actuators directly from the arduino. Wow! I would be concerned that any kind of feedback would fry the board.
I use CANAKIT UK1122 h-bridges – mostly because I already had them in my spare parts collection. I use two pins to control direction and the PWM to control the speed. Unfortunately each actuator runs at a slightly different speed so I have to fine tune them with a PID controller. Note that my use of PID controllers is highly suspect, I do not feel that I really grok them. I will deliberately omit them from any code you see in the near future.
I recently posted the code for the upcoming rotary stewart platform to github https://github.com/MarginallyClever/RotaryStewartPlatform/. It’s so new that I can’t guarantee it works – that’s high on my agenda for the rest of the week. Maybe together we can make it work for linear actuators, too.
My approach is dead simple because I’m stupid. I built a 3D model of the platform in the arduino. that means 6 points that describe where the bottom of each actuator is and 6 points for the top. (I store these top 6 as “relative position” for later) I also have a 7th point that is the center of the end effector (EE) and three vectors (a matrix) for the orientation of the end effector.
when I move the end effector I rotate the matrix by roll, pitch, and yaw, then translate it. I use the new position and orientation of the EE to calculate the new position of the top 6. From there it’s easy to calculate the length of each actuator.
In a perfect world I would approximate the path of each top 6, find the total change in length for each actuator, find the one with the most change, and then scale the others to the speed of the actuator with the most change.
I don’t trust the Arduino enough to do all that. Instead I just move really slow and work step-by-step. with a PID controller I can adjust the speed of each actuator based on the measured length and the expected length (eg, the error term).
For testing I would start by replacing your top piece with something much more flexible – something that can be bent without damaging the actuators. if you can put some flex sensors on it then you’d have proof that the actuators are working together or not.
Does any of that help?2013-03-18 at 01:14 #6290AnonymousInactive
Yes this is all very helpful!
Perhaps we will have to try using an h-bridge design in our electronics.
I like the way you modelled the Stewart platform in Arduino and went from there2013-03-18 at 02:38 #6291AnonymousInactive
My first model was on a windows PC with old code I had for making video games. I’d like to rewrite it in Java so it runs on every platform but I don’t have the time. I then converted the model to Arduino and removed all the OpenGL stuff for drawing the platform.2013-03-18 at 03:28 #6292AnonymousInactive
Well, we will be solving the code in these next coming weeks.
I have just received some information on a step-by-step guide on the mathematics behind the Stewart Platform which I will be working on now.
We are also interfacing this platform with Processing. We have already created an outline in Java and will be operating all of our electronic equipment through a Windows-based touch screen.
The Stewart Platform is only a portion of our project. I will send more pictures tomorrow.
If we have any issues in our code-or anything else for that matter I will let you know, otherwise if we accomplish the task of controlling the Stewart Platform I will post all my code here.
I will keep you posted.2013-07-18 at 14:20 #6293AnonymousInactive
Cool! Is there a project page for this with any pictures and a description?
I’ve been thinking about the same kind of actuators for a 6DOF platform, but would really like to use Squiggle piezo motors for an even smaller and more precise version. Unfortunately, they are very expensive. I thought I saw mention that piezo motors could be under a dollar (US) each in mass production, but I think we’ll have to wait 20 years for patents to run out! 😥
Another idea I had was to use a similar geometry as the Mini Kossel printer, but with 6 motors instead of 3. That would use rotary motors outside of the work volume and might make it easier to design vs using linear motors.
- You must be logged in to reply to this topic.