Inverse kinematics math speed

All good things Forums Morgan Builders forum Inverse kinematics math speed

Viewing 5 reply threads
  • Author
    Posts
    • #1925
      ZS6HDV
      Participant

      Hi Quentin

      I have been looking through the Marlin code (I used to write embedded software for a living) and I believe that a lot can be done to optimise the inverse kinematics maths for speed without sacrificing accuracy.

      In your March 2013 post you mentioned that you might look into that further, and I would like to offer my assistance. Maybe I can help? But I don’t want to tread on any toes here…

      Hein

    • #1927
      Quentin Harley
      Keymaster

      Hi Hein. No toes bruised here…

      What really needs to happen is for the inverse kinematics to be transplanted into the current version the marlin firmware in order to keep up with advances in the development. The mistake I made was to use an already forked version of Marlin as my base. As I now know, this makes a simple pull request all but impossible…

      It is not only the kinematics of course. The calibration routines needs to make its way across as well.

      If you find ways to soup up the arm-level branch of marlin in my repository in the mean time to increase its math abilities, please be my guest. Most appreciated!

    • #1928
      ZS6HDV
      Participant

      Quentin

      I have already started doing timing tests (separate program simulating the maths), and I’m confident there is potential for gain.

      The proof of the pudding, is in running a Morgan as fast as it will go. You’ll have to get me my printed parts ASAP, hee hee. I’m ready to start assembling…

      Hein

    • #1929
      Quentin Harley
      Keymaster

      Mmmm… do I sense a carrot in front of my nose?

      Printing @MorganHQ started yesterday, and the 1.75mm extruders need some work. I have to find one that is as reliable as the 3mm eckstruder on the current version of Morgan.

    • #1967
      ZS6HDV
      Participant

      Quentin

      How did you adjust the speed of calculations to arrive at the limit of 500 calcs per second before the Arduino ran out of steam, and how did you measure that?

      Thanks
      Hein

    • #1968
      Quentin Harley
      Keymaster

      It was a guess, based on the speed of the movements.

      In the config file there is a setting for the delta calculations per second. If you increase this number, quality goes up, but a some stage, speed comes down. This is the point where there is no time left idle, waiting for the interrupts.

      I may have overestimated the time left. I run the firmware at 200 calcs per second for 12MHz clock, and 250 for 20 MHz clock.

Viewing 5 reply threads
  • You must be logged in to reply to this topic.
Help-Desk