Part of the problem I want to address is giving the user the opportunity to tweak “advanced options” if they want to without having to modify fundamental libraries.
I also want to make the interface more self-explanatory, indicating which changes produce what effects.
For example:
What change makes the robot travel further?
What change makes the robot turn on its axis further?
What change counteracts a tendency to drift to the right or left?
What is the encoder constant? (Along with the ability to change it if necessary.)
IMHO, shielding the user from the picky details of the underlying libraries should be the ultimate goal, while making necessary adjustments easily available to the user.