In fact, nylon tape is very suitable for reducing friction between the ball and magnet and is quite durable. It’s also clean (no graphite grease), cheap and easy to change when worn. I plan on using tape in the future. The magnets you listed above are available for order worldwide from AliExpress, and are almost half the price of the same seller on Amzon. You can write to him directly if you need something extra - that’s how he sent me the 418 joints especially for me, found them in stock and made the purchase possible.
The problem is that the 6 arms are very close to parallel. This causes the arms to not properly constrain the object in 6 axis. If you want to have stable platform with 6-dof, you need to position the arms in such a way that they are as close to orthogonal as possible. This can be done by making some of the arms go cross-cros to the opposite side (hopefully not colliding with other arms…)
An alternative approach, which imo is much better in theory, is to use one strong servo motor (i.e. IHSV57 or 57AIM30) to run the up/down motion, one cheap continuous rotation servo for the rotation, and 4 cheap servo’s for left/right and pitch/jaw. It is not obvious where to place the 4 cheap servo’s, however, but I’m confident it can be done.
The math sounds easier too
Didn’t think of that!
Thanks, will see how it goes with these first, they’re here tomorrow.
So, have you playtested it yet?
I know what you mean - but in this case the motion areas would be limited to the planes of rotation for the 6 servos. Is there any scientific work that more correctly describes the physical model of the platform?
I found that increasing baudrate to 921600 from 115200 and adding a capacitors (you’ll need to calculate what size) to the power supply made major improvements in quietness and responsiveness of the servos. Also adding a ground from the esp32 to the shell of one of the servos so there’s a common ground. Obviously they still make noise, but much better than original settings
I don’t think that is true, a system with 6 bars will have 6dof as long as the bars are not redundantly placed. Imagine the 3D-modelled stewart platform you posted, but the links are of fixed length and the origin of the link can only move up/down, that’s still 6dof.
Note the SR6 has redundant constraints: it is possible to position the motors in some way that all 6 bars fall in a set of parallel planes. In that case, there are only 5 non-redundant constraints and the system will be under-constrained. What you want is to remove one of the redundant constraints (it doesn’t matter which one, they are all redundant) and place it as orthogonal as possible to the existing bars, from left to right.
Of course there are other improvements that can be made.
I used this resource to lean compliant systems: https://www.youtube.com/playlist?list=PLWeErkRyxkhKL_pjYBCR2jYcvAh5PaXoP. The interesting stuff starts at lecture 4 part 1.
See also Freedom and constraint topologies - Wikipedia. This design method was invented by the guy from the youtube playlist.
Don’t try to put more than 6 motors on the thing. You will end up with something called an over-constrained system. You don’t need more than 6 motors, you need 6 non-redundant constraints.
Damn… The more I dive into this topic, the more brain porn I get…
But the math is figured out, the code is written, the base with the holder is printed. I’ll try it this way for now.
Thanks for the advice.
You may have missed it, and I haven’t posted the circuit diagram yet (need to do), but:
- I have no PC connection - the scripts are on a memory card on the controller.
- The power tie-in is already provided by standard components from the store - power board for Wemos D1 mini + PCA9685 16x12-bit PWM Breakout
TCode is the first thing that should be working, how do you even test it without one lol
You may set servos to A4-A9 so you have an easy way to control them one by one for testing
TCode is a loose interpretation of Euler angles, which does not provide full correspondence to the real coordinate system. I use vector and quaternion math for calculations. I feel like you haven’t read the thread and think I’m repeating SR6’s experience.
Though of course you are right, I will have to use backwards compatibility with TCode via PC connection in the future.
I once studied this topic - converting Euler angles to quaternions. The most correct document on the internet is surprisingly from NASA
TCode is not a loose interpretation of Euler angles
R0,R1,R2 is a loose interpretation of Euler angles
Just use R5,R6,R7,R8 for your quaternion
…
Wait, you will have the spheric interpolation (which always uses the shortest distance) then?
Woow
Have you tried looking for Unity or UnrealEngine?
https://gist.github.com/HelloKitty/91b7af87aac6796c3da9
Yes you are right, only R0, R1, R2 - I did not express myself correctly.
Already now my code uses linear interpolation of quaternions - if the controller performance is enough, I can make spherical interpolation as well.
The thing is that all kinds of game engines have different mathematical approach, for myself I have long ago determined that the correct Euler angles for scripts - ZXY. The correct formulas were first found in that document. Perhaps Blender/Unity/Unreal/Source use the same formulas.
After dear @lsidfoaprgsmdvlnvas post with comments on my implementation, I of course expected that the mechanics of my platform would be shit with 8 servos - which was confirmed.
Now I don’t know what to do… I’m upset.
A simple option is to make a classic servo arrangement with pairs of servos facing each other at 120 degrees or as in SR6 at 90 degrees. And keep watching the lecture course - maybe it will help in the future.
You can absolutely reuse the original servo positions, but put the attachment point of the top 2 arms behind the fleshlight, as close as possible together.
I think this gets rid of most of the wobble. It can be improved further by making the arms go X, but idk how to do that without collisions.
I’ve been thinking about this - the main problem I’ve been trying to solve by moving away from the standard servo arrangement on the base is the insufficient rotation of the ball couplers between the linkages and the arms (between the holder and the linkages this is solved by the magnetic ball coupler), in some cases they are insufficient to fully cover all movements and rotations in the limited area above the base.
This problem is solved by adding a conventional bearing to the arms. This video shows it very well.