Moving forward with the CAM coding, the sensible thing would probably be to work on mundane things like 2D offset generation, a kd-tree for faster drop-cutter searches, and zigzag-paths from 2D outlines... There's again been some talk about open-source CAM on cnczone, but not much in terms of results or actual descriptions or implementations of toolpath algorithms.
Anyway, here's something more fun than the traditional computational geometry problems I referred to above. It's lawn-mowing tactics, or how do you program the circular robot to mow the red pixels while not cutting too many of them at a time. This is a slightly improved version of my earlier trial. This one considers a number of angles in all directions for each move. From these moves the ones that cut away a suitable amount of material are selected. Additionally I've introduced a cost function for changing direction, it should be easier for the cutter to continue traveling in approximately the same direction than to do abrupt turns. In spite of this, about half-way through the cutter reverses direction...This is obviously done with a bitmap representing the grass to be mowed, but I wonder if it would be better to try to do it more exactly: represent the boundaries of the grass with lines and arcs. A variable step-length also seems like a good idea, on long straight bits the cutter should be able to move in one go as far as it goes.
Here's a nice title for a scientific paper:
"Approximation algorithms for lawn mowing and milling" !
Computational Geometry, Volume 17, Issues 1-2, October 2000, Pages 25-50
Esther M. Arkin, Sándor P. Fekete and Joseph S. B. Mitchell
http://dx.doi.org/10.1016/S0925-7721(00)00015-8
I like it. I have never thought of Milling and Mowing as the same. Now that you point it out, it makes sense.
Now I want a CNC Lawn Mower.
Ivan Irons
Found this interesting paper on toolpath generation... I'm fascinated with this topic also, although most of the math is well beyond my skills.
Cutter path generation for 2.5D milling by combining multiple different
cutter path patterns
http://www.glue.umd.edu/~skgupta/Publication/IJPR04_Yao.pdf
Kudos, Keep up the great work on this project!
Continuing my research on this topic I discovered the following paper:
http://www.ijcc.org/sub_02_vo2.htm
Paper #3
A Sweep-Line Algorithm and Its Application to Spiral Pocketing
I found it interesting in the fact that it bridges the theoretical realm of most papers with pseudo-code for an implementation.
Sorry if any information I have been presented is redundant.