RotaryStewartPlatform
RotaryStewartPlatform copied to clipboard
Code broken by commit 4db76ac32aee6a562f2d928313f44db4d8809b75
Commit 4db76ac32aee6a562f2d928313f44db4d8809b75 seems to have broken the code. The sign changes for the wrist, shoulder and elbow position initialization in Hexapod::Setup() causes the math to always result in very large positive or very small negative servo angles.
This code is for the RSPv1, which has not been used in a very long time. Are you sure this is the one you want? Our current model uses the https://github.com/MarginallyClever/Rotary-Stewart-Platform-2-firmware code. We're working to roll that firmware into https://github.com/marginallyclever/makelangelo-firmware so we have fewer projects and less maintenance.
also I'm very eager to see your machine and learn about it's applications. please & thank you.
I was just looking for a starting point for an Arduino and servo-based Stewart Platform. The v1 firmware looks nice and simple, but I haven't gotten far with the built yet.
Aha. Well, looking at the commit in question... it seems to flip the direction of each motor. You're saying it produces impossible angle values. Does the commit before that work ok?
I reverted the sign flips from this commit and now the angles seem reasonable (though I haven't yet finished building the platform for testing). For now I have been using the default parameters for everything, so it shouldn't be a misparameterization.
The angles I get with the current head are always at +90° or -90°. If I output the angles before they are clipped to this minimum/maximum, they are about +160° and -160°. This is also the case if I send: G00 x0 y0 z0 a0 b0 c0;
Pretty sure the starting position of the head has a non zero z value. Try an M114 command to get the head position at the start.
On Feb 27, 2018, at 12:34 AM, Dr. Konstantin Schauwecker [email protected] wrote:
I reverted the sign flips from this commit and now the angles seem reasonable (though I haven't yet finished building the platform for testing). For now I have been using the default parameters for everything, so it shouldn't be a misparameterization.
The angles I get with the current head are always at +90° or -90°. If I output the angles before they are clipped to this minimum/maximum, they are about +160° and -160°. This is also the case if I send: G00 x0 y0 z0 a0 b0 c0;
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.
Hello everybody, i reverted the sign flips and now my stewart platform is working.
I changed the servos to Dynamixel XM430 which are quite expensive but they do a great job. To use them i slightly changed your code. I used your old code because the transformation to Dynamixels seems easier than in your Stewart V2.
But know i am facing the following issue:
when going to: G00 Z1 X0 y0 A0 b0 C0; and after that going to G00 Z1 X0 y0 A0 b0 C20;
The Platform should just rotate, but it also makes a Z move. In my opinion the z height it should stay the same. Can you give a hint why this happens?
regards michael, and thanks for your effort dan!
edit: I solved it, the problem was due to wrong Z direction movement of my Dynamixel Setup. By changing the Rotation Direction of the dynamixels i got rid of the problem.
Can you share with us some pics? I want to confirm it's built to match my design. I notice there's no assembly guide here. :(
Hello Dan,
It´s the Platform from Robotis Friends - Stewart: (https://emanual.robotis.com/docs/en/platform/openmanipulator_x/friends/#openmanipulator-stewart) Since i had issues with their code i decided to use yours instead.
I rotated the Motor pair to be parallel and fit your design.
The openmanipulator turns the servos so they are not in parallel. this would be... bad for my code. What are the major dimensions? Here's a picture for reference.
A and C are to the plane that passes through the center of the ball joints.
because these numbers are hard-coded in the the stewart platform IK and must be adjusted to your platform size.
partially related: https://www.youtube.com/watch?v=ysVzRRzQXTc