Comment

Comment by ipv6ipv4

It was a long long time ago. I don’t remember how I found it.

I do remember being frustrated by the endless papers on SCARA and the importance of the inverse kinematics but no mention of what they actually were. So here they are. (I just checked now, and there seem to be at least a few papers online with the derivation. Times have changed)

I also have this:

  def do(self, (x, y), (dx, dy)):
        """ Calculate o derivative (do1, do2) given position (x, y) and desired movement derivative (dx, dy)
        """
        xy2 = x**2 + y**2
        ll2 = self.L1**2 + self.L2**2
        lld2 = self.L1**2 - self.L2**2
        # do1
        N = x*dy - y*dx
        M = xy2
        P1 = x**4 + 2 * x**2 * (y**2 - ll2) + y**4
        P2 = -2 * ll2 * y**2 + lld2**2
        P = P1 + P2
        Q = xy2
        PQ = math.sqrt(-P/Q) 
        R = (xy2 - lld2) * (x*dx + y*dy)
        S1 = math.sqrt(xy2)
        S2 = P
        S = S1*S2
        # do2        
        T = 2 * (x * dx + y * dy)
        U1 = (2*self.L1*self.L2)**2 - (x**2 + y**2 - ll2)**2
        U = math.sqrt(U1)
        return -(PQ*R)/S + N/M, -T/U

For this I used a symbolic solver but I don’t remember what it was. I also don’t remember if it was a meaningful improvement over a simple interpolation between angles.

BTW if memory serves, parsing basic SVG is pretty easy. Though, these days it may be more useful to implement a gcode parser as there are so many freely available gcode generation tools.

parent ipv6ipv4 1 year ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton