All good things › Forums › Morgan Builders forum › Inverse kinematics math speed
- This topic has 5 replies, 2 voices, and was last updated 12 years, 6 months ago by
Quentin Harley.
-
AuthorPosts
-
-
January 15, 2014 at 16:19 #1925
ZS6HDV
ParticipantHi 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
-
January 15, 2014 at 20:22 #1927
Quentin Harley
KeymasterHi 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!
-
January 15, 2014 at 20:31 #1928
ZS6HDV
ParticipantQuentin
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
-
January 15, 2014 at 21:06 #1929
Quentin Harley
KeymasterMmmm… 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.
-
January 20, 2014 at 21:17 #1967
ZS6HDV
ParticipantQuentin
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 -
January 20, 2014 at 22:41 #1968
Quentin Harley
KeymasterIt 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.
-
-
AuthorPosts
- You must be logged in to reply to this topic.

