1. A computer implemented method comprising: utilizing a computer to perform: receiving user input specifying desired characteristics for a motion controller, wherein the desired characteristics specified by the user input include supervisory control functions and trajectory generation functions; automatically generating a motion controller program that realizes the desired characteristics for the motion controller based on the user input, wherein said automatically generating the motion controller program comprises automatically generating program instructions implementing the supervisory control functions and the trajectory generation functions; downloading the motion controller program to a hardware platform; wherein the hardware platform executes the motion controller program to implement the motion controller having the desired characteristics, and wherein the motion controller program executes on the hardware platform to receive application level commands from a motion control application and generate corresponding control signals for at least one drive unit; automatically generating an application programming interface (API) corresponding to the motion controller program, wherein the API provides a software interface to the motion controller program executing on the hardware platform for applications running on a host computer.