User Tools

Site Tools


projects:sand_drawing:work_logs:further_software

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
projects:sand_drawing:work_logs:further_software [2020/05/13 05:33] tjhowseprojects:sand_drawing:work_logs:further_software [2020/05/13 05:33] tjhowse
Line 33: Line 33:
 I needed to solve this. My initial thought was to break the path up into a number of intermediate points and move between them on the way to the end target point. I wasn't happy with this approach - I felt as though I should solve it "properly" and do the maths to work out the velocity profiles for the two steppers to result in a straight line. I gave up on solving this problem with my own brain and decided to look it up. It turns out this is a [[https://www.pmdcorp.com/resources/type/articles/resources/get/motion-kinematics-article|Hard Problem]] in non-cartesian robotics, and many solutions do exactly as I had imagined. With the reassurance that other engineers had been as lazy as me I proceeded with the dodgy numerical approach. I needed to solve this. My initial thought was to break the path up into a number of intermediate points and move between them on the way to the end target point. I wasn't happy with this approach - I felt as though I should solve it "properly" and do the maths to work out the velocity profiles for the two steppers to result in a straight line. I gave up on solving this problem with my own brain and decided to look it up. It turns out this is a [[https://www.pmdcorp.com/resources/type/articles/resources/get/motion-kinematics-article|Hard Problem]] in non-cartesian robotics, and many solutions do exactly as I had imagined. With the reassurance that other engineers had been as lazy as me I proceeded with the dodgy numerical approach.
  
-At the start of each move of a magnitude greater than <nowiki>PATH_SPLIT_SIZE</nowiki> I calculate a vector that moves towards the end target by at least PATH_SPLIT_SIZE units. This vector is used to offset the current position to a new intermediate target. This repeats until the tool is less than <nowiki>PATH_SPLIT_SIZE</nowiki> units from the target and the robot then does a move to the final target.+At the start of each move of a magnitude greater than <nowiki>PATH_SPLIT_SIZE</nowiki> I calculate a vector that moves towards the end target by at least <nowiki>PATH_SPLIT_SIZE</nowiki> units. This vector is used to offset the current position to a new intermediate target. This repeats until the tool is less than <nowiki>PATH_SPLIT_SIZE</nowiki> units from the target and the robot then does a move to the final target.
  
 I initially tested with a <nowiki>PATH_SPLIT_SIZE</nowiki> of 5mm. This resulted in fairly noticeable judder in the movement, so I dropped it to 1mm and the movement is much smoother. I initially tested with a <nowiki>PATH_SPLIT_SIZE</nowiki> of 5mm. This resulted in fairly noticeable judder in the movement, so I dropped it to 1mm and the movement is much smoother.
projects/sand_drawing/work_logs/further_software.txt · Last modified: 2020/05/13 13:15 by tjhowse