I use GRBL in my polar table. Being polar, there is a rotational axis (X axis in GRBL) and an axis that moves along a radius (Y axis in GRBL). When in the GCODE I write the speed (Fspeed), the angular speed is constant. Therefore, depending on the distance from the center of the magnet, the tangential speed changes. This is a problem when the magnet is close to zero, as the tangential speed is very low and the ball moves very slowly. In order to have a constant tangential speed, I would have to change it continuously, depending on the distance from the center according to a simple formula: speed = Fspeed * max_radius / Y position. So when the Y position (position along the radius) is very little the speed is very high and the ball move at decent speed and when the Y position is at the max (max_radius), the speed is the desidered speed (Fspeed). I didn’t try yet to implement this simple algorithm, and I don’t kwon if my reasoning is correct. What do you think? How do you solved the problem of the variable tangential speed in the polar table? Thanks in advance for your contribution.

Ultimately, this is always a problem on polar tables. There isn’t a speed the machine can achieve in the middle that you’d be happy with on the edge.

The distance the ball travels because of the rotational axis is based on the circumference of a circle (or the arc length). That length is proportional to the radius, so adjusting with your equation is right. A few things you could add to make it better:

- Near zero, when the radius is small, it will explode. So just make sure you have a max speed.
- If you imagine a traiectory where the ball moves straight out (as a radius) and then starts moving at the max radius, you want the speed to be basically constant. So the speed it moves along rho should be your max radius speed. You may need to do some tricks with units to make that work.

How are you planning on setting the speeds? In a post processor?

1 Like

Yes, it is a post-processor. Starting from the theta, rho values from Sandify, I create a GCODE. I remember you wrote the same sw in Phyton, but I prefer java and Processing well known by me. Thanks

1 Like