Originally Posted by
Anniepoo
I'm a professional software engineer who'se gotten old and bored with it, I'm having more fun making stuff that weighs something. I've written CAD and CAM software, I feel like I'm qualified to answer this.
You'd need to learn low level programming to do things like the motor drivers.
You'd need C and C++ cause that's what a lot of this stuff is writtten in, or in a language atop them.
You'd need to know computer graphics, for obvious reasons to display stuff, and because many of the algorithms you'd use would come from there
It'd be helpful to know some computer vision because many algorithms come from that field
You should know a modern functional language to actually write the thing in
You should know constraint programming because lots of algorithms like snaps and thinning depend on it
And you should know some logic programming because you'll end up needing to reason to resolve constraints
And if your CAM program ended up having an embedded language you'd want to know some language theory
You'd want some experience with numerical computing and numerical stability, you could get that by either taking a course in it or by studying some real time physics.
Now, the list above is sort of 'if I wanted to start my own auto plant what do I need?', You could certainly get by with a lot less. But yes, computational geometry (covered under a couple of my topics) and planning are topics you'll need. You'll only need IK if you plan on doing IK stuff.